@elizaos/python 2.0.0-alpha.10 → 2.0.0-alpha.11

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.
Files changed (99) hide show
  1. package/elizaos/__init__.py +0 -1
  2. package/elizaos/advanced_capabilities/actions/schedule_follow_up.py +70 -15
  3. package/elizaos/advanced_capabilities/actions/send_message.py +9 -184
  4. package/elizaos/advanced_memory/memory_service.py +15 -17
  5. package/elizaos/advanced_planning/planning_service.py +26 -14
  6. package/elizaos/basic_capabilities/providers/actions.py +118 -29
  7. package/elizaos/basic_capabilities/providers/character.py +19 -21
  8. package/elizaos/basic_capabilities/providers/current_time.py +7 -4
  9. package/elizaos/basic_capabilities/providers/time.py +7 -4
  10. package/elizaos/bootstrap/__init__.py +21 -2
  11. package/elizaos/bootstrap/actions/schedule_follow_up.py +65 -7
  12. package/elizaos/bootstrap/actions/send_message.py +162 -15
  13. package/elizaos/bootstrap/autonomy/service.py +230 -28
  14. package/elizaos/bootstrap/providers/actions.py +118 -27
  15. package/elizaos/bootstrap/providers/agent_settings.py +1 -0
  16. package/elizaos/bootstrap/providers/attachments.py +1 -0
  17. package/elizaos/bootstrap/providers/capabilities.py +1 -0
  18. package/elizaos/bootstrap/providers/character.py +1 -0
  19. package/elizaos/bootstrap/providers/choice.py +1 -0
  20. package/elizaos/bootstrap/providers/contacts.py +1 -0
  21. package/elizaos/bootstrap/providers/current_time.py +8 -2
  22. package/elizaos/bootstrap/providers/entities.py +1 -0
  23. package/elizaos/bootstrap/providers/evaluators.py +1 -0
  24. package/elizaos/bootstrap/providers/facts.py +1 -0
  25. package/elizaos/bootstrap/providers/follow_ups.py +1 -0
  26. package/elizaos/bootstrap/providers/knowledge.py +1 -0
  27. package/elizaos/bootstrap/providers/providers_list.py +1 -0
  28. package/elizaos/bootstrap/providers/relationships.py +1 -0
  29. package/elizaos/bootstrap/providers/roles.py +1 -0
  30. package/elizaos/bootstrap/providers/settings.py +1 -0
  31. package/elizaos/bootstrap/providers/time.py +8 -4
  32. package/elizaos/bootstrap/providers/world.py +1 -0
  33. package/elizaos/deterministic.py +193 -0
  34. package/elizaos/generated/__init__.py +1 -0
  35. package/elizaos/generated/action_docs.py +3181 -0
  36. package/elizaos/generated/spec_helpers.py +175 -0
  37. package/elizaos/media/mime.py +2 -2
  38. package/elizaos/media/search.py +23 -23
  39. package/elizaos/runtime.py +152 -39
  40. package/elizaos/services/message_service.py +2 -6
  41. package/elizaos/types/components.py +2 -2
  42. package/elizaos/types/generated/__init__.py +12 -0
  43. package/elizaos/types/generated/eliza/v1/agent_pb2.py +63 -0
  44. package/elizaos/types/generated/eliza/v1/agent_pb2.pyi +161 -0
  45. package/elizaos/types/generated/eliza/v1/components_pb2.py +65 -0
  46. package/elizaos/types/generated/eliza/v1/components_pb2.pyi +160 -0
  47. package/elizaos/types/generated/eliza/v1/database_pb2.py +78 -0
  48. package/elizaos/types/generated/eliza/v1/database_pb2.pyi +305 -0
  49. package/elizaos/types/generated/eliza/v1/environment_pb2.py +58 -0
  50. package/elizaos/types/generated/eliza/v1/environment_pb2.pyi +135 -0
  51. package/elizaos/types/generated/eliza/v1/events_pb2.py +82 -0
  52. package/elizaos/types/generated/eliza/v1/events_pb2.pyi +322 -0
  53. package/elizaos/types/generated/eliza/v1/ipc_pb2.py +113 -0
  54. package/elizaos/types/generated/eliza/v1/ipc_pb2.pyi +367 -0
  55. package/elizaos/types/generated/eliza/v1/knowledge_pb2.py +41 -0
  56. package/elizaos/types/generated/eliza/v1/knowledge_pb2.pyi +26 -0
  57. package/elizaos/types/generated/eliza/v1/memory_pb2.py +55 -0
  58. package/elizaos/types/generated/eliza/v1/memory_pb2.pyi +111 -0
  59. package/elizaos/types/generated/eliza/v1/message_service_pb2.py +48 -0
  60. package/elizaos/types/generated/eliza/v1/message_service_pb2.pyi +69 -0
  61. package/elizaos/types/generated/eliza/v1/messaging_pb2.py +51 -0
  62. package/elizaos/types/generated/eliza/v1/messaging_pb2.pyi +97 -0
  63. package/elizaos/types/generated/eliza/v1/model_pb2.py +84 -0
  64. package/elizaos/types/generated/eliza/v1/model_pb2.pyi +280 -0
  65. package/elizaos/types/generated/eliza/v1/payment_pb2.py +44 -0
  66. package/elizaos/types/generated/eliza/v1/payment_pb2.pyi +70 -0
  67. package/elizaos/types/generated/eliza/v1/plugin_pb2.py +68 -0
  68. package/elizaos/types/generated/eliza/v1/plugin_pb2.pyi +145 -0
  69. package/elizaos/types/generated/eliza/v1/primitives_pb2.py +48 -0
  70. package/elizaos/types/generated/eliza/v1/primitives_pb2.pyi +92 -0
  71. package/elizaos/types/generated/eliza/v1/prompts_pb2.py +52 -0
  72. package/elizaos/types/generated/eliza/v1/prompts_pb2.pyi +74 -0
  73. package/elizaos/types/generated/eliza/v1/service_interfaces_pb2.py +211 -0
  74. package/elizaos/types/generated/eliza/v1/service_interfaces_pb2.pyi +1296 -0
  75. package/elizaos/types/generated/eliza/v1/service_pb2.py +42 -0
  76. package/elizaos/types/generated/eliza/v1/service_pb2.pyi +69 -0
  77. package/elizaos/types/generated/eliza/v1/settings_pb2.py +58 -0
  78. package/elizaos/types/generated/eliza/v1/settings_pb2.pyi +85 -0
  79. package/elizaos/types/generated/eliza/v1/state_pb2.py +60 -0
  80. package/elizaos/types/generated/eliza/v1/state_pb2.pyi +114 -0
  81. package/elizaos/types/generated/eliza/v1/task_pb2.py +42 -0
  82. package/elizaos/types/generated/eliza/v1/task_pb2.pyi +58 -0
  83. package/elizaos/types/generated/eliza/v1/tee_pb2.py +52 -0
  84. package/elizaos/types/generated/eliza/v1/tee_pb2.pyi +90 -0
  85. package/elizaos/types/generated/eliza/v1/testing_pb2.py +39 -0
  86. package/elizaos/types/generated/eliza/v1/testing_pb2.pyi +23 -0
  87. package/elizaos/types/model.py +3 -0
  88. package/elizaos/types/runtime.py +1 -1
  89. package/package.json +3 -2
  90. package/tests/test_action_parameters.py +2 -3
  91. package/tests/test_advanced_memory_behavior.py +0 -2
  92. package/tests/test_advanced_memory_flag.py +0 -2
  93. package/tests/test_advanced_planning_behavior.py +11 -5
  94. package/tests/test_autonomy.py +11 -1
  95. package/tests/test_runtime.py +8 -17
  96. package/tests/test_schedule_follow_up_action.py +260 -0
  97. package/tests/test_send_message_action_targets.py +114 -0
  98. package/tests/test_settings_crypto.py +0 -2
  99. package/uv.lock +1565 -0
@@ -0,0 +1,1296 @@
1
+ import datetime
2
+
3
+ from google.protobuf import struct_pb2 as _struct_pb2
4
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
+ from google.protobuf.internal import containers as _containers
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import message as _message
8
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
9
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
10
+
11
+ DESCRIPTOR: _descriptor.FileDescriptor
12
+
13
+ class TokenBalance(_message.Message):
14
+ __slots__ = ("address", "balance", "decimals", "ui_amount", "name", "symbol", "logo_uri")
15
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
16
+ BALANCE_FIELD_NUMBER: _ClassVar[int]
17
+ DECIMALS_FIELD_NUMBER: _ClassVar[int]
18
+ UI_AMOUNT_FIELD_NUMBER: _ClassVar[int]
19
+ NAME_FIELD_NUMBER: _ClassVar[int]
20
+ SYMBOL_FIELD_NUMBER: _ClassVar[int]
21
+ LOGO_URI_FIELD_NUMBER: _ClassVar[int]
22
+ address: str
23
+ balance: str
24
+ decimals: int
25
+ ui_amount: float
26
+ name: str
27
+ symbol: str
28
+ logo_uri: str
29
+ def __init__(self, address: _Optional[str] = ..., balance: _Optional[str] = ..., decimals: _Optional[int] = ..., ui_amount: _Optional[float] = ..., name: _Optional[str] = ..., symbol: _Optional[str] = ..., logo_uri: _Optional[str] = ...) -> None: ...
30
+
31
+ class TokenData(_message.Message):
32
+ __slots__ = ("id", "symbol", "name", "address", "chain", "source_provider", "price", "price_change_24h_percent", "price_change_24h_usd", "volume_24h_usd", "market_cap_usd", "liquidity", "holders", "logo_uri", "decimals", "last_updated_at", "raw")
33
+ ID_FIELD_NUMBER: _ClassVar[int]
34
+ SYMBOL_FIELD_NUMBER: _ClassVar[int]
35
+ NAME_FIELD_NUMBER: _ClassVar[int]
36
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
37
+ CHAIN_FIELD_NUMBER: _ClassVar[int]
38
+ SOURCE_PROVIDER_FIELD_NUMBER: _ClassVar[int]
39
+ PRICE_FIELD_NUMBER: _ClassVar[int]
40
+ PRICE_CHANGE_24H_PERCENT_FIELD_NUMBER: _ClassVar[int]
41
+ PRICE_CHANGE_24H_USD_FIELD_NUMBER: _ClassVar[int]
42
+ VOLUME_24H_USD_FIELD_NUMBER: _ClassVar[int]
43
+ MARKET_CAP_USD_FIELD_NUMBER: _ClassVar[int]
44
+ LIQUIDITY_FIELD_NUMBER: _ClassVar[int]
45
+ HOLDERS_FIELD_NUMBER: _ClassVar[int]
46
+ LOGO_URI_FIELD_NUMBER: _ClassVar[int]
47
+ DECIMALS_FIELD_NUMBER: _ClassVar[int]
48
+ LAST_UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
49
+ RAW_FIELD_NUMBER: _ClassVar[int]
50
+ id: str
51
+ symbol: str
52
+ name: str
53
+ address: str
54
+ chain: str
55
+ source_provider: str
56
+ price: float
57
+ price_change_24h_percent: float
58
+ price_change_24h_usd: float
59
+ volume_24h_usd: float
60
+ market_cap_usd: float
61
+ liquidity: float
62
+ holders: float
63
+ logo_uri: str
64
+ decimals: int
65
+ last_updated_at: _timestamp_pb2.Timestamp
66
+ raw: _struct_pb2.Struct
67
+ def __init__(self, id: _Optional[str] = ..., symbol: _Optional[str] = ..., name: _Optional[str] = ..., address: _Optional[str] = ..., chain: _Optional[str] = ..., source_provider: _Optional[str] = ..., price: _Optional[float] = ..., price_change_24h_percent: _Optional[float] = ..., price_change_24h_usd: _Optional[float] = ..., volume_24h_usd: _Optional[float] = ..., market_cap_usd: _Optional[float] = ..., liquidity: _Optional[float] = ..., holders: _Optional[float] = ..., logo_uri: _Optional[str] = ..., decimals: _Optional[int] = ..., last_updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., raw: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
68
+
69
+ class WalletAsset(_message.Message):
70
+ __slots__ = ("address", "balance", "decimals", "ui_amount", "name", "symbol", "logo_uri", "price_usd", "value_usd")
71
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
72
+ BALANCE_FIELD_NUMBER: _ClassVar[int]
73
+ DECIMALS_FIELD_NUMBER: _ClassVar[int]
74
+ UI_AMOUNT_FIELD_NUMBER: _ClassVar[int]
75
+ NAME_FIELD_NUMBER: _ClassVar[int]
76
+ SYMBOL_FIELD_NUMBER: _ClassVar[int]
77
+ LOGO_URI_FIELD_NUMBER: _ClassVar[int]
78
+ PRICE_USD_FIELD_NUMBER: _ClassVar[int]
79
+ VALUE_USD_FIELD_NUMBER: _ClassVar[int]
80
+ address: str
81
+ balance: str
82
+ decimals: int
83
+ ui_amount: float
84
+ name: str
85
+ symbol: str
86
+ logo_uri: str
87
+ price_usd: float
88
+ value_usd: float
89
+ def __init__(self, address: _Optional[str] = ..., balance: _Optional[str] = ..., decimals: _Optional[int] = ..., ui_amount: _Optional[float] = ..., name: _Optional[str] = ..., symbol: _Optional[str] = ..., logo_uri: _Optional[str] = ..., price_usd: _Optional[float] = ..., value_usd: _Optional[float] = ...) -> None: ...
90
+
91
+ class WalletPortfolio(_message.Message):
92
+ __slots__ = ("total_value_usd", "assets")
93
+ TOTAL_VALUE_USD_FIELD_NUMBER: _ClassVar[int]
94
+ ASSETS_FIELD_NUMBER: _ClassVar[int]
95
+ total_value_usd: float
96
+ assets: _containers.RepeatedCompositeFieldContainer[WalletAsset]
97
+ def __init__(self, total_value_usd: _Optional[float] = ..., assets: _Optional[_Iterable[_Union[WalletAsset, _Mapping]]] = ...) -> None: ...
98
+
99
+ class PoolTokenInfo(_message.Message):
100
+ __slots__ = ("mint", "symbol", "reserve", "decimals")
101
+ MINT_FIELD_NUMBER: _ClassVar[int]
102
+ SYMBOL_FIELD_NUMBER: _ClassVar[int]
103
+ RESERVE_FIELD_NUMBER: _ClassVar[int]
104
+ DECIMALS_FIELD_NUMBER: _ClassVar[int]
105
+ mint: str
106
+ symbol: str
107
+ reserve: str
108
+ decimals: int
109
+ def __init__(self, mint: _Optional[str] = ..., symbol: _Optional[str] = ..., reserve: _Optional[str] = ..., decimals: _Optional[int] = ...) -> None: ...
110
+
111
+ class PoolInfo(_message.Message):
112
+ __slots__ = ("id", "display_name", "dex", "token_a", "token_b", "lp_token_mint", "apr", "apy", "tvl", "fee", "metadata")
113
+ ID_FIELD_NUMBER: _ClassVar[int]
114
+ DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
115
+ DEX_FIELD_NUMBER: _ClassVar[int]
116
+ TOKEN_A_FIELD_NUMBER: _ClassVar[int]
117
+ TOKEN_B_FIELD_NUMBER: _ClassVar[int]
118
+ LP_TOKEN_MINT_FIELD_NUMBER: _ClassVar[int]
119
+ APR_FIELD_NUMBER: _ClassVar[int]
120
+ APY_FIELD_NUMBER: _ClassVar[int]
121
+ TVL_FIELD_NUMBER: _ClassVar[int]
122
+ FEE_FIELD_NUMBER: _ClassVar[int]
123
+ METADATA_FIELD_NUMBER: _ClassVar[int]
124
+ id: str
125
+ display_name: str
126
+ dex: str
127
+ token_a: PoolTokenInfo
128
+ token_b: PoolTokenInfo
129
+ lp_token_mint: str
130
+ apr: float
131
+ apy: float
132
+ tvl: float
133
+ fee: float
134
+ metadata: _struct_pb2.Struct
135
+ def __init__(self, id: _Optional[str] = ..., display_name: _Optional[str] = ..., dex: _Optional[str] = ..., token_a: _Optional[_Union[PoolTokenInfo, _Mapping]] = ..., token_b: _Optional[_Union[PoolTokenInfo, _Mapping]] = ..., lp_token_mint: _Optional[str] = ..., apr: _Optional[float] = ..., apy: _Optional[float] = ..., tvl: _Optional[float] = ..., fee: _Optional[float] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
136
+
137
+ class LpPositionDetails(_message.Message):
138
+ __slots__ = ("pool_id", "dex", "lp_token_balance", "underlying_tokens", "value_usd", "accrued_fees", "rewards", "metadata")
139
+ POOL_ID_FIELD_NUMBER: _ClassVar[int]
140
+ DEX_FIELD_NUMBER: _ClassVar[int]
141
+ LP_TOKEN_BALANCE_FIELD_NUMBER: _ClassVar[int]
142
+ UNDERLYING_TOKENS_FIELD_NUMBER: _ClassVar[int]
143
+ VALUE_USD_FIELD_NUMBER: _ClassVar[int]
144
+ ACCRUED_FEES_FIELD_NUMBER: _ClassVar[int]
145
+ REWARDS_FIELD_NUMBER: _ClassVar[int]
146
+ METADATA_FIELD_NUMBER: _ClassVar[int]
147
+ pool_id: str
148
+ dex: str
149
+ lp_token_balance: TokenBalance
150
+ underlying_tokens: _containers.RepeatedCompositeFieldContainer[TokenBalance]
151
+ value_usd: float
152
+ accrued_fees: _containers.RepeatedCompositeFieldContainer[TokenBalance]
153
+ rewards: _containers.RepeatedCompositeFieldContainer[TokenBalance]
154
+ metadata: _struct_pb2.Struct
155
+ def __init__(self, pool_id: _Optional[str] = ..., dex: _Optional[str] = ..., lp_token_balance: _Optional[_Union[TokenBalance, _Mapping]] = ..., underlying_tokens: _Optional[_Iterable[_Union[TokenBalance, _Mapping]]] = ..., value_usd: _Optional[float] = ..., accrued_fees: _Optional[_Iterable[_Union[TokenBalance, _Mapping]]] = ..., rewards: _Optional[_Iterable[_Union[TokenBalance, _Mapping]]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
156
+
157
+ class TransactionResult(_message.Message):
158
+ __slots__ = ("success", "transaction_id", "error", "data")
159
+ SUCCESS_FIELD_NUMBER: _ClassVar[int]
160
+ TRANSACTION_ID_FIELD_NUMBER: _ClassVar[int]
161
+ ERROR_FIELD_NUMBER: _ClassVar[int]
162
+ DATA_FIELD_NUMBER: _ClassVar[int]
163
+ success: bool
164
+ transaction_id: str
165
+ error: str
166
+ data: _struct_pb2.Struct
167
+ def __init__(self, success: _Optional[bool] = ..., transaction_id: _Optional[str] = ..., error: _Optional[str] = ..., data: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
168
+
169
+ class TranscriptionOptions(_message.Message):
170
+ __slots__ = ("language", "model", "temperature", "prompt", "response_format", "timestamp_granularities", "word_timestamps", "segment_timestamps")
171
+ LANGUAGE_FIELD_NUMBER: _ClassVar[int]
172
+ MODEL_FIELD_NUMBER: _ClassVar[int]
173
+ TEMPERATURE_FIELD_NUMBER: _ClassVar[int]
174
+ PROMPT_FIELD_NUMBER: _ClassVar[int]
175
+ RESPONSE_FORMAT_FIELD_NUMBER: _ClassVar[int]
176
+ TIMESTAMP_GRANULARITIES_FIELD_NUMBER: _ClassVar[int]
177
+ WORD_TIMESTAMPS_FIELD_NUMBER: _ClassVar[int]
178
+ SEGMENT_TIMESTAMPS_FIELD_NUMBER: _ClassVar[int]
179
+ language: str
180
+ model: str
181
+ temperature: float
182
+ prompt: str
183
+ response_format: str
184
+ timestamp_granularities: _containers.RepeatedScalarFieldContainer[str]
185
+ word_timestamps: bool
186
+ segment_timestamps: bool
187
+ def __init__(self, language: _Optional[str] = ..., model: _Optional[str] = ..., temperature: _Optional[float] = ..., prompt: _Optional[str] = ..., response_format: _Optional[str] = ..., timestamp_granularities: _Optional[_Iterable[str]] = ..., word_timestamps: _Optional[bool] = ..., segment_timestamps: _Optional[bool] = ...) -> None: ...
188
+
189
+ class TranscriptionResult(_message.Message):
190
+ __slots__ = ("text", "language", "duration", "segments", "words", "confidence")
191
+ TEXT_FIELD_NUMBER: _ClassVar[int]
192
+ LANGUAGE_FIELD_NUMBER: _ClassVar[int]
193
+ DURATION_FIELD_NUMBER: _ClassVar[int]
194
+ SEGMENTS_FIELD_NUMBER: _ClassVar[int]
195
+ WORDS_FIELD_NUMBER: _ClassVar[int]
196
+ CONFIDENCE_FIELD_NUMBER: _ClassVar[int]
197
+ text: str
198
+ language: str
199
+ duration: float
200
+ segments: _containers.RepeatedCompositeFieldContainer[TranscriptionSegment]
201
+ words: _containers.RepeatedCompositeFieldContainer[TranscriptionWord]
202
+ confidence: float
203
+ def __init__(self, text: _Optional[str] = ..., language: _Optional[str] = ..., duration: _Optional[float] = ..., segments: _Optional[_Iterable[_Union[TranscriptionSegment, _Mapping]]] = ..., words: _Optional[_Iterable[_Union[TranscriptionWord, _Mapping]]] = ..., confidence: _Optional[float] = ...) -> None: ...
204
+
205
+ class TranscriptionSegment(_message.Message):
206
+ __slots__ = ("id", "text", "start", "end", "confidence", "tokens", "temperature", "avg_logprob", "compression_ratio", "no_speech_prob")
207
+ ID_FIELD_NUMBER: _ClassVar[int]
208
+ TEXT_FIELD_NUMBER: _ClassVar[int]
209
+ START_FIELD_NUMBER: _ClassVar[int]
210
+ END_FIELD_NUMBER: _ClassVar[int]
211
+ CONFIDENCE_FIELD_NUMBER: _ClassVar[int]
212
+ TOKENS_FIELD_NUMBER: _ClassVar[int]
213
+ TEMPERATURE_FIELD_NUMBER: _ClassVar[int]
214
+ AVG_LOGPROB_FIELD_NUMBER: _ClassVar[int]
215
+ COMPRESSION_RATIO_FIELD_NUMBER: _ClassVar[int]
216
+ NO_SPEECH_PROB_FIELD_NUMBER: _ClassVar[int]
217
+ id: int
218
+ text: str
219
+ start: float
220
+ end: float
221
+ confidence: float
222
+ tokens: _containers.RepeatedScalarFieldContainer[int]
223
+ temperature: float
224
+ avg_logprob: float
225
+ compression_ratio: float
226
+ no_speech_prob: float
227
+ def __init__(self, id: _Optional[int] = ..., text: _Optional[str] = ..., start: _Optional[float] = ..., end: _Optional[float] = ..., confidence: _Optional[float] = ..., tokens: _Optional[_Iterable[int]] = ..., temperature: _Optional[float] = ..., avg_logprob: _Optional[float] = ..., compression_ratio: _Optional[float] = ..., no_speech_prob: _Optional[float] = ...) -> None: ...
228
+
229
+ class TranscriptionWord(_message.Message):
230
+ __slots__ = ("word", "start", "end", "confidence")
231
+ WORD_FIELD_NUMBER: _ClassVar[int]
232
+ START_FIELD_NUMBER: _ClassVar[int]
233
+ END_FIELD_NUMBER: _ClassVar[int]
234
+ CONFIDENCE_FIELD_NUMBER: _ClassVar[int]
235
+ word: str
236
+ start: float
237
+ end: float
238
+ confidence: float
239
+ def __init__(self, word: _Optional[str] = ..., start: _Optional[float] = ..., end: _Optional[float] = ..., confidence: _Optional[float] = ...) -> None: ...
240
+
241
+ class SpeechToTextOptions(_message.Message):
242
+ __slots__ = ("language", "model", "continuous", "interim_results", "max_alternatives")
243
+ LANGUAGE_FIELD_NUMBER: _ClassVar[int]
244
+ MODEL_FIELD_NUMBER: _ClassVar[int]
245
+ CONTINUOUS_FIELD_NUMBER: _ClassVar[int]
246
+ INTERIM_RESULTS_FIELD_NUMBER: _ClassVar[int]
247
+ MAX_ALTERNATIVES_FIELD_NUMBER: _ClassVar[int]
248
+ language: str
249
+ model: str
250
+ continuous: bool
251
+ interim_results: bool
252
+ max_alternatives: int
253
+ def __init__(self, language: _Optional[str] = ..., model: _Optional[str] = ..., continuous: _Optional[bool] = ..., interim_results: _Optional[bool] = ..., max_alternatives: _Optional[int] = ...) -> None: ...
254
+
255
+ class TextToSpeechOptions(_message.Message):
256
+ __slots__ = ("voice", "model", "speed", "format", "response_format")
257
+ VOICE_FIELD_NUMBER: _ClassVar[int]
258
+ MODEL_FIELD_NUMBER: _ClassVar[int]
259
+ SPEED_FIELD_NUMBER: _ClassVar[int]
260
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
261
+ RESPONSE_FORMAT_FIELD_NUMBER: _ClassVar[int]
262
+ voice: str
263
+ model: str
264
+ speed: float
265
+ format: str
266
+ response_format: str
267
+ def __init__(self, voice: _Optional[str] = ..., model: _Optional[str] = ..., speed: _Optional[float] = ..., format: _Optional[str] = ..., response_format: _Optional[str] = ...) -> None: ...
268
+
269
+ class VideoInfo(_message.Message):
270
+ __slots__ = ("title", "duration", "url", "thumbnail", "description", "uploader", "view_count", "upload_date", "formats")
271
+ TITLE_FIELD_NUMBER: _ClassVar[int]
272
+ DURATION_FIELD_NUMBER: _ClassVar[int]
273
+ URL_FIELD_NUMBER: _ClassVar[int]
274
+ THUMBNAIL_FIELD_NUMBER: _ClassVar[int]
275
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
276
+ UPLOADER_FIELD_NUMBER: _ClassVar[int]
277
+ VIEW_COUNT_FIELD_NUMBER: _ClassVar[int]
278
+ UPLOAD_DATE_FIELD_NUMBER: _ClassVar[int]
279
+ FORMATS_FIELD_NUMBER: _ClassVar[int]
280
+ title: str
281
+ duration: float
282
+ url: str
283
+ thumbnail: str
284
+ description: str
285
+ uploader: str
286
+ view_count: float
287
+ upload_date: _timestamp_pb2.Timestamp
288
+ formats: _containers.RepeatedCompositeFieldContainer[VideoFormat]
289
+ def __init__(self, title: _Optional[str] = ..., duration: _Optional[float] = ..., url: _Optional[str] = ..., thumbnail: _Optional[str] = ..., description: _Optional[str] = ..., uploader: _Optional[str] = ..., view_count: _Optional[float] = ..., upload_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., formats: _Optional[_Iterable[_Union[VideoFormat, _Mapping]]] = ...) -> None: ...
290
+
291
+ class VideoFormat(_message.Message):
292
+ __slots__ = ("format_id", "url", "extension", "quality", "file_size", "video_codec", "audio_codec", "resolution", "fps", "bitrate")
293
+ FORMAT_ID_FIELD_NUMBER: _ClassVar[int]
294
+ URL_FIELD_NUMBER: _ClassVar[int]
295
+ EXTENSION_FIELD_NUMBER: _ClassVar[int]
296
+ QUALITY_FIELD_NUMBER: _ClassVar[int]
297
+ FILE_SIZE_FIELD_NUMBER: _ClassVar[int]
298
+ VIDEO_CODEC_FIELD_NUMBER: _ClassVar[int]
299
+ AUDIO_CODEC_FIELD_NUMBER: _ClassVar[int]
300
+ RESOLUTION_FIELD_NUMBER: _ClassVar[int]
301
+ FPS_FIELD_NUMBER: _ClassVar[int]
302
+ BITRATE_FIELD_NUMBER: _ClassVar[int]
303
+ format_id: str
304
+ url: str
305
+ extension: str
306
+ quality: str
307
+ file_size: int
308
+ video_codec: str
309
+ audio_codec: str
310
+ resolution: str
311
+ fps: float
312
+ bitrate: float
313
+ def __init__(self, format_id: _Optional[str] = ..., url: _Optional[str] = ..., extension: _Optional[str] = ..., quality: _Optional[str] = ..., file_size: _Optional[int] = ..., video_codec: _Optional[str] = ..., audio_codec: _Optional[str] = ..., resolution: _Optional[str] = ..., fps: _Optional[float] = ..., bitrate: _Optional[float] = ...) -> None: ...
314
+
315
+ class VideoDownloadOptions(_message.Message):
316
+ __slots__ = ("format", "quality", "output_path", "audio_only", "video_only", "subtitles", "embed_subs", "write_info_json")
317
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
318
+ QUALITY_FIELD_NUMBER: _ClassVar[int]
319
+ OUTPUT_PATH_FIELD_NUMBER: _ClassVar[int]
320
+ AUDIO_ONLY_FIELD_NUMBER: _ClassVar[int]
321
+ VIDEO_ONLY_FIELD_NUMBER: _ClassVar[int]
322
+ SUBTITLES_FIELD_NUMBER: _ClassVar[int]
323
+ EMBED_SUBS_FIELD_NUMBER: _ClassVar[int]
324
+ WRITE_INFO_JSON_FIELD_NUMBER: _ClassVar[int]
325
+ format: str
326
+ quality: str
327
+ output_path: str
328
+ audio_only: bool
329
+ video_only: bool
330
+ subtitles: bool
331
+ embed_subs: bool
332
+ write_info_json: bool
333
+ def __init__(self, format: _Optional[str] = ..., quality: _Optional[str] = ..., output_path: _Optional[str] = ..., audio_only: _Optional[bool] = ..., video_only: _Optional[bool] = ..., subtitles: _Optional[bool] = ..., embed_subs: _Optional[bool] = ..., write_info_json: _Optional[bool] = ...) -> None: ...
334
+
335
+ class VideoProcessingOptions(_message.Message):
336
+ __slots__ = ("start_time", "end_time", "output_format", "resolution", "bitrate", "framerate", "audio_codec", "video_codec")
337
+ START_TIME_FIELD_NUMBER: _ClassVar[int]
338
+ END_TIME_FIELD_NUMBER: _ClassVar[int]
339
+ OUTPUT_FORMAT_FIELD_NUMBER: _ClassVar[int]
340
+ RESOLUTION_FIELD_NUMBER: _ClassVar[int]
341
+ BITRATE_FIELD_NUMBER: _ClassVar[int]
342
+ FRAMERATE_FIELD_NUMBER: _ClassVar[int]
343
+ AUDIO_CODEC_FIELD_NUMBER: _ClassVar[int]
344
+ VIDEO_CODEC_FIELD_NUMBER: _ClassVar[int]
345
+ start_time: float
346
+ end_time: float
347
+ output_format: str
348
+ resolution: str
349
+ bitrate: str
350
+ framerate: float
351
+ audio_codec: str
352
+ video_codec: str
353
+ def __init__(self, start_time: _Optional[float] = ..., end_time: _Optional[float] = ..., output_format: _Optional[str] = ..., resolution: _Optional[str] = ..., bitrate: _Optional[str] = ..., framerate: _Optional[float] = ..., audio_codec: _Optional[str] = ..., video_codec: _Optional[str] = ...) -> None: ...
354
+
355
+ class BrowserViewport(_message.Message):
356
+ __slots__ = ("width", "height")
357
+ WIDTH_FIELD_NUMBER: _ClassVar[int]
358
+ HEIGHT_FIELD_NUMBER: _ClassVar[int]
359
+ width: int
360
+ height: int
361
+ def __init__(self, width: _Optional[int] = ..., height: _Optional[int] = ...) -> None: ...
362
+
363
+ class BrowserNavigationOptions(_message.Message):
364
+ __slots__ = ("timeout", "wait_until", "viewport", "user_agent", "headers")
365
+ class HeadersEntry(_message.Message):
366
+ __slots__ = ("key", "value")
367
+ KEY_FIELD_NUMBER: _ClassVar[int]
368
+ VALUE_FIELD_NUMBER: _ClassVar[int]
369
+ key: str
370
+ value: str
371
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
372
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
373
+ WAIT_UNTIL_FIELD_NUMBER: _ClassVar[int]
374
+ VIEWPORT_FIELD_NUMBER: _ClassVar[int]
375
+ USER_AGENT_FIELD_NUMBER: _ClassVar[int]
376
+ HEADERS_FIELD_NUMBER: _ClassVar[int]
377
+ timeout: int
378
+ wait_until: str
379
+ viewport: BrowserViewport
380
+ user_agent: str
381
+ headers: _containers.ScalarMap[str, str]
382
+ def __init__(self, timeout: _Optional[int] = ..., wait_until: _Optional[str] = ..., viewport: _Optional[_Union[BrowserViewport, _Mapping]] = ..., user_agent: _Optional[str] = ..., headers: _Optional[_Mapping[str, str]] = ...) -> None: ...
383
+
384
+ class ScreenshotClip(_message.Message):
385
+ __slots__ = ("x", "y", "width", "height")
386
+ X_FIELD_NUMBER: _ClassVar[int]
387
+ Y_FIELD_NUMBER: _ClassVar[int]
388
+ WIDTH_FIELD_NUMBER: _ClassVar[int]
389
+ HEIGHT_FIELD_NUMBER: _ClassVar[int]
390
+ x: int
391
+ y: int
392
+ width: int
393
+ height: int
394
+ def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ..., width: _Optional[int] = ..., height: _Optional[int] = ...) -> None: ...
395
+
396
+ class ScreenshotOptions(_message.Message):
397
+ __slots__ = ("full_page", "clip", "format", "quality", "omit_background")
398
+ FULL_PAGE_FIELD_NUMBER: _ClassVar[int]
399
+ CLIP_FIELD_NUMBER: _ClassVar[int]
400
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
401
+ QUALITY_FIELD_NUMBER: _ClassVar[int]
402
+ OMIT_BACKGROUND_FIELD_NUMBER: _ClassVar[int]
403
+ full_page: bool
404
+ clip: ScreenshotClip
405
+ format: str
406
+ quality: int
407
+ omit_background: bool
408
+ def __init__(self, full_page: _Optional[bool] = ..., clip: _Optional[_Union[ScreenshotClip, _Mapping]] = ..., format: _Optional[str] = ..., quality: _Optional[int] = ..., omit_background: _Optional[bool] = ...) -> None: ...
409
+
410
+ class ElementSelector(_message.Message):
411
+ __slots__ = ("selector", "text", "timeout")
412
+ SELECTOR_FIELD_NUMBER: _ClassVar[int]
413
+ TEXT_FIELD_NUMBER: _ClassVar[int]
414
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
415
+ selector: str
416
+ text: str
417
+ timeout: int
418
+ def __init__(self, selector: _Optional[str] = ..., text: _Optional[str] = ..., timeout: _Optional[int] = ...) -> None: ...
419
+
420
+ class LinkInfo(_message.Message):
421
+ __slots__ = ("url", "text")
422
+ URL_FIELD_NUMBER: _ClassVar[int]
423
+ TEXT_FIELD_NUMBER: _ClassVar[int]
424
+ url: str
425
+ text: str
426
+ def __init__(self, url: _Optional[str] = ..., text: _Optional[str] = ...) -> None: ...
427
+
428
+ class ImageInfo(_message.Message):
429
+ __slots__ = ("src", "alt")
430
+ SRC_FIELD_NUMBER: _ClassVar[int]
431
+ ALT_FIELD_NUMBER: _ClassVar[int]
432
+ src: str
433
+ alt: str
434
+ def __init__(self, src: _Optional[str] = ..., alt: _Optional[str] = ...) -> None: ...
435
+
436
+ class ExtractedContent(_message.Message):
437
+ __slots__ = ("text", "html", "links", "images", "title", "metadata")
438
+ class MetadataEntry(_message.Message):
439
+ __slots__ = ("key", "value")
440
+ KEY_FIELD_NUMBER: _ClassVar[int]
441
+ VALUE_FIELD_NUMBER: _ClassVar[int]
442
+ key: str
443
+ value: str
444
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
445
+ TEXT_FIELD_NUMBER: _ClassVar[int]
446
+ HTML_FIELD_NUMBER: _ClassVar[int]
447
+ LINKS_FIELD_NUMBER: _ClassVar[int]
448
+ IMAGES_FIELD_NUMBER: _ClassVar[int]
449
+ TITLE_FIELD_NUMBER: _ClassVar[int]
450
+ METADATA_FIELD_NUMBER: _ClassVar[int]
451
+ text: str
452
+ html: str
453
+ links: _containers.RepeatedCompositeFieldContainer[LinkInfo]
454
+ images: _containers.RepeatedCompositeFieldContainer[ImageInfo]
455
+ title: str
456
+ metadata: _containers.ScalarMap[str, str]
457
+ def __init__(self, text: _Optional[str] = ..., html: _Optional[str] = ..., links: _Optional[_Iterable[_Union[LinkInfo, _Mapping]]] = ..., images: _Optional[_Iterable[_Union[ImageInfo, _Mapping]]] = ..., title: _Optional[str] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ...
458
+
459
+ class ClickOptions(_message.Message):
460
+ __slots__ = ("timeout", "force", "wait_for_navigation")
461
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
462
+ FORCE_FIELD_NUMBER: _ClassVar[int]
463
+ WAIT_FOR_NAVIGATION_FIELD_NUMBER: _ClassVar[int]
464
+ timeout: int
465
+ force: bool
466
+ wait_for_navigation: bool
467
+ def __init__(self, timeout: _Optional[int] = ..., force: _Optional[bool] = ..., wait_for_navigation: _Optional[bool] = ...) -> None: ...
468
+
469
+ class TypeOptions(_message.Message):
470
+ __slots__ = ("delay", "timeout", "clear")
471
+ DELAY_FIELD_NUMBER: _ClassVar[int]
472
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
473
+ CLEAR_FIELD_NUMBER: _ClassVar[int]
474
+ delay: int
475
+ timeout: int
476
+ clear: bool
477
+ def __init__(self, delay: _Optional[int] = ..., timeout: _Optional[int] = ..., clear: _Optional[bool] = ...) -> None: ...
478
+
479
+ class PdfMetadata(_message.Message):
480
+ __slots__ = ("title", "author", "created_at", "modified_at")
481
+ TITLE_FIELD_NUMBER: _ClassVar[int]
482
+ AUTHOR_FIELD_NUMBER: _ClassVar[int]
483
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
484
+ MODIFIED_AT_FIELD_NUMBER: _ClassVar[int]
485
+ title: str
486
+ author: str
487
+ created_at: _timestamp_pb2.Timestamp
488
+ modified_at: _timestamp_pb2.Timestamp
489
+ def __init__(self, title: _Optional[str] = ..., author: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., modified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
490
+
491
+ class PdfExtractionResult(_message.Message):
492
+ __slots__ = ("text", "page_count", "metadata")
493
+ TEXT_FIELD_NUMBER: _ClassVar[int]
494
+ PAGE_COUNT_FIELD_NUMBER: _ClassVar[int]
495
+ METADATA_FIELD_NUMBER: _ClassVar[int]
496
+ text: str
497
+ page_count: int
498
+ metadata: PdfMetadata
499
+ def __init__(self, text: _Optional[str] = ..., page_count: _Optional[int] = ..., metadata: _Optional[_Union[PdfMetadata, _Mapping]] = ...) -> None: ...
500
+
501
+ class PdfMargins(_message.Message):
502
+ __slots__ = ("top", "bottom", "left", "right")
503
+ TOP_FIELD_NUMBER: _ClassVar[int]
504
+ BOTTOM_FIELD_NUMBER: _ClassVar[int]
505
+ LEFT_FIELD_NUMBER: _ClassVar[int]
506
+ RIGHT_FIELD_NUMBER: _ClassVar[int]
507
+ top: float
508
+ bottom: float
509
+ left: float
510
+ right: float
511
+ def __init__(self, top: _Optional[float] = ..., bottom: _Optional[float] = ..., left: _Optional[float] = ..., right: _Optional[float] = ...) -> None: ...
512
+
513
+ class PdfGenerationOptions(_message.Message):
514
+ __slots__ = ("format", "orientation", "margins", "header", "footer")
515
+ FORMAT_FIELD_NUMBER: _ClassVar[int]
516
+ ORIENTATION_FIELD_NUMBER: _ClassVar[int]
517
+ MARGINS_FIELD_NUMBER: _ClassVar[int]
518
+ HEADER_FIELD_NUMBER: _ClassVar[int]
519
+ FOOTER_FIELD_NUMBER: _ClassVar[int]
520
+ format: str
521
+ orientation: str
522
+ margins: PdfMargins
523
+ header: str
524
+ footer: str
525
+ def __init__(self, format: _Optional[str] = ..., orientation: _Optional[str] = ..., margins: _Optional[_Union[PdfMargins, _Mapping]] = ..., header: _Optional[str] = ..., footer: _Optional[str] = ...) -> None: ...
526
+
527
+ class PdfConversionOptions(_message.Message):
528
+ __slots__ = ("quality", "output_format", "compression")
529
+ QUALITY_FIELD_NUMBER: _ClassVar[int]
530
+ OUTPUT_FORMAT_FIELD_NUMBER: _ClassVar[int]
531
+ COMPRESSION_FIELD_NUMBER: _ClassVar[int]
532
+ quality: str
533
+ output_format: str
534
+ compression: bool
535
+ def __init__(self, quality: _Optional[str] = ..., output_format: _Optional[str] = ..., compression: _Optional[bool] = ...) -> None: ...
536
+
537
+ class DateRange(_message.Message):
538
+ __slots__ = ("start", "end")
539
+ START_FIELD_NUMBER: _ClassVar[int]
540
+ END_FIELD_NUMBER: _ClassVar[int]
541
+ start: _timestamp_pb2.Timestamp
542
+ end: _timestamp_pb2.Timestamp
543
+ def __init__(self, start: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., end: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
544
+
545
+ class SearchOptions(_message.Message):
546
+ __slots__ = ("limit", "offset", "language", "region", "date_range", "file_type", "site", "sort_by", "safe_search")
547
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
548
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
549
+ LANGUAGE_FIELD_NUMBER: _ClassVar[int]
550
+ REGION_FIELD_NUMBER: _ClassVar[int]
551
+ DATE_RANGE_FIELD_NUMBER: _ClassVar[int]
552
+ FILE_TYPE_FIELD_NUMBER: _ClassVar[int]
553
+ SITE_FIELD_NUMBER: _ClassVar[int]
554
+ SORT_BY_FIELD_NUMBER: _ClassVar[int]
555
+ SAFE_SEARCH_FIELD_NUMBER: _ClassVar[int]
556
+ limit: int
557
+ offset: int
558
+ language: str
559
+ region: str
560
+ date_range: DateRange
561
+ file_type: str
562
+ site: str
563
+ sort_by: str
564
+ safe_search: str
565
+ def __init__(self, limit: _Optional[int] = ..., offset: _Optional[int] = ..., language: _Optional[str] = ..., region: _Optional[str] = ..., date_range: _Optional[_Union[DateRange, _Mapping]] = ..., file_type: _Optional[str] = ..., site: _Optional[str] = ..., sort_by: _Optional[str] = ..., safe_search: _Optional[str] = ...) -> None: ...
566
+
567
+ class SearchResult(_message.Message):
568
+ __slots__ = ("title", "url", "description", "display_url", "thumbnail", "published_date", "source", "relevance_score", "snippet")
569
+ TITLE_FIELD_NUMBER: _ClassVar[int]
570
+ URL_FIELD_NUMBER: _ClassVar[int]
571
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
572
+ DISPLAY_URL_FIELD_NUMBER: _ClassVar[int]
573
+ THUMBNAIL_FIELD_NUMBER: _ClassVar[int]
574
+ PUBLISHED_DATE_FIELD_NUMBER: _ClassVar[int]
575
+ SOURCE_FIELD_NUMBER: _ClassVar[int]
576
+ RELEVANCE_SCORE_FIELD_NUMBER: _ClassVar[int]
577
+ SNIPPET_FIELD_NUMBER: _ClassVar[int]
578
+ title: str
579
+ url: str
580
+ description: str
581
+ display_url: str
582
+ thumbnail: str
583
+ published_date: _timestamp_pb2.Timestamp
584
+ source: str
585
+ relevance_score: float
586
+ snippet: str
587
+ def __init__(self, title: _Optional[str] = ..., url: _Optional[str] = ..., description: _Optional[str] = ..., display_url: _Optional[str] = ..., thumbnail: _Optional[str] = ..., published_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., source: _Optional[str] = ..., relevance_score: _Optional[float] = ..., snippet: _Optional[str] = ...) -> None: ...
588
+
589
+ class SearchResponse(_message.Message):
590
+ __slots__ = ("query", "results", "total_results", "search_time", "suggestions", "next_page_token", "related_searches")
591
+ QUERY_FIELD_NUMBER: _ClassVar[int]
592
+ RESULTS_FIELD_NUMBER: _ClassVar[int]
593
+ TOTAL_RESULTS_FIELD_NUMBER: _ClassVar[int]
594
+ SEARCH_TIME_FIELD_NUMBER: _ClassVar[int]
595
+ SUGGESTIONS_FIELD_NUMBER: _ClassVar[int]
596
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
597
+ RELATED_SEARCHES_FIELD_NUMBER: _ClassVar[int]
598
+ query: str
599
+ results: _containers.RepeatedCompositeFieldContainer[SearchResult]
600
+ total_results: int
601
+ search_time: float
602
+ suggestions: _containers.RepeatedScalarFieldContainer[str]
603
+ next_page_token: str
604
+ related_searches: _containers.RepeatedScalarFieldContainer[str]
605
+ def __init__(self, query: _Optional[str] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., total_results: _Optional[int] = ..., search_time: _Optional[float] = ..., suggestions: _Optional[_Iterable[str]] = ..., next_page_token: _Optional[str] = ..., related_searches: _Optional[_Iterable[str]] = ...) -> None: ...
606
+
607
+ class NewsSearchOptions(_message.Message):
608
+ __slots__ = ("base", "category", "freshness")
609
+ BASE_FIELD_NUMBER: _ClassVar[int]
610
+ CATEGORY_FIELD_NUMBER: _ClassVar[int]
611
+ FRESHNESS_FIELD_NUMBER: _ClassVar[int]
612
+ base: SearchOptions
613
+ category: str
614
+ freshness: str
615
+ def __init__(self, base: _Optional[_Union[SearchOptions, _Mapping]] = ..., category: _Optional[str] = ..., freshness: _Optional[str] = ...) -> None: ...
616
+
617
+ class ImageSearchOptions(_message.Message):
618
+ __slots__ = ("base", "size", "color", "type", "layout", "license")
619
+ BASE_FIELD_NUMBER: _ClassVar[int]
620
+ SIZE_FIELD_NUMBER: _ClassVar[int]
621
+ COLOR_FIELD_NUMBER: _ClassVar[int]
622
+ TYPE_FIELD_NUMBER: _ClassVar[int]
623
+ LAYOUT_FIELD_NUMBER: _ClassVar[int]
624
+ LICENSE_FIELD_NUMBER: _ClassVar[int]
625
+ base: SearchOptions
626
+ size: str
627
+ color: str
628
+ type: str
629
+ layout: str
630
+ license: str
631
+ def __init__(self, base: _Optional[_Union[SearchOptions, _Mapping]] = ..., size: _Optional[str] = ..., color: _Optional[str] = ..., type: _Optional[str] = ..., layout: _Optional[str] = ..., license: _Optional[str] = ...) -> None: ...
632
+
633
+ class VideoSearchOptions(_message.Message):
634
+ __slots__ = ("base", "duration", "resolution", "quality")
635
+ BASE_FIELD_NUMBER: _ClassVar[int]
636
+ DURATION_FIELD_NUMBER: _ClassVar[int]
637
+ RESOLUTION_FIELD_NUMBER: _ClassVar[int]
638
+ QUALITY_FIELD_NUMBER: _ClassVar[int]
639
+ base: SearchOptions
640
+ duration: str
641
+ resolution: str
642
+ quality: str
643
+ def __init__(self, base: _Optional[_Union[SearchOptions, _Mapping]] = ..., duration: _Optional[str] = ..., resolution: _Optional[str] = ..., quality: _Optional[str] = ...) -> None: ...
644
+
645
+ class EmailAddress(_message.Message):
646
+ __slots__ = ("email", "name")
647
+ EMAIL_FIELD_NUMBER: _ClassVar[int]
648
+ NAME_FIELD_NUMBER: _ClassVar[int]
649
+ email: str
650
+ name: str
651
+ def __init__(self, email: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ...
652
+
653
+ class EmailAttachment(_message.Message):
654
+ __slots__ = ("filename", "content_bytes", "content_text", "content_type", "content_disposition", "cid")
655
+ FILENAME_FIELD_NUMBER: _ClassVar[int]
656
+ CONTENT_BYTES_FIELD_NUMBER: _ClassVar[int]
657
+ CONTENT_TEXT_FIELD_NUMBER: _ClassVar[int]
658
+ CONTENT_TYPE_FIELD_NUMBER: _ClassVar[int]
659
+ CONTENT_DISPOSITION_FIELD_NUMBER: _ClassVar[int]
660
+ CID_FIELD_NUMBER: _ClassVar[int]
661
+ filename: str
662
+ content_bytes: bytes
663
+ content_text: str
664
+ content_type: str
665
+ content_disposition: str
666
+ cid: str
667
+ def __init__(self, filename: _Optional[str] = ..., content_bytes: _Optional[bytes] = ..., content_text: _Optional[str] = ..., content_type: _Optional[str] = ..., content_disposition: _Optional[str] = ..., cid: _Optional[str] = ...) -> None: ...
668
+
669
+ class EmailMessage(_message.Message):
670
+ __slots__ = ("to", "cc", "bcc", "subject", "text", "html", "attachments", "reply_to", "date", "message_id", "references", "in_reply_to", "priority")
671
+ FROM_FIELD_NUMBER: _ClassVar[int]
672
+ TO_FIELD_NUMBER: _ClassVar[int]
673
+ CC_FIELD_NUMBER: _ClassVar[int]
674
+ BCC_FIELD_NUMBER: _ClassVar[int]
675
+ SUBJECT_FIELD_NUMBER: _ClassVar[int]
676
+ TEXT_FIELD_NUMBER: _ClassVar[int]
677
+ HTML_FIELD_NUMBER: _ClassVar[int]
678
+ ATTACHMENTS_FIELD_NUMBER: _ClassVar[int]
679
+ REPLY_TO_FIELD_NUMBER: _ClassVar[int]
680
+ DATE_FIELD_NUMBER: _ClassVar[int]
681
+ MESSAGE_ID_FIELD_NUMBER: _ClassVar[int]
682
+ REFERENCES_FIELD_NUMBER: _ClassVar[int]
683
+ IN_REPLY_TO_FIELD_NUMBER: _ClassVar[int]
684
+ PRIORITY_FIELD_NUMBER: _ClassVar[int]
685
+ to: _containers.RepeatedCompositeFieldContainer[EmailAddress]
686
+ cc: _containers.RepeatedCompositeFieldContainer[EmailAddress]
687
+ bcc: _containers.RepeatedCompositeFieldContainer[EmailAddress]
688
+ subject: str
689
+ text: str
690
+ html: str
691
+ attachments: _containers.RepeatedCompositeFieldContainer[EmailAttachment]
692
+ reply_to: EmailAddress
693
+ date: _timestamp_pb2.Timestamp
694
+ message_id: str
695
+ references: _containers.RepeatedScalarFieldContainer[str]
696
+ in_reply_to: str
697
+ priority: str
698
+ def __init__(self, to: _Optional[_Iterable[_Union[EmailAddress, _Mapping]]] = ..., cc: _Optional[_Iterable[_Union[EmailAddress, _Mapping]]] = ..., bcc: _Optional[_Iterable[_Union[EmailAddress, _Mapping]]] = ..., subject: _Optional[str] = ..., text: _Optional[str] = ..., html: _Optional[str] = ..., attachments: _Optional[_Iterable[_Union[EmailAttachment, _Mapping]]] = ..., reply_to: _Optional[_Union[EmailAddress, _Mapping]] = ..., date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., message_id: _Optional[str] = ..., references: _Optional[_Iterable[str]] = ..., in_reply_to: _Optional[str] = ..., priority: _Optional[str] = ..., **kwargs) -> None: ...
699
+
700
+ class EmailSendOptions(_message.Message):
701
+ __slots__ = ("retry", "timeout", "track_opens", "track_clicks", "tags")
702
+ RETRY_FIELD_NUMBER: _ClassVar[int]
703
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
704
+ TRACK_OPENS_FIELD_NUMBER: _ClassVar[int]
705
+ TRACK_CLICKS_FIELD_NUMBER: _ClassVar[int]
706
+ TAGS_FIELD_NUMBER: _ClassVar[int]
707
+ retry: int
708
+ timeout: int
709
+ track_opens: bool
710
+ track_clicks: bool
711
+ tags: _containers.RepeatedScalarFieldContainer[str]
712
+ def __init__(self, retry: _Optional[int] = ..., timeout: _Optional[int] = ..., track_opens: _Optional[bool] = ..., track_clicks: _Optional[bool] = ..., tags: _Optional[_Iterable[str]] = ...) -> None: ...
713
+
714
+ class EmailSearchOptions(_message.Message):
715
+ __slots__ = ("query", "to", "subject", "folder", "since", "before", "limit", "offset", "unread", "flagged", "has_attachments")
716
+ QUERY_FIELD_NUMBER: _ClassVar[int]
717
+ FROM_FIELD_NUMBER: _ClassVar[int]
718
+ TO_FIELD_NUMBER: _ClassVar[int]
719
+ SUBJECT_FIELD_NUMBER: _ClassVar[int]
720
+ FOLDER_FIELD_NUMBER: _ClassVar[int]
721
+ SINCE_FIELD_NUMBER: _ClassVar[int]
722
+ BEFORE_FIELD_NUMBER: _ClassVar[int]
723
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
724
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
725
+ UNREAD_FIELD_NUMBER: _ClassVar[int]
726
+ FLAGGED_FIELD_NUMBER: _ClassVar[int]
727
+ HAS_ATTACHMENTS_FIELD_NUMBER: _ClassVar[int]
728
+ query: str
729
+ to: str
730
+ subject: str
731
+ folder: str
732
+ since: _timestamp_pb2.Timestamp
733
+ before: _timestamp_pb2.Timestamp
734
+ limit: int
735
+ offset: int
736
+ unread: bool
737
+ flagged: bool
738
+ has_attachments: bool
739
+ def __init__(self, query: _Optional[str] = ..., to: _Optional[str] = ..., subject: _Optional[str] = ..., folder: _Optional[str] = ..., since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., before: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., unread: _Optional[bool] = ..., flagged: _Optional[bool] = ..., has_attachments: _Optional[bool] = ..., **kwargs) -> None: ...
740
+
741
+ class EmailFolder(_message.Message):
742
+ __slots__ = ("name", "path", "type", "message_count", "unread_count", "children")
743
+ NAME_FIELD_NUMBER: _ClassVar[int]
744
+ PATH_FIELD_NUMBER: _ClassVar[int]
745
+ TYPE_FIELD_NUMBER: _ClassVar[int]
746
+ MESSAGE_COUNT_FIELD_NUMBER: _ClassVar[int]
747
+ UNREAD_COUNT_FIELD_NUMBER: _ClassVar[int]
748
+ CHILDREN_FIELD_NUMBER: _ClassVar[int]
749
+ name: str
750
+ path: str
751
+ type: str
752
+ message_count: int
753
+ unread_count: int
754
+ children: _containers.RepeatedCompositeFieldContainer[EmailFolder]
755
+ def __init__(self, name: _Optional[str] = ..., path: _Optional[str] = ..., type: _Optional[str] = ..., message_count: _Optional[int] = ..., unread_count: _Optional[int] = ..., children: _Optional[_Iterable[_Union[EmailFolder, _Mapping]]] = ...) -> None: ...
756
+
757
+ class EmailAccount(_message.Message):
758
+ __slots__ = ("email", "name", "provider", "folders", "quota_used", "quota_limit")
759
+ EMAIL_FIELD_NUMBER: _ClassVar[int]
760
+ NAME_FIELD_NUMBER: _ClassVar[int]
761
+ PROVIDER_FIELD_NUMBER: _ClassVar[int]
762
+ FOLDERS_FIELD_NUMBER: _ClassVar[int]
763
+ QUOTA_USED_FIELD_NUMBER: _ClassVar[int]
764
+ QUOTA_LIMIT_FIELD_NUMBER: _ClassVar[int]
765
+ email: str
766
+ name: str
767
+ provider: str
768
+ folders: _containers.RepeatedCompositeFieldContainer[EmailFolder]
769
+ quota_used: int
770
+ quota_limit: int
771
+ def __init__(self, email: _Optional[str] = ..., name: _Optional[str] = ..., provider: _Optional[str] = ..., folders: _Optional[_Iterable[_Union[EmailFolder, _Mapping]]] = ..., quota_used: _Optional[int] = ..., quota_limit: _Optional[int] = ...) -> None: ...
772
+
773
+ class MessageParticipant(_message.Message):
774
+ __slots__ = ("id", "name", "username", "avatar", "status")
775
+ ID_FIELD_NUMBER: _ClassVar[int]
776
+ NAME_FIELD_NUMBER: _ClassVar[int]
777
+ USERNAME_FIELD_NUMBER: _ClassVar[int]
778
+ AVATAR_FIELD_NUMBER: _ClassVar[int]
779
+ STATUS_FIELD_NUMBER: _ClassVar[int]
780
+ id: str
781
+ name: str
782
+ username: str
783
+ avatar: str
784
+ status: str
785
+ def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., username: _Optional[str] = ..., avatar: _Optional[str] = ..., status: _Optional[str] = ...) -> None: ...
786
+
787
+ class MessageAttachment(_message.Message):
788
+ __slots__ = ("id", "filename", "url", "mime_type", "size", "width", "height", "duration", "thumbnail")
789
+ ID_FIELD_NUMBER: _ClassVar[int]
790
+ FILENAME_FIELD_NUMBER: _ClassVar[int]
791
+ URL_FIELD_NUMBER: _ClassVar[int]
792
+ MIME_TYPE_FIELD_NUMBER: _ClassVar[int]
793
+ SIZE_FIELD_NUMBER: _ClassVar[int]
794
+ WIDTH_FIELD_NUMBER: _ClassVar[int]
795
+ HEIGHT_FIELD_NUMBER: _ClassVar[int]
796
+ DURATION_FIELD_NUMBER: _ClassVar[int]
797
+ THUMBNAIL_FIELD_NUMBER: _ClassVar[int]
798
+ id: str
799
+ filename: str
800
+ url: str
801
+ mime_type: str
802
+ size: int
803
+ width: int
804
+ height: int
805
+ duration: float
806
+ thumbnail: str
807
+ def __init__(self, id: _Optional[str] = ..., filename: _Optional[str] = ..., url: _Optional[str] = ..., mime_type: _Optional[str] = ..., size: _Optional[int] = ..., width: _Optional[int] = ..., height: _Optional[int] = ..., duration: _Optional[float] = ..., thumbnail: _Optional[str] = ...) -> None: ...
808
+
809
+ class MessageReaction(_message.Message):
810
+ __slots__ = ("emoji", "count", "users", "has_reacted")
811
+ EMOJI_FIELD_NUMBER: _ClassVar[int]
812
+ COUNT_FIELD_NUMBER: _ClassVar[int]
813
+ USERS_FIELD_NUMBER: _ClassVar[int]
814
+ HAS_REACTED_FIELD_NUMBER: _ClassVar[int]
815
+ emoji: str
816
+ count: int
817
+ users: _containers.RepeatedScalarFieldContainer[str]
818
+ has_reacted: bool
819
+ def __init__(self, emoji: _Optional[str] = ..., count: _Optional[int] = ..., users: _Optional[_Iterable[str]] = ..., has_reacted: _Optional[bool] = ...) -> None: ...
820
+
821
+ class MessageReference(_message.Message):
822
+ __slots__ = ("message_id", "channel_id", "type")
823
+ MESSAGE_ID_FIELD_NUMBER: _ClassVar[int]
824
+ CHANNEL_ID_FIELD_NUMBER: _ClassVar[int]
825
+ TYPE_FIELD_NUMBER: _ClassVar[int]
826
+ message_id: str
827
+ channel_id: str
828
+ type: str
829
+ def __init__(self, message_id: _Optional[str] = ..., channel_id: _Optional[str] = ..., type: _Optional[str] = ...) -> None: ...
830
+
831
+ class EmbedField(_message.Message):
832
+ __slots__ = ("name", "value", "inline")
833
+ NAME_FIELD_NUMBER: _ClassVar[int]
834
+ VALUE_FIELD_NUMBER: _ClassVar[int]
835
+ INLINE_FIELD_NUMBER: _ClassVar[int]
836
+ name: str
837
+ value: str
838
+ inline: bool
839
+ def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ..., inline: _Optional[bool] = ...) -> None: ...
840
+
841
+ class MessageEmbed(_message.Message):
842
+ __slots__ = ("title", "description", "url", "image", "fields")
843
+ TITLE_FIELD_NUMBER: _ClassVar[int]
844
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
845
+ URL_FIELD_NUMBER: _ClassVar[int]
846
+ IMAGE_FIELD_NUMBER: _ClassVar[int]
847
+ FIELDS_FIELD_NUMBER: _ClassVar[int]
848
+ title: str
849
+ description: str
850
+ url: str
851
+ image: str
852
+ fields: _containers.RepeatedCompositeFieldContainer[EmbedField]
853
+ def __init__(self, title: _Optional[str] = ..., description: _Optional[str] = ..., url: _Optional[str] = ..., image: _Optional[str] = ..., fields: _Optional[_Iterable[_Union[EmbedField, _Mapping]]] = ...) -> None: ...
854
+
855
+ class MessageContent(_message.Message):
856
+ __slots__ = ("text", "html", "markdown", "attachments", "reactions", "reference", "mentions", "embeds")
857
+ TEXT_FIELD_NUMBER: _ClassVar[int]
858
+ HTML_FIELD_NUMBER: _ClassVar[int]
859
+ MARKDOWN_FIELD_NUMBER: _ClassVar[int]
860
+ ATTACHMENTS_FIELD_NUMBER: _ClassVar[int]
861
+ REACTIONS_FIELD_NUMBER: _ClassVar[int]
862
+ REFERENCE_FIELD_NUMBER: _ClassVar[int]
863
+ MENTIONS_FIELD_NUMBER: _ClassVar[int]
864
+ EMBEDS_FIELD_NUMBER: _ClassVar[int]
865
+ text: str
866
+ html: str
867
+ markdown: str
868
+ attachments: _containers.RepeatedCompositeFieldContainer[MessageAttachment]
869
+ reactions: _containers.RepeatedCompositeFieldContainer[MessageReaction]
870
+ reference: MessageReference
871
+ mentions: _containers.RepeatedScalarFieldContainer[str]
872
+ embeds: _containers.RepeatedCompositeFieldContainer[MessageEmbed]
873
+ def __init__(self, text: _Optional[str] = ..., html: _Optional[str] = ..., markdown: _Optional[str] = ..., attachments: _Optional[_Iterable[_Union[MessageAttachment, _Mapping]]] = ..., reactions: _Optional[_Iterable[_Union[MessageReaction, _Mapping]]] = ..., reference: _Optional[_Union[MessageReference, _Mapping]] = ..., mentions: _Optional[_Iterable[str]] = ..., embeds: _Optional[_Iterable[_Union[MessageEmbed, _Mapping]]] = ...) -> None: ...
874
+
875
+ class MessageThreadInfo(_message.Message):
876
+ __slots__ = ("id", "message_count", "participants", "last_message_at")
877
+ ID_FIELD_NUMBER: _ClassVar[int]
878
+ MESSAGE_COUNT_FIELD_NUMBER: _ClassVar[int]
879
+ PARTICIPANTS_FIELD_NUMBER: _ClassVar[int]
880
+ LAST_MESSAGE_AT_FIELD_NUMBER: _ClassVar[int]
881
+ id: str
882
+ message_count: int
883
+ participants: _containers.RepeatedScalarFieldContainer[str]
884
+ last_message_at: _timestamp_pb2.Timestamp
885
+ def __init__(self, id: _Optional[str] = ..., message_count: _Optional[int] = ..., participants: _Optional[_Iterable[str]] = ..., last_message_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
886
+
887
+ class MessageInfo(_message.Message):
888
+ __slots__ = ("id", "channel_id", "sender_id", "content", "timestamp", "edited", "deleted", "pinned", "thread")
889
+ ID_FIELD_NUMBER: _ClassVar[int]
890
+ CHANNEL_ID_FIELD_NUMBER: _ClassVar[int]
891
+ SENDER_ID_FIELD_NUMBER: _ClassVar[int]
892
+ CONTENT_FIELD_NUMBER: _ClassVar[int]
893
+ TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
894
+ EDITED_FIELD_NUMBER: _ClassVar[int]
895
+ DELETED_FIELD_NUMBER: _ClassVar[int]
896
+ PINNED_FIELD_NUMBER: _ClassVar[int]
897
+ THREAD_FIELD_NUMBER: _ClassVar[int]
898
+ id: str
899
+ channel_id: str
900
+ sender_id: str
901
+ content: MessageContent
902
+ timestamp: _timestamp_pb2.Timestamp
903
+ edited: _timestamp_pb2.Timestamp
904
+ deleted: _timestamp_pb2.Timestamp
905
+ pinned: bool
906
+ thread: MessageThreadInfo
907
+ def __init__(self, id: _Optional[str] = ..., channel_id: _Optional[str] = ..., sender_id: _Optional[str] = ..., content: _Optional[_Union[MessageContent, _Mapping]] = ..., timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., edited: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., deleted: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., pinned: _Optional[bool] = ..., thread: _Optional[_Union[MessageThreadInfo, _Mapping]] = ...) -> None: ...
908
+
909
+ class MessageSendOptions(_message.Message):
910
+ __slots__ = ("reply_to", "ephemeral", "silent", "scheduled", "thread", "nonce")
911
+ REPLY_TO_FIELD_NUMBER: _ClassVar[int]
912
+ EPHEMERAL_FIELD_NUMBER: _ClassVar[int]
913
+ SILENT_FIELD_NUMBER: _ClassVar[int]
914
+ SCHEDULED_FIELD_NUMBER: _ClassVar[int]
915
+ THREAD_FIELD_NUMBER: _ClassVar[int]
916
+ NONCE_FIELD_NUMBER: _ClassVar[int]
917
+ reply_to: str
918
+ ephemeral: bool
919
+ silent: bool
920
+ scheduled: _timestamp_pb2.Timestamp
921
+ thread: str
922
+ nonce: str
923
+ def __init__(self, reply_to: _Optional[str] = ..., ephemeral: _Optional[bool] = ..., silent: _Optional[bool] = ..., scheduled: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., thread: _Optional[str] = ..., nonce: _Optional[str] = ...) -> None: ...
924
+
925
+ class MessageSearchOptions(_message.Message):
926
+ __slots__ = ("query", "channel_id", "sender_id", "before", "after", "limit", "offset", "has_attachments", "pinned", "mentions")
927
+ QUERY_FIELD_NUMBER: _ClassVar[int]
928
+ CHANNEL_ID_FIELD_NUMBER: _ClassVar[int]
929
+ SENDER_ID_FIELD_NUMBER: _ClassVar[int]
930
+ BEFORE_FIELD_NUMBER: _ClassVar[int]
931
+ AFTER_FIELD_NUMBER: _ClassVar[int]
932
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
933
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
934
+ HAS_ATTACHMENTS_FIELD_NUMBER: _ClassVar[int]
935
+ PINNED_FIELD_NUMBER: _ClassVar[int]
936
+ MENTIONS_FIELD_NUMBER: _ClassVar[int]
937
+ query: str
938
+ channel_id: str
939
+ sender_id: str
940
+ before: _timestamp_pb2.Timestamp
941
+ after: _timestamp_pb2.Timestamp
942
+ limit: int
943
+ offset: int
944
+ has_attachments: bool
945
+ pinned: bool
946
+ mentions: str
947
+ def __init__(self, query: _Optional[str] = ..., channel_id: _Optional[str] = ..., sender_id: _Optional[str] = ..., before: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., after: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., has_attachments: _Optional[bool] = ..., pinned: _Optional[bool] = ..., mentions: _Optional[str] = ...) -> None: ...
948
+
949
+ class ChannelPermissions(_message.Message):
950
+ __slots__ = ("can_send", "can_read", "can_delete", "can_pin", "can_manage")
951
+ CAN_SEND_FIELD_NUMBER: _ClassVar[int]
952
+ CAN_READ_FIELD_NUMBER: _ClassVar[int]
953
+ CAN_DELETE_FIELD_NUMBER: _ClassVar[int]
954
+ CAN_PIN_FIELD_NUMBER: _ClassVar[int]
955
+ CAN_MANAGE_FIELD_NUMBER: _ClassVar[int]
956
+ can_send: bool
957
+ can_read: bool
958
+ can_delete: bool
959
+ can_pin: bool
960
+ can_manage: bool
961
+ def __init__(self, can_send: _Optional[bool] = ..., can_read: _Optional[bool] = ..., can_delete: _Optional[bool] = ..., can_pin: _Optional[bool] = ..., can_manage: _Optional[bool] = ...) -> None: ...
962
+
963
+ class MessageChannel(_message.Message):
964
+ __slots__ = ("id", "name", "type", "description", "participants", "permissions", "last_message_at", "message_count", "unread_count")
965
+ ID_FIELD_NUMBER: _ClassVar[int]
966
+ NAME_FIELD_NUMBER: _ClassVar[int]
967
+ TYPE_FIELD_NUMBER: _ClassVar[int]
968
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
969
+ PARTICIPANTS_FIELD_NUMBER: _ClassVar[int]
970
+ PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
971
+ LAST_MESSAGE_AT_FIELD_NUMBER: _ClassVar[int]
972
+ MESSAGE_COUNT_FIELD_NUMBER: _ClassVar[int]
973
+ UNREAD_COUNT_FIELD_NUMBER: _ClassVar[int]
974
+ id: str
975
+ name: str
976
+ type: str
977
+ description: str
978
+ participants: _containers.RepeatedCompositeFieldContainer[MessageParticipant]
979
+ permissions: ChannelPermissions
980
+ last_message_at: _timestamp_pb2.Timestamp
981
+ message_count: int
982
+ unread_count: int
983
+ def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., type: _Optional[str] = ..., description: _Optional[str] = ..., participants: _Optional[_Iterable[_Union[MessageParticipant, _Mapping]]] = ..., permissions: _Optional[_Union[ChannelPermissions, _Mapping]] = ..., last_message_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., message_count: _Optional[int] = ..., unread_count: _Optional[int] = ...) -> None: ...
984
+
985
+ class PostMedia(_message.Message):
986
+ __slots__ = ("id", "url", "type", "mime_type", "size", "width", "height", "duration", "thumbnail", "description", "alt_text")
987
+ ID_FIELD_NUMBER: _ClassVar[int]
988
+ URL_FIELD_NUMBER: _ClassVar[int]
989
+ TYPE_FIELD_NUMBER: _ClassVar[int]
990
+ MIME_TYPE_FIELD_NUMBER: _ClassVar[int]
991
+ SIZE_FIELD_NUMBER: _ClassVar[int]
992
+ WIDTH_FIELD_NUMBER: _ClassVar[int]
993
+ HEIGHT_FIELD_NUMBER: _ClassVar[int]
994
+ DURATION_FIELD_NUMBER: _ClassVar[int]
995
+ THUMBNAIL_FIELD_NUMBER: _ClassVar[int]
996
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
997
+ ALT_TEXT_FIELD_NUMBER: _ClassVar[int]
998
+ id: str
999
+ url: str
1000
+ type: str
1001
+ mime_type: str
1002
+ size: int
1003
+ width: int
1004
+ height: int
1005
+ duration: float
1006
+ thumbnail: str
1007
+ description: str
1008
+ alt_text: str
1009
+ def __init__(self, id: _Optional[str] = ..., url: _Optional[str] = ..., type: _Optional[str] = ..., mime_type: _Optional[str] = ..., size: _Optional[int] = ..., width: _Optional[int] = ..., height: _Optional[int] = ..., duration: _Optional[float] = ..., thumbnail: _Optional[str] = ..., description: _Optional[str] = ..., alt_text: _Optional[str] = ...) -> None: ...
1010
+
1011
+ class PostLocationCoordinates(_message.Message):
1012
+ __slots__ = ("latitude", "longitude")
1013
+ LATITUDE_FIELD_NUMBER: _ClassVar[int]
1014
+ LONGITUDE_FIELD_NUMBER: _ClassVar[int]
1015
+ latitude: float
1016
+ longitude: float
1017
+ def __init__(self, latitude: _Optional[float] = ..., longitude: _Optional[float] = ...) -> None: ...
1018
+
1019
+ class PostLocation(_message.Message):
1020
+ __slots__ = ("name", "address", "coordinates", "place_id")
1021
+ NAME_FIELD_NUMBER: _ClassVar[int]
1022
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
1023
+ COORDINATES_FIELD_NUMBER: _ClassVar[int]
1024
+ PLACE_ID_FIELD_NUMBER: _ClassVar[int]
1025
+ name: str
1026
+ address: str
1027
+ coordinates: PostLocationCoordinates
1028
+ place_id: str
1029
+ def __init__(self, name: _Optional[str] = ..., address: _Optional[str] = ..., coordinates: _Optional[_Union[PostLocationCoordinates, _Mapping]] = ..., place_id: _Optional[str] = ...) -> None: ...
1030
+
1031
+ class PostAuthor(_message.Message):
1032
+ __slots__ = ("id", "username", "display_name", "avatar", "verified", "follower_count", "following_count", "bio", "website")
1033
+ ID_FIELD_NUMBER: _ClassVar[int]
1034
+ USERNAME_FIELD_NUMBER: _ClassVar[int]
1035
+ DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int]
1036
+ AVATAR_FIELD_NUMBER: _ClassVar[int]
1037
+ VERIFIED_FIELD_NUMBER: _ClassVar[int]
1038
+ FOLLOWER_COUNT_FIELD_NUMBER: _ClassVar[int]
1039
+ FOLLOWING_COUNT_FIELD_NUMBER: _ClassVar[int]
1040
+ BIO_FIELD_NUMBER: _ClassVar[int]
1041
+ WEBSITE_FIELD_NUMBER: _ClassVar[int]
1042
+ id: str
1043
+ username: str
1044
+ display_name: str
1045
+ avatar: str
1046
+ verified: bool
1047
+ follower_count: int
1048
+ following_count: int
1049
+ bio: str
1050
+ website: str
1051
+ def __init__(self, id: _Optional[str] = ..., username: _Optional[str] = ..., display_name: _Optional[str] = ..., avatar: _Optional[str] = ..., verified: _Optional[bool] = ..., follower_count: _Optional[int] = ..., following_count: _Optional[int] = ..., bio: _Optional[str] = ..., website: _Optional[str] = ...) -> None: ...
1052
+
1053
+ class PostEngagement(_message.Message):
1054
+ __slots__ = ("likes", "shares", "comments", "views", "has_liked", "has_shared", "has_commented", "has_saved")
1055
+ LIKES_FIELD_NUMBER: _ClassVar[int]
1056
+ SHARES_FIELD_NUMBER: _ClassVar[int]
1057
+ COMMENTS_FIELD_NUMBER: _ClassVar[int]
1058
+ VIEWS_FIELD_NUMBER: _ClassVar[int]
1059
+ HAS_LIKED_FIELD_NUMBER: _ClassVar[int]
1060
+ HAS_SHARED_FIELD_NUMBER: _ClassVar[int]
1061
+ HAS_COMMENTED_FIELD_NUMBER: _ClassVar[int]
1062
+ HAS_SAVED_FIELD_NUMBER: _ClassVar[int]
1063
+ likes: int
1064
+ shares: int
1065
+ comments: int
1066
+ views: int
1067
+ has_liked: bool
1068
+ has_shared: bool
1069
+ has_commented: bool
1070
+ has_saved: bool
1071
+ def __init__(self, likes: _Optional[int] = ..., shares: _Optional[int] = ..., comments: _Optional[int] = ..., views: _Optional[int] = ..., has_liked: _Optional[bool] = ..., has_shared: _Optional[bool] = ..., has_commented: _Optional[bool] = ..., has_saved: _Optional[bool] = ...) -> None: ...
1072
+
1073
+ class PostLinkPreview(_message.Message):
1074
+ __slots__ = ("url", "title", "description", "image")
1075
+ URL_FIELD_NUMBER: _ClassVar[int]
1076
+ TITLE_FIELD_NUMBER: _ClassVar[int]
1077
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
1078
+ IMAGE_FIELD_NUMBER: _ClassVar[int]
1079
+ url: str
1080
+ title: str
1081
+ description: str
1082
+ image: str
1083
+ def __init__(self, url: _Optional[str] = ..., title: _Optional[str] = ..., description: _Optional[str] = ..., image: _Optional[str] = ...) -> None: ...
1084
+
1085
+ class PostPollOption(_message.Message):
1086
+ __slots__ = ("text", "votes")
1087
+ TEXT_FIELD_NUMBER: _ClassVar[int]
1088
+ VOTES_FIELD_NUMBER: _ClassVar[int]
1089
+ text: str
1090
+ votes: int
1091
+ def __init__(self, text: _Optional[str] = ..., votes: _Optional[int] = ...) -> None: ...
1092
+
1093
+ class PostPoll(_message.Message):
1094
+ __slots__ = ("question", "options", "expires_at", "multiple_choice")
1095
+ QUESTION_FIELD_NUMBER: _ClassVar[int]
1096
+ OPTIONS_FIELD_NUMBER: _ClassVar[int]
1097
+ EXPIRES_AT_FIELD_NUMBER: _ClassVar[int]
1098
+ MULTIPLE_CHOICE_FIELD_NUMBER: _ClassVar[int]
1099
+ question: str
1100
+ options: _containers.RepeatedCompositeFieldContainer[PostPollOption]
1101
+ expires_at: _timestamp_pb2.Timestamp
1102
+ multiple_choice: bool
1103
+ def __init__(self, question: _Optional[str] = ..., options: _Optional[_Iterable[_Union[PostPollOption, _Mapping]]] = ..., expires_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., multiple_choice: _Optional[bool] = ...) -> None: ...
1104
+
1105
+ class PostContent(_message.Message):
1106
+ __slots__ = ("text", "html", "media", "location", "tags", "mentions", "links", "poll")
1107
+ TEXT_FIELD_NUMBER: _ClassVar[int]
1108
+ HTML_FIELD_NUMBER: _ClassVar[int]
1109
+ MEDIA_FIELD_NUMBER: _ClassVar[int]
1110
+ LOCATION_FIELD_NUMBER: _ClassVar[int]
1111
+ TAGS_FIELD_NUMBER: _ClassVar[int]
1112
+ MENTIONS_FIELD_NUMBER: _ClassVar[int]
1113
+ LINKS_FIELD_NUMBER: _ClassVar[int]
1114
+ POLL_FIELD_NUMBER: _ClassVar[int]
1115
+ text: str
1116
+ html: str
1117
+ media: _containers.RepeatedCompositeFieldContainer[PostMedia]
1118
+ location: PostLocation
1119
+ tags: _containers.RepeatedScalarFieldContainer[str]
1120
+ mentions: _containers.RepeatedScalarFieldContainer[str]
1121
+ links: _containers.RepeatedCompositeFieldContainer[PostLinkPreview]
1122
+ poll: PostPoll
1123
+ def __init__(self, text: _Optional[str] = ..., html: _Optional[str] = ..., media: _Optional[_Iterable[_Union[PostMedia, _Mapping]]] = ..., location: _Optional[_Union[PostLocation, _Mapping]] = ..., tags: _Optional[_Iterable[str]] = ..., mentions: _Optional[_Iterable[str]] = ..., links: _Optional[_Iterable[_Union[PostLinkPreview, _Mapping]]] = ..., poll: _Optional[_Union[PostPoll, _Mapping]] = ...) -> None: ...
1124
+
1125
+ class PostThreadInfo(_message.Message):
1126
+ __slots__ = ("id", "position", "total")
1127
+ ID_FIELD_NUMBER: _ClassVar[int]
1128
+ POSITION_FIELD_NUMBER: _ClassVar[int]
1129
+ TOTAL_FIELD_NUMBER: _ClassVar[int]
1130
+ id: str
1131
+ position: int
1132
+ total: int
1133
+ def __init__(self, id: _Optional[str] = ..., position: _Optional[int] = ..., total: _Optional[int] = ...) -> None: ...
1134
+
1135
+ class CrossPostInfo(_message.Message):
1136
+ __slots__ = ("platform", "platform_id", "url")
1137
+ PLATFORM_FIELD_NUMBER: _ClassVar[int]
1138
+ PLATFORM_ID_FIELD_NUMBER: _ClassVar[int]
1139
+ URL_FIELD_NUMBER: _ClassVar[int]
1140
+ platform: str
1141
+ platform_id: str
1142
+ url: str
1143
+ def __init__(self, platform: _Optional[str] = ..., platform_id: _Optional[str] = ..., url: _Optional[str] = ...) -> None: ...
1144
+
1145
+ class PostInfo(_message.Message):
1146
+ __slots__ = ("id", "author", "content", "platform", "platform_id", "url", "created_at", "edited_at", "scheduled_at", "engagement", "visibility", "reply_to", "thread", "cross_posted")
1147
+ ID_FIELD_NUMBER: _ClassVar[int]
1148
+ AUTHOR_FIELD_NUMBER: _ClassVar[int]
1149
+ CONTENT_FIELD_NUMBER: _ClassVar[int]
1150
+ PLATFORM_FIELD_NUMBER: _ClassVar[int]
1151
+ PLATFORM_ID_FIELD_NUMBER: _ClassVar[int]
1152
+ URL_FIELD_NUMBER: _ClassVar[int]
1153
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
1154
+ EDITED_AT_FIELD_NUMBER: _ClassVar[int]
1155
+ SCHEDULED_AT_FIELD_NUMBER: _ClassVar[int]
1156
+ ENGAGEMENT_FIELD_NUMBER: _ClassVar[int]
1157
+ VISIBILITY_FIELD_NUMBER: _ClassVar[int]
1158
+ REPLY_TO_FIELD_NUMBER: _ClassVar[int]
1159
+ THREAD_FIELD_NUMBER: _ClassVar[int]
1160
+ CROSS_POSTED_FIELD_NUMBER: _ClassVar[int]
1161
+ id: str
1162
+ author: PostAuthor
1163
+ content: PostContent
1164
+ platform: str
1165
+ platform_id: str
1166
+ url: str
1167
+ created_at: _timestamp_pb2.Timestamp
1168
+ edited_at: _timestamp_pb2.Timestamp
1169
+ scheduled_at: _timestamp_pb2.Timestamp
1170
+ engagement: PostEngagement
1171
+ visibility: str
1172
+ reply_to: str
1173
+ thread: PostThreadInfo
1174
+ cross_posted: _containers.RepeatedCompositeFieldContainer[CrossPostInfo]
1175
+ def __init__(self, id: _Optional[str] = ..., author: _Optional[_Union[PostAuthor, _Mapping]] = ..., content: _Optional[_Union[PostContent, _Mapping]] = ..., platform: _Optional[str] = ..., platform_id: _Optional[str] = ..., url: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., edited_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., scheduled_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., engagement: _Optional[_Union[PostEngagement, _Mapping]] = ..., visibility: _Optional[str] = ..., reply_to: _Optional[str] = ..., thread: _Optional[_Union[PostThreadInfo, _Mapping]] = ..., cross_posted: _Optional[_Iterable[_Union[CrossPostInfo, _Mapping]]] = ...) -> None: ...
1176
+
1177
+ class PostCreateOptions(_message.Message):
1178
+ __slots__ = ("platforms", "scheduled_at", "visibility", "reply_to", "thread", "location", "tags", "mentions", "enable_comments", "enable_sharing", "content_warning", "sensitive")
1179
+ PLATFORMS_FIELD_NUMBER: _ClassVar[int]
1180
+ SCHEDULED_AT_FIELD_NUMBER: _ClassVar[int]
1181
+ VISIBILITY_FIELD_NUMBER: _ClassVar[int]
1182
+ REPLY_TO_FIELD_NUMBER: _ClassVar[int]
1183
+ THREAD_FIELD_NUMBER: _ClassVar[int]
1184
+ LOCATION_FIELD_NUMBER: _ClassVar[int]
1185
+ TAGS_FIELD_NUMBER: _ClassVar[int]
1186
+ MENTIONS_FIELD_NUMBER: _ClassVar[int]
1187
+ ENABLE_COMMENTS_FIELD_NUMBER: _ClassVar[int]
1188
+ ENABLE_SHARING_FIELD_NUMBER: _ClassVar[int]
1189
+ CONTENT_WARNING_FIELD_NUMBER: _ClassVar[int]
1190
+ SENSITIVE_FIELD_NUMBER: _ClassVar[int]
1191
+ platforms: _containers.RepeatedScalarFieldContainer[str]
1192
+ scheduled_at: _timestamp_pb2.Timestamp
1193
+ visibility: str
1194
+ reply_to: str
1195
+ thread: bool
1196
+ location: PostLocation
1197
+ tags: _containers.RepeatedScalarFieldContainer[str]
1198
+ mentions: _containers.RepeatedScalarFieldContainer[str]
1199
+ enable_comments: bool
1200
+ enable_sharing: bool
1201
+ content_warning: str
1202
+ sensitive: bool
1203
+ def __init__(self, platforms: _Optional[_Iterable[str]] = ..., scheduled_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., visibility: _Optional[str] = ..., reply_to: _Optional[str] = ..., thread: _Optional[bool] = ..., location: _Optional[_Union[PostLocation, _Mapping]] = ..., tags: _Optional[_Iterable[str]] = ..., mentions: _Optional[_Iterable[str]] = ..., enable_comments: _Optional[bool] = ..., enable_sharing: _Optional[bool] = ..., content_warning: _Optional[str] = ..., sensitive: _Optional[bool] = ...) -> None: ...
1204
+
1205
+ class PostSearchOptions(_message.Message):
1206
+ __slots__ = ("query", "author", "platform", "tags", "mentions", "since", "before", "limit", "offset", "has_media", "has_location", "visibility", "sort_by")
1207
+ QUERY_FIELD_NUMBER: _ClassVar[int]
1208
+ AUTHOR_FIELD_NUMBER: _ClassVar[int]
1209
+ PLATFORM_FIELD_NUMBER: _ClassVar[int]
1210
+ TAGS_FIELD_NUMBER: _ClassVar[int]
1211
+ MENTIONS_FIELD_NUMBER: _ClassVar[int]
1212
+ SINCE_FIELD_NUMBER: _ClassVar[int]
1213
+ BEFORE_FIELD_NUMBER: _ClassVar[int]
1214
+ LIMIT_FIELD_NUMBER: _ClassVar[int]
1215
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
1216
+ HAS_MEDIA_FIELD_NUMBER: _ClassVar[int]
1217
+ HAS_LOCATION_FIELD_NUMBER: _ClassVar[int]
1218
+ VISIBILITY_FIELD_NUMBER: _ClassVar[int]
1219
+ SORT_BY_FIELD_NUMBER: _ClassVar[int]
1220
+ query: str
1221
+ author: str
1222
+ platform: str
1223
+ tags: _containers.RepeatedScalarFieldContainer[str]
1224
+ mentions: _containers.RepeatedScalarFieldContainer[str]
1225
+ since: _timestamp_pb2.Timestamp
1226
+ before: _timestamp_pb2.Timestamp
1227
+ limit: int
1228
+ offset: int
1229
+ has_media: bool
1230
+ has_location: bool
1231
+ visibility: str
1232
+ sort_by: str
1233
+ def __init__(self, query: _Optional[str] = ..., author: _Optional[str] = ..., platform: _Optional[str] = ..., tags: _Optional[_Iterable[str]] = ..., mentions: _Optional[_Iterable[str]] = ..., since: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., before: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., limit: _Optional[int] = ..., offset: _Optional[int] = ..., has_media: _Optional[bool] = ..., has_location: _Optional[bool] = ..., visibility: _Optional[str] = ..., sort_by: _Optional[str] = ...) -> None: ...
1234
+
1235
+ class Demographics(_message.Message):
1236
+ __slots__ = ("age", "gender", "location")
1237
+ class AgeEntry(_message.Message):
1238
+ __slots__ = ("key", "value")
1239
+ KEY_FIELD_NUMBER: _ClassVar[int]
1240
+ VALUE_FIELD_NUMBER: _ClassVar[int]
1241
+ key: str
1242
+ value: float
1243
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[float] = ...) -> None: ...
1244
+ class GenderEntry(_message.Message):
1245
+ __slots__ = ("key", "value")
1246
+ KEY_FIELD_NUMBER: _ClassVar[int]
1247
+ VALUE_FIELD_NUMBER: _ClassVar[int]
1248
+ key: str
1249
+ value: float
1250
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[float] = ...) -> None: ...
1251
+ class LocationEntry(_message.Message):
1252
+ __slots__ = ("key", "value")
1253
+ KEY_FIELD_NUMBER: _ClassVar[int]
1254
+ VALUE_FIELD_NUMBER: _ClassVar[int]
1255
+ key: str
1256
+ value: float
1257
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[float] = ...) -> None: ...
1258
+ AGE_FIELD_NUMBER: _ClassVar[int]
1259
+ GENDER_FIELD_NUMBER: _ClassVar[int]
1260
+ LOCATION_FIELD_NUMBER: _ClassVar[int]
1261
+ age: _containers.ScalarMap[str, float]
1262
+ gender: _containers.ScalarMap[str, float]
1263
+ location: _containers.ScalarMap[str, float]
1264
+ def __init__(self, age: _Optional[_Mapping[str, float]] = ..., gender: _Optional[_Mapping[str, float]] = ..., location: _Optional[_Mapping[str, float]] = ...) -> None: ...
1265
+
1266
+ class TopPerformingHour(_message.Message):
1267
+ __slots__ = ("hour", "engagement")
1268
+ HOUR_FIELD_NUMBER: _ClassVar[int]
1269
+ ENGAGEMENT_FIELD_NUMBER: _ClassVar[int]
1270
+ hour: int
1271
+ engagement: int
1272
+ def __init__(self, hour: _Optional[int] = ..., engagement: _Optional[int] = ...) -> None: ...
1273
+
1274
+ class PostAnalytics(_message.Message):
1275
+ __slots__ = ("post_id", "platform", "impressions", "reach", "engagement", "clicks", "shares", "saves", "demographics", "top_performing_hours")
1276
+ POST_ID_FIELD_NUMBER: _ClassVar[int]
1277
+ PLATFORM_FIELD_NUMBER: _ClassVar[int]
1278
+ IMPRESSIONS_FIELD_NUMBER: _ClassVar[int]
1279
+ REACH_FIELD_NUMBER: _ClassVar[int]
1280
+ ENGAGEMENT_FIELD_NUMBER: _ClassVar[int]
1281
+ CLICKS_FIELD_NUMBER: _ClassVar[int]
1282
+ SHARES_FIELD_NUMBER: _ClassVar[int]
1283
+ SAVES_FIELD_NUMBER: _ClassVar[int]
1284
+ DEMOGRAPHICS_FIELD_NUMBER: _ClassVar[int]
1285
+ TOP_PERFORMING_HOURS_FIELD_NUMBER: _ClassVar[int]
1286
+ post_id: str
1287
+ platform: str
1288
+ impressions: int
1289
+ reach: int
1290
+ engagement: PostEngagement
1291
+ clicks: int
1292
+ shares: int
1293
+ saves: int
1294
+ demographics: Demographics
1295
+ top_performing_hours: _containers.RepeatedCompositeFieldContainer[TopPerformingHour]
1296
+ def __init__(self, post_id: _Optional[str] = ..., platform: _Optional[str] = ..., impressions: _Optional[int] = ..., reach: _Optional[int] = ..., engagement: _Optional[_Union[PostEngagement, _Mapping]] = ..., clicks: _Optional[int] = ..., shares: _Optional[int] = ..., saves: _Optional[int] = ..., demographics: _Optional[_Union[Demographics, _Mapping]] = ..., top_performing_hours: _Optional[_Iterable[_Union[TopPerformingHour, _Mapping]]] = ...) -> None: ...