spatialreal 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- spatialreal/__init__.py +52 -0
- spatialreal/config.py +101 -0
- spatialreal/errors.py +155 -0
- spatialreal/events.py +66 -0
- spatialreal/logid.py +19 -0
- spatialreal/proto/__init__.py +0 -0
- spatialreal/proto/generated/__init__.py +0 -0
- spatialreal/proto/generated/message_pb2.py +96 -0
- spatialreal/proto/generated/message_pb2.pyi +279 -0
- spatialreal/session.py +613 -0
- spatialreal/version.py +1 -0
- spatialreal-0.1.0.dist-info/METADATA +112 -0
- spatialreal-0.1.0.dist-info/RECORD +15 -0
- spatialreal-0.1.0.dist-info/WHEEL +4 -0
- spatialreal-0.1.0.dist-info/licenses/LICENSE +202 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
from google.protobuf import struct_pb2 as _struct_pb2
|
|
2
|
+
from google.protobuf.internal import containers as _containers
|
|
3
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
4
|
+
from google.protobuf import descriptor as _descriptor
|
|
5
|
+
from google.protobuf import message as _message
|
|
6
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
7
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
8
|
+
|
|
9
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
10
|
+
|
|
11
|
+
class MessageType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
12
|
+
__slots__ = ()
|
|
13
|
+
MESSAGE_UNSPECIFIED: _ClassVar[MessageType]
|
|
14
|
+
MESSAGE_CLIENT_CONFIGURE_SESSION: _ClassVar[MessageType]
|
|
15
|
+
MESSAGE_SERVER_CONFIRM_SESSION: _ClassVar[MessageType]
|
|
16
|
+
MESSAGE_CLIENT_AUDIO_INPUT: _ClassVar[MessageType]
|
|
17
|
+
MESSAGE_SERVER_ERROR: _ClassVar[MessageType]
|
|
18
|
+
MESSAGE_SERVER_RESPONSE_ANIMATION: _ClassVar[MessageType]
|
|
19
|
+
MESSAGE_CLIENT_DRIVEN_CONFIG: _ClassVar[MessageType]
|
|
20
|
+
MESSAGE_CLIENT_INTERRUPT: _ClassVar[MessageType]
|
|
21
|
+
MESSAGE_CLIENT_PAUSE: _ClassVar[MessageType]
|
|
22
|
+
MESSAGE_CLIENT_RESUME: _ClassVar[MessageType]
|
|
23
|
+
MESSAGE_SERVER_PLAYBACK_STATE: _ClassVar[MessageType]
|
|
24
|
+
|
|
25
|
+
class AudioFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
26
|
+
__slots__ = ()
|
|
27
|
+
AUDIO_FORMAT_PCM_S16LE: _ClassVar[AudioFormat]
|
|
28
|
+
AUDIO_FORMAT_OGG_OPUS: _ClassVar[AudioFormat]
|
|
29
|
+
|
|
30
|
+
class TransportCompression(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
31
|
+
__slots__ = ()
|
|
32
|
+
TRANSPORT_COMPRESSION_NONE: _ClassVar[TransportCompression]
|
|
33
|
+
|
|
34
|
+
class EgressType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
35
|
+
__slots__ = ()
|
|
36
|
+
EGRESS_TYPE_UNSPECIFIED: _ClassVar[EgressType]
|
|
37
|
+
EGRESS_TYPE_LIVEKIT: _ClassVar[EgressType]
|
|
38
|
+
EGRESS_TYPE_AGORA: _ClassVar[EgressType]
|
|
39
|
+
|
|
40
|
+
class CloseCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
41
|
+
__slots__ = ()
|
|
42
|
+
CLOSE_CODE_UNSPECIFIED: _ClassVar[CloseCode]
|
|
43
|
+
CLOSE_CODE_CREDITS_EXHAUSTED: _ClassVar[CloseCode]
|
|
44
|
+
CLOSE_CODE_SESSION_TIMEOUT: _ClassVar[CloseCode]
|
|
45
|
+
CLOSE_CODE_CONCURRENCY_LIMIT: _ClassVar[CloseCode]
|
|
46
|
+
CLOSE_CODE_AUTH_FAILED: _ClassVar[CloseCode]
|
|
47
|
+
CLOSE_CODE_UPSTREAM_UNAVAILABLE: _ClassVar[CloseCode]
|
|
48
|
+
MESSAGE_UNSPECIFIED: MessageType
|
|
49
|
+
MESSAGE_CLIENT_CONFIGURE_SESSION: MessageType
|
|
50
|
+
MESSAGE_SERVER_CONFIRM_SESSION: MessageType
|
|
51
|
+
MESSAGE_CLIENT_AUDIO_INPUT: MessageType
|
|
52
|
+
MESSAGE_SERVER_ERROR: MessageType
|
|
53
|
+
MESSAGE_SERVER_RESPONSE_ANIMATION: MessageType
|
|
54
|
+
MESSAGE_CLIENT_DRIVEN_CONFIG: MessageType
|
|
55
|
+
MESSAGE_CLIENT_INTERRUPT: MessageType
|
|
56
|
+
MESSAGE_CLIENT_PAUSE: MessageType
|
|
57
|
+
MESSAGE_CLIENT_RESUME: MessageType
|
|
58
|
+
MESSAGE_SERVER_PLAYBACK_STATE: MessageType
|
|
59
|
+
AUDIO_FORMAT_PCM_S16LE: AudioFormat
|
|
60
|
+
AUDIO_FORMAT_OGG_OPUS: AudioFormat
|
|
61
|
+
TRANSPORT_COMPRESSION_NONE: TransportCompression
|
|
62
|
+
EGRESS_TYPE_UNSPECIFIED: EgressType
|
|
63
|
+
EGRESS_TYPE_LIVEKIT: EgressType
|
|
64
|
+
EGRESS_TYPE_AGORA: EgressType
|
|
65
|
+
CLOSE_CODE_UNSPECIFIED: CloseCode
|
|
66
|
+
CLOSE_CODE_CREDITS_EXHAUSTED: CloseCode
|
|
67
|
+
CLOSE_CODE_SESSION_TIMEOUT: CloseCode
|
|
68
|
+
CLOSE_CODE_CONCURRENCY_LIMIT: CloseCode
|
|
69
|
+
CLOSE_CODE_AUTH_FAILED: CloseCode
|
|
70
|
+
CLOSE_CODE_UPSTREAM_UNAVAILABLE: CloseCode
|
|
71
|
+
|
|
72
|
+
class LiveKitEgressConfig(_message.Message):
|
|
73
|
+
__slots__ = ("url", "api_key", "api_secret", "room_name", "publisher_id", "extra_attributes", "idle_timeout", "api_token")
|
|
74
|
+
class ExtraAttributesEntry(_message.Message):
|
|
75
|
+
__slots__ = ("key", "value")
|
|
76
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
77
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
key: str
|
|
79
|
+
value: str
|
|
80
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
|
81
|
+
URL_FIELD_NUMBER: _ClassVar[int]
|
|
82
|
+
API_KEY_FIELD_NUMBER: _ClassVar[int]
|
|
83
|
+
API_SECRET_FIELD_NUMBER: _ClassVar[int]
|
|
84
|
+
ROOM_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
85
|
+
PUBLISHER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
86
|
+
EXTRA_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int]
|
|
87
|
+
IDLE_TIMEOUT_FIELD_NUMBER: _ClassVar[int]
|
|
88
|
+
API_TOKEN_FIELD_NUMBER: _ClassVar[int]
|
|
89
|
+
url: str
|
|
90
|
+
api_key: str
|
|
91
|
+
api_secret: str
|
|
92
|
+
room_name: str
|
|
93
|
+
publisher_id: str
|
|
94
|
+
extra_attributes: _containers.ScalarMap[str, str]
|
|
95
|
+
idle_timeout: int
|
|
96
|
+
api_token: str
|
|
97
|
+
def __init__(self, url: _Optional[str] = ..., api_key: _Optional[str] = ..., api_secret: _Optional[str] = ..., room_name: _Optional[str] = ..., publisher_id: _Optional[str] = ..., extra_attributes: _Optional[_Mapping[str, str]] = ..., idle_timeout: _Optional[int] = ..., api_token: _Optional[str] = ...) -> None: ...
|
|
98
|
+
|
|
99
|
+
class AgoraEgressConfig(_message.Message):
|
|
100
|
+
__slots__ = ("channel_name", "token", "uid", "publisher_id")
|
|
101
|
+
CHANNEL_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
102
|
+
TOKEN_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
UID_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
PUBLISHER_ID_FIELD_NUMBER: _ClassVar[int]
|
|
105
|
+
channel_name: str
|
|
106
|
+
token: str
|
|
107
|
+
uid: int
|
|
108
|
+
publisher_id: str
|
|
109
|
+
def __init__(self, channel_name: _Optional[str] = ..., token: _Optional[str] = ..., uid: _Optional[int] = ..., publisher_id: _Optional[str] = ...) -> None: ...
|
|
110
|
+
|
|
111
|
+
class DrivenIngressConfig(_message.Message):
|
|
112
|
+
__slots__ = ("shape_npy", "style_npy", "driven_server_url", "model_settings", "encoder_start_frame")
|
|
113
|
+
SHAPE_NPY_FIELD_NUMBER: _ClassVar[int]
|
|
114
|
+
STYLE_NPY_FIELD_NUMBER: _ClassVar[int]
|
|
115
|
+
DRIVEN_SERVER_URL_FIELD_NUMBER: _ClassVar[int]
|
|
116
|
+
MODEL_SETTINGS_FIELD_NUMBER: _ClassVar[int]
|
|
117
|
+
ENCODER_START_FRAME_FIELD_NUMBER: _ClassVar[int]
|
|
118
|
+
shape_npy: bytes
|
|
119
|
+
style_npy: bytes
|
|
120
|
+
driven_server_url: str
|
|
121
|
+
model_settings: _struct_pb2.Struct
|
|
122
|
+
encoder_start_frame: int
|
|
123
|
+
def __init__(self, shape_npy: _Optional[bytes] = ..., style_npy: _Optional[bytes] = ..., driven_server_url: _Optional[str] = ..., model_settings: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., encoder_start_frame: _Optional[int] = ...) -> None: ...
|
|
124
|
+
|
|
125
|
+
class ClientConfigureSession(_message.Message):
|
|
126
|
+
__slots__ = ("sample_rate", "bitrate", "audio_format", "transport_compression", "egress_type", "livekit_egress", "agora_egress")
|
|
127
|
+
SAMPLE_RATE_FIELD_NUMBER: _ClassVar[int]
|
|
128
|
+
BITRATE_FIELD_NUMBER: _ClassVar[int]
|
|
129
|
+
AUDIO_FORMAT_FIELD_NUMBER: _ClassVar[int]
|
|
130
|
+
TRANSPORT_COMPRESSION_FIELD_NUMBER: _ClassVar[int]
|
|
131
|
+
EGRESS_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
132
|
+
LIVEKIT_EGRESS_FIELD_NUMBER: _ClassVar[int]
|
|
133
|
+
AGORA_EGRESS_FIELD_NUMBER: _ClassVar[int]
|
|
134
|
+
sample_rate: int
|
|
135
|
+
bitrate: int
|
|
136
|
+
audio_format: AudioFormat
|
|
137
|
+
transport_compression: TransportCompression
|
|
138
|
+
egress_type: EgressType
|
|
139
|
+
livekit_egress: LiveKitEgressConfig
|
|
140
|
+
agora_egress: AgoraEgressConfig
|
|
141
|
+
def __init__(self, sample_rate: _Optional[int] = ..., bitrate: _Optional[int] = ..., audio_format: _Optional[_Union[AudioFormat, str]] = ..., transport_compression: _Optional[_Union[TransportCompression, str]] = ..., egress_type: _Optional[_Union[EgressType, str]] = ..., livekit_egress: _Optional[_Union[LiveKitEgressConfig, _Mapping]] = ..., agora_egress: _Optional[_Union[AgoraEgressConfig, _Mapping]] = ...) -> None: ...
|
|
142
|
+
|
|
143
|
+
class ServerConfirmSession(_message.Message):
|
|
144
|
+
__slots__ = ("connection_id", "capabilities")
|
|
145
|
+
CONNECTION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
146
|
+
CAPABILITIES_FIELD_NUMBER: _ClassVar[int]
|
|
147
|
+
connection_id: str
|
|
148
|
+
capabilities: _containers.RepeatedScalarFieldContainer[str]
|
|
149
|
+
def __init__(self, connection_id: _Optional[str] = ..., capabilities: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
150
|
+
|
|
151
|
+
class ClientAudioInput(_message.Message):
|
|
152
|
+
__slots__ = ("req_id", "end", "audio")
|
|
153
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
154
|
+
END_FIELD_NUMBER: _ClassVar[int]
|
|
155
|
+
AUDIO_FIELD_NUMBER: _ClassVar[int]
|
|
156
|
+
req_id: str
|
|
157
|
+
end: bool
|
|
158
|
+
audio: bytes
|
|
159
|
+
def __init__(self, req_id: _Optional[str] = ..., end: bool = ..., audio: _Optional[bytes] = ...) -> None: ...
|
|
160
|
+
|
|
161
|
+
class ServerError(_message.Message):
|
|
162
|
+
__slots__ = ("connection_id", "req_id", "code", "message")
|
|
163
|
+
CONNECTION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
164
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
165
|
+
CODE_FIELD_NUMBER: _ClassVar[int]
|
|
166
|
+
MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
167
|
+
connection_id: str
|
|
168
|
+
req_id: str
|
|
169
|
+
code: int
|
|
170
|
+
message: str
|
|
171
|
+
def __init__(self, connection_id: _Optional[str] = ..., req_id: _Optional[str] = ..., code: _Optional[int] = ..., message: _Optional[str] = ...) -> None: ...
|
|
172
|
+
|
|
173
|
+
class Flame(_message.Message):
|
|
174
|
+
__slots__ = ("translation", "rotation", "neck_pose", "jaw_pose", "eye_pose", "eye_lid", "expression")
|
|
175
|
+
TRANSLATION_FIELD_NUMBER: _ClassVar[int]
|
|
176
|
+
ROTATION_FIELD_NUMBER: _ClassVar[int]
|
|
177
|
+
NECK_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
178
|
+
JAW_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
179
|
+
EYE_POSE_FIELD_NUMBER: _ClassVar[int]
|
|
180
|
+
EYE_LID_FIELD_NUMBER: _ClassVar[int]
|
|
181
|
+
EXPRESSION_FIELD_NUMBER: _ClassVar[int]
|
|
182
|
+
translation: _containers.RepeatedScalarFieldContainer[float]
|
|
183
|
+
rotation: _containers.RepeatedScalarFieldContainer[float]
|
|
184
|
+
neck_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
185
|
+
jaw_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
186
|
+
eye_pose: _containers.RepeatedScalarFieldContainer[float]
|
|
187
|
+
eye_lid: _containers.RepeatedScalarFieldContainer[float]
|
|
188
|
+
expression: _containers.RepeatedScalarFieldContainer[float]
|
|
189
|
+
def __init__(self, translation: _Optional[_Iterable[float]] = ..., rotation: _Optional[_Iterable[float]] = ..., neck_pose: _Optional[_Iterable[float]] = ..., jaw_pose: _Optional[_Iterable[float]] = ..., eye_pose: _Optional[_Iterable[float]] = ..., eye_lid: _Optional[_Iterable[float]] = ..., expression: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
190
|
+
|
|
191
|
+
class FlameAnimation(_message.Message):
|
|
192
|
+
__slots__ = ("keyframes",)
|
|
193
|
+
KEYFRAMES_FIELD_NUMBER: _ClassVar[int]
|
|
194
|
+
keyframes: _containers.RepeatedCompositeFieldContainer[Flame]
|
|
195
|
+
def __init__(self, keyframes: _Optional[_Iterable[_Union[Flame, _Mapping]]] = ...) -> None: ...
|
|
196
|
+
|
|
197
|
+
class ServerResponseAnimation(_message.Message):
|
|
198
|
+
__slots__ = ("connection_id", "req_id", "end", "animation", "avatar_id")
|
|
199
|
+
CONNECTION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
200
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
201
|
+
END_FIELD_NUMBER: _ClassVar[int]
|
|
202
|
+
ANIMATION_FIELD_NUMBER: _ClassVar[int]
|
|
203
|
+
AVATAR_ID_FIELD_NUMBER: _ClassVar[int]
|
|
204
|
+
connection_id: str
|
|
205
|
+
req_id: str
|
|
206
|
+
end: bool
|
|
207
|
+
animation: FlameAnimation
|
|
208
|
+
avatar_id: str
|
|
209
|
+
def __init__(self, connection_id: _Optional[str] = ..., req_id: _Optional[str] = ..., end: bool = ..., animation: _Optional[_Union[FlameAnimation, _Mapping]] = ..., avatar_id: _Optional[str] = ...) -> None: ...
|
|
210
|
+
|
|
211
|
+
class ClientInterrupt(_message.Message):
|
|
212
|
+
__slots__ = ("req_id",)
|
|
213
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
214
|
+
req_id: str
|
|
215
|
+
def __init__(self, req_id: _Optional[str] = ...) -> None: ...
|
|
216
|
+
|
|
217
|
+
class ClientPause(_message.Message):
|
|
218
|
+
__slots__ = ("req_id",)
|
|
219
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
220
|
+
req_id: str
|
|
221
|
+
def __init__(self, req_id: _Optional[str] = ...) -> None: ...
|
|
222
|
+
|
|
223
|
+
class ClientResume(_message.Message):
|
|
224
|
+
__slots__ = ("req_id",)
|
|
225
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
226
|
+
req_id: str
|
|
227
|
+
def __init__(self, req_id: _Optional[str] = ...) -> None: ...
|
|
228
|
+
|
|
229
|
+
class ServerPlaybackState(_message.Message):
|
|
230
|
+
__slots__ = ("connection_id", "req_id", "state", "played_ms", "reason")
|
|
231
|
+
class State(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
232
|
+
__slots__ = ()
|
|
233
|
+
STATE_UNSPECIFIED: _ClassVar[ServerPlaybackState.State]
|
|
234
|
+
PLAYING: _ClassVar[ServerPlaybackState.State]
|
|
235
|
+
PAUSED: _ClassVar[ServerPlaybackState.State]
|
|
236
|
+
ENDED: _ClassVar[ServerPlaybackState.State]
|
|
237
|
+
INTERRUPTED: _ClassVar[ServerPlaybackState.State]
|
|
238
|
+
STATE_UNSPECIFIED: ServerPlaybackState.State
|
|
239
|
+
PLAYING: ServerPlaybackState.State
|
|
240
|
+
PAUSED: ServerPlaybackState.State
|
|
241
|
+
ENDED: ServerPlaybackState.State
|
|
242
|
+
INTERRUPTED: ServerPlaybackState.State
|
|
243
|
+
CONNECTION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
244
|
+
REQ_ID_FIELD_NUMBER: _ClassVar[int]
|
|
245
|
+
STATE_FIELD_NUMBER: _ClassVar[int]
|
|
246
|
+
PLAYED_MS_FIELD_NUMBER: _ClassVar[int]
|
|
247
|
+
REASON_FIELD_NUMBER: _ClassVar[int]
|
|
248
|
+
connection_id: str
|
|
249
|
+
req_id: str
|
|
250
|
+
state: ServerPlaybackState.State
|
|
251
|
+
played_ms: int
|
|
252
|
+
reason: str
|
|
253
|
+
def __init__(self, connection_id: _Optional[str] = ..., req_id: _Optional[str] = ..., state: _Optional[_Union[ServerPlaybackState.State, str]] = ..., played_ms: _Optional[int] = ..., reason: _Optional[str] = ...) -> None: ...
|
|
254
|
+
|
|
255
|
+
class Message(_message.Message):
|
|
256
|
+
__slots__ = ("type", "client_configure_session", "server_confirm_session", "client_audio_input", "server_error", "server_response_animation", "driven_config", "client_interrupt", "client_pause", "client_resume", "server_playback_state")
|
|
257
|
+
TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
258
|
+
CLIENT_CONFIGURE_SESSION_FIELD_NUMBER: _ClassVar[int]
|
|
259
|
+
SERVER_CONFIRM_SESSION_FIELD_NUMBER: _ClassVar[int]
|
|
260
|
+
CLIENT_AUDIO_INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
261
|
+
SERVER_ERROR_FIELD_NUMBER: _ClassVar[int]
|
|
262
|
+
SERVER_RESPONSE_ANIMATION_FIELD_NUMBER: _ClassVar[int]
|
|
263
|
+
DRIVEN_CONFIG_FIELD_NUMBER: _ClassVar[int]
|
|
264
|
+
CLIENT_INTERRUPT_FIELD_NUMBER: _ClassVar[int]
|
|
265
|
+
CLIENT_PAUSE_FIELD_NUMBER: _ClassVar[int]
|
|
266
|
+
CLIENT_RESUME_FIELD_NUMBER: _ClassVar[int]
|
|
267
|
+
SERVER_PLAYBACK_STATE_FIELD_NUMBER: _ClassVar[int]
|
|
268
|
+
type: MessageType
|
|
269
|
+
client_configure_session: ClientConfigureSession
|
|
270
|
+
server_confirm_session: ServerConfirmSession
|
|
271
|
+
client_audio_input: ClientAudioInput
|
|
272
|
+
server_error: ServerError
|
|
273
|
+
server_response_animation: ServerResponseAnimation
|
|
274
|
+
driven_config: DrivenIngressConfig
|
|
275
|
+
client_interrupt: ClientInterrupt
|
|
276
|
+
client_pause: ClientPause
|
|
277
|
+
client_resume: ClientResume
|
|
278
|
+
server_playback_state: ServerPlaybackState
|
|
279
|
+
def __init__(self, type: _Optional[_Union[MessageType, str]] = ..., client_configure_session: _Optional[_Union[ClientConfigureSession, _Mapping]] = ..., server_confirm_session: _Optional[_Union[ServerConfirmSession, _Mapping]] = ..., client_audio_input: _Optional[_Union[ClientAudioInput, _Mapping]] = ..., server_error: _Optional[_Union[ServerError, _Mapping]] = ..., server_response_animation: _Optional[_Union[ServerResponseAnimation, _Mapping]] = ..., driven_config: _Optional[_Union[DrivenIngressConfig, _Mapping]] = ..., client_interrupt: _Optional[_Union[ClientInterrupt, _Mapping]] = ..., client_pause: _Optional[_Union[ClientPause, _Mapping]] = ..., client_resume: _Optional[_Union[ClientResume, _Mapping]] = ..., server_playback_state: _Optional[_Union[ServerPlaybackState, _Mapping]] = ...) -> None: ...
|