sdbus-modemmanager 1.0.2__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.

Potentially problematic release.


This version of sdbus-modemmanager might be problematic. Click here for more details.

@@ -0,0 +1,418 @@
1
+ from typing import Any, Dict, List, Optional, Tuple
2
+
3
+ from sdbus import DbusInterfaceCommon, DbusObjectManagerInterface, dbus_method, dbus_property
4
+
5
+ from .enums import MMModemPowerState, MMModemState, MMModemStateFailedReason, MMModemAccessTechnology, MMModemCapability
6
+
7
+
8
+ class MMModemsInterface(DbusObjectManagerInterface):
9
+ """
10
+ Modem objects are exported in DBus with the following path base: /org/freedesktop/ModemManager1/Modems/#, where #
11
+ indicates a unique unsigned integer which identifies the object.
12
+
13
+ The Modem objects will export a generic Modem interface which includes common features and actions applicable to
14
+ most modem types. This interface, among other actions, allows the management (creation, listing, deletion) of B
15
+ earer objects which can then be used to request the modem to get in connected state.
16
+
17
+ Modem objects will also export the generic Simple interface. This interface provides an easy access to the most
18
+ simple and common operations that may be performed with the modem, including connection and disconnection. Users
19
+ of the Simple interface do not need to take care of getting the modem registered, and they also don't need to manage
20
+ the creation of bearers themselves. All the logic required to get the modem connected or disconnected is handled
21
+ by the Simple interface.
22
+
23
+ Modems with specific 3GPP and/or CDMA capabilities will export modem type specific interfaces, like the 3GPP
24
+ interface or the CDMA interface.
25
+ """
26
+ pass
27
+
28
+
29
+ class MMModemInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Modem'):
30
+ """Main modem manager interface"""
31
+
32
+ @dbus_method(input_signature='b')
33
+ def enable(self, enable: bool = True) -> None:
34
+ """
35
+ Enable or disable the modem.
36
+
37
+ When enabled, the modem's radio is powered on and data sessions, voice calls, location services, and Short Message Service may be available.
38
+ When disabled, the modem enters low-power state and no network-related operations are available.
39
+
40
+ :param enable: True to enable the modem and False to disable it.
41
+ """
42
+ raise NotImplementedError
43
+
44
+ @dbus_property('o', property_name='Sim')
45
+ def sim_object_path(self) -> str:
46
+ """The path of the SIM object available in this device, if any."""
47
+ raise NotImplementedError
48
+
49
+ @dbus_property('o', property_name='Bearers')
50
+ def bearer_object_paths(self) -> List[str]:
51
+ """
52
+ The list of bearer object paths (EPS Bearers, PDP Contexts, or CDMA2000 Packet Data Sessions) as requested by
53
+ the user.
54
+ This list does not include the initial EPS bearer details (see "InitialEpsBearer").
55
+ """
56
+ raise NotImplementedError
57
+
58
+ @dbus_property('s')
59
+ def manufacturer(self) -> str:
60
+ """The equipment manufacturer, as reported by the modem."""
61
+ raise NotImplementedError
62
+
63
+ @dbus_property('s')
64
+ def model(self) -> str:
65
+ """The equipment model, as reported by the modem."""
66
+ raise NotImplementedError
67
+
68
+ @dbus_property('s', property_name='Revision')
69
+ def revision(self) -> str:
70
+ """The revision identification of the software, as reported by the modem."""
71
+ raise NotImplementedError
72
+
73
+ @dbus_property('s')
74
+ def hardware_revision(self) -> str:
75
+ """The revision identification of the hardware, as reported by the modem."""
76
+ raise NotImplementedError
77
+
78
+ @dbus_property('s')
79
+ def device_identifier(self) -> str:
80
+ """
81
+ A best-effort device identifier based on various device information like model name, firmware revision,
82
+ USB/PCI/PCMCIA IDs, and other properties.
83
+ This ID is not guaranteed to be unique and may be shared between identical devices with the same firmware, but
84
+ is intended to be "unique enough" for use as a casual device identifier for various user experience operations.
85
+ This is not the device's IMEI or ESN since those may not be available before unlocking the device via a PIN.
86
+ """
87
+ raise NotImplementedError
88
+
89
+ @dbus_property('s')
90
+ def primary_port(self) -> str:
91
+ """The name of the primary port using to control the modem."""
92
+ raise NotImplementedError
93
+
94
+ @dbus_property('s')
95
+ def equipment_identifier(self) -> str:
96
+ """
97
+ The identity of the device.
98
+ This will be the IMEI number for GSM devices and the hex-format ESN/MEID for CDMA devices.
99
+ """
100
+ raise NotImplementedError
101
+
102
+ @property
103
+ def imei(self):
104
+ return self.equipment_identifier
105
+
106
+ @dbus_property('i')
107
+ def state(self) -> int:
108
+ """
109
+ Overall state of the modem, given as a MMModemState value.
110
+ If the device's state cannot be determined, MM_MODEM_STATE_UNKNOWN will be reported.
111
+ """
112
+ raise NotImplementedError
113
+
114
+ @property
115
+ def state_text(self) -> str:
116
+ return MMModemState(self.state).name
117
+
118
+ @dbus_property('u')
119
+ def state_failed_reason(self):
120
+ """
121
+ Error specifying why the modem is in MM_MODEM_STATE_FAILED state,
122
+ given as a MMModemStateFailedReason value.
123
+ """
124
+ raise NotImplementedError
125
+
126
+ @property
127
+ def state_failed_reason_text(self) -> str:
128
+ return MMModemStateFailedReason(self.state_failed_reason).name
129
+
130
+ @dbus_property('ub')
131
+ def signal_quality(self):
132
+ """
133
+ Signal quality in percent (0 - 100) of the dominant access technology the device is using to communicate with the network. Always 0 for POTS devices.
134
+ The additional boolean value indicates if the quality value given was recently taken.
135
+ """
136
+ raise NotImplementedError
137
+
138
+ @dbus_property('as')
139
+ def own_numbers(self):
140
+ """List of numbers (e.g. MSISDN in 3GPP) being currently handled by this modem."""
141
+ raise NotImplementedError
142
+
143
+ @dbus_property('u')
144
+ def power_state(self):
145
+ """A MMModemPowerState value specifying the current power state of the modem."""
146
+ raise NotImplementedError
147
+
148
+ @property
149
+ def power_state_text(self):
150
+ return MMModemPowerState(self.power_state).name
151
+
152
+ @dbus_property('u')
153
+ def access_technologies(self):
154
+ """
155
+ A MMModemAccessTechnology bitfield that describes the various access technologies
156
+ that device uses when registered with or connected to a network
157
+ """
158
+ raise NotImplementedError
159
+
160
+ @property
161
+ def access_technologies_text(self) -> Optional[str]:
162
+ return MMModemAccessTechnology(self.access_technologies).name
163
+
164
+ @dbus_property('u', property_name='CurrentCapabilities')
165
+ def current_capabilities(self) -> int:
166
+ raise NotImplementedError
167
+
168
+ @property
169
+ def current_capabilities_text(self) -> Tuple[str]:
170
+ return tuple(MMModemCapability.names(self.current_capabilities))
171
+
172
+
173
+ class MMModemMessagingInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Modem.Messaging'):
174
+ """The Messaging interface handles sending SMS messages and notification of new incoming messages."""
175
+
176
+ @dbus_method(result_signature='ao')
177
+ def list(self) -> List[str]:
178
+ """Retrieve all SMS messages."""
179
+ raise NotImplementedError
180
+
181
+ @dbus_method(input_signature='o')
182
+ def delete(self, path: str) -> None:
183
+ """Delete an SMS message."""
184
+ raise NotImplementedError
185
+
186
+ @dbus_method(input_signature='a{sv}', result_signature='o')
187
+ def create(self, properties: Dict[str, Tuple[str, Any]]) -> str:
188
+ """Creates a new message object."""
189
+ raise NotImplementedError
190
+
191
+ @dbus_property(property_signature='ao')
192
+ def messages(self) -> List[str]:
193
+ """The list of SMS object paths."""
194
+ raise NotImplementedError
195
+
196
+ @dbus_property(property_signature='au')
197
+ def supported_storages(self) -> List[int]:
198
+ """A list of MMSmsStorage values, specifying the storages supported by this modem for storing and receiving SMS."""
199
+ raise NotImplementedError
200
+
201
+ @dbus_property(property_signature='u')
202
+ def default_storage(self) -> int:
203
+ """A MMSmsStorage value, specifying the storage to be used when receiving or storing SMS."""
204
+ raise NotImplementedError
205
+
206
+
207
+ class MMModemSimpleInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Modem.Simple'):
208
+
209
+ @dbus_method(input_signature='a{sv}', result_signature='o')
210
+ def connect(self, properties: str, bearer: Dict[str, Tuple[str, Any]]) -> str:
211
+ """
212
+ Allowed key/value pairs in properties are:
213
+
214
+ "pin"
215
+ SIM-PIN unlock code, given as a string value (signature "s").
216
+ "operator-id"
217
+ ETSI MCC-MNC of a network to force registration with, given as a string value (signature "s").
218
+ "apn"
219
+ For GSM/UMTS and LTE devices the APN to use, given as a string value (signature "s").
220
+ "ip-type"
221
+ For GSM/UMTS and LTE devices the IP addressing type to use, given as a MMBearerIpFamily value (signature "u").
222
+ "allowed-auth"
223
+ The authentication method to use, given as a MMBearerAllowedAuth value (signature "u"). Optional in 3GPP.
224
+ "user"
225
+ User name (if any) required by the network, given as a string value (signature "s"). Optional in 3GPP.
226
+ "password"
227
+ Password (if any) required by the network, given as a string value (signature "s"). Optional in 3GPP.
228
+ "number"
229
+ For POTS devices the number to dial, given as a string value (signature "s").
230
+ "allow-roaming"
231
+ False to allow only connections to home networks, given as a boolean value (signature "b").
232
+ "rm-protocol"
233
+ For CDMA devices, the protocol of the Rm interface, given as a MMModemCdmaRmProtocol value (signature "u").
234
+
235
+ :param properties: Dictionary of properties needed to get the modem connected.
236
+ :returns: On successful connect, returns the object path of the connected packet data bearer used for the connection attempt.
237
+ """
238
+ raise NotImplementedError
239
+
240
+ @dbus_method(input_signature='o')
241
+ def disconnect(self, bearer: str):
242
+ """
243
+ data bearer, while if "/" (ie, no object given) this method will disconnect all active packet data bearers.
244
+ Disconnect an active packet data connection.
245
+ :param bearer: If given this method will disconnect the referenced packet
246
+ """
247
+ raise NotImplementedError
248
+
249
+ @dbus_method(result_signature='a{sv}')
250
+ def get_status(self) -> Dict[str, Tuple[str, Any]]:
251
+ """
252
+ Get the general modem status.
253
+
254
+ The predefined common properties returned are:
255
+
256
+ "state"
257
+ A MMModemState value specifying the overall state of the modem, given as an unsigned integer value (signature "u").
258
+ "signal-quality"
259
+ Signal quality value, given only when registered, as an unsigned integer value (signature "u").
260
+ "current-bands"
261
+ List of MMModemBand values, given only when registered, as a list of unsigned integer values (signature "au").
262
+ "access-technology"
263
+ A MMModemAccessTechnology value, given only when registered, as an unsigned integer value (signature "u").
264
+ "m3gpp-registration-state"
265
+ A MMModem3gppRegistrationState value specifying the state of the registration, given only when registered in a 3GPP network, as an unsigned integer value (signature "u").
266
+ "m3gpp-operator-code"
267
+ Operator MCC-MNC, given only when registered in a 3GPP network, as a string value (signature "s").
268
+ "m3gpp-operator-name"
269
+ Operator name, given only when registered in a 3GPP network, as a string value (signature "s").
270
+ "cdma-cdma1x-registration-state"
271
+ A MMModemCdmaRegistrationState value specifying the state of the registration, given only when registered in a CDMA1x network, as an unsigned integer value (signature "u").
272
+ "cdma-evdo-registration-state"
273
+ A MMModemCdmaRegistrationState value specifying the state of the registration, given only when registered in a EV-DO network, as an unsigned integer value (signature "u").
274
+ "cdma-sid"
275
+ The System Identifier of the serving network, if registered in a CDMA1x network and if known. Given as an unsigned integer value (signature "u").
276
+ "cdma-nid"
277
+ The Network Identifier of the serving network, if registered in a CDMA1x network and if known. Given as an unsigned integer value (signature "u").
278
+
279
+ :returns: Dictionary of properties.
280
+ """
281
+ raise NotImplementedError
282
+
283
+
284
+ class MMModemSignalInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Modem.Signal'):
285
+
286
+ @dbus_method('u')
287
+ def setup(self, rate: int):
288
+ """Setup extended signal quality information retrieval.
289
+
290
+ :param rate: Refresh rate to set, in seconds. 0 to disable retrieval.
291
+ """
292
+ raise NotImplementedError
293
+
294
+ @dbus_property('u')
295
+ def rate(self) -> int:
296
+ """
297
+ Refresh rate for the extended signal quality information updates, in seconds.
298
+ A value of 0 disables the retrieval of the values.
299
+ """
300
+ raise NotImplementedError
301
+
302
+ @dbus_property('a{sv}')
303
+ def cdma(self) -> Dict[str, Tuple[str, Any]]:
304
+ """
305
+ Dictionary of available signal information for the CDMA1x access technology.
306
+ """
307
+ raise NotImplementedError
308
+
309
+ @dbus_property('a{sv}')
310
+ def evdo(self) -> Dict[str, Tuple[str, Any]]:
311
+ """
312
+ Dictionary of available signal information for the CDMA EV-DO access technology.
313
+ """
314
+ raise NotImplementedError
315
+
316
+ @dbus_property('a{sv}')
317
+ def gsm(self) -> Dict[str, Tuple[str, Any]]:
318
+ """
319
+ Dictionary of available signal information for the GSM/GPRS access technology.
320
+ """
321
+ raise NotImplementedError
322
+
323
+ @dbus_property('a{sv}')
324
+ def umts(self) -> Dict[str, Tuple[str, Any]]:
325
+ """
326
+ Dictionary of available signal information for the UMTS (WCDMA) access technology.
327
+ """
328
+ raise NotImplementedError
329
+
330
+ @dbus_property('a{sv}')
331
+ def lte(self) -> Dict[str, Tuple[str, Any]]:
332
+ """
333
+ Dictionary of available signal information for the LTE access technology.
334
+ """
335
+ raise NotImplementedError
336
+
337
+ @dbus_property('a{sv}')
338
+ def nr5g(self) -> Dict[str, Tuple[str, Any]]:
339
+ """
340
+ Dictionary of available signal information for the 5G access technology.
341
+ """
342
+ raise NotImplementedError
343
+
344
+
345
+ class MMModemVoiceInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Modem.Voice'):
346
+
347
+ @dbus_method(result_signature='ao')
348
+ def list_calls(self) -> List[str]:
349
+ """
350
+ Retrieve all Calls.
351
+
352
+ :returns: The list of call object paths.
353
+ """
354
+ raise NotImplementedError
355
+
356
+ @dbus_method(input_signature='o')
357
+ def delete_call(self, path: str) -> None:
358
+ """
359
+ Delete a Call from the list of calls.
360
+ The call will be hangup if it is still active.
361
+
362
+ :param path: The object path of the Call to delete.
363
+ """
364
+ raise NotImplementedError
365
+
366
+ @dbus_method(input_signature='a{sv}')
367
+ def create_call(self, properties: Dict[str, str]) -> str:
368
+ """
369
+ Creates a new call object for a new outgoing call.
370
+ The 'Number' is the only expected property to set by the user.
371
+
372
+ :param properties: Call properties from the Call D-Bus interface.
373
+ :returns: The object path of the new call object.
374
+ """
375
+ raise NotImplementedError
376
+
377
+ @dbus_method()
378
+ def hold_and_accept(self) -> None:
379
+ """Place all active calls on hold, if any, and accept the next call."""
380
+ raise NotImplementedError
381
+
382
+ @dbus_method()
383
+ def hangup_and_accept(self) -> None:
384
+ """Hangup all active calls, if any, and accept the next call."""
385
+ raise NotImplementedError
386
+
387
+ @dbus_method()
388
+ def hangup_all(self) -> None:
389
+ """Hangup all active calls."""
390
+ raise NotImplementedError
391
+
392
+ @dbus_method()
393
+ def transfer(self) -> None:
394
+ """
395
+ Join the currently active and held calls together into a single multiparty call,
396
+ but disconnects from them.
397
+ """
398
+ raise NotImplementedError
399
+
400
+ @dbus_method(input_signature='b')
401
+ def call_waiting_setup(self, enable: bool) -> None:
402
+ """Activates or deactivates the call waiting network service, as per 3GPP TS 22.083."""
403
+ raise NotImplementedError
404
+
405
+ @dbus_method(result_signature='b')
406
+ def call_waiting_query(self) -> bool:
407
+ """Queries the status of the call waiting network service, as per 3GPP TS 22.083."""
408
+ raise NotImplementedError
409
+
410
+ @dbus_property('o', property_name='Calls')
411
+ def call_object_paths(self) -> List[str]:
412
+ """The list of calls object paths."""
413
+ raise NotImplementedError
414
+
415
+ @dbus_property('b')
416
+ def emergency_only(self) -> bool:
417
+ """A flag indicating whether emergency calls are the only allowed ones."""
418
+ raise NotImplementedError
@@ -0,0 +1,39 @@
1
+ from typing import Any, Dict, List, Tuple
2
+
3
+ from sdbus import DbusInterfaceCommon, dbus_method, dbus_property
4
+
5
+
6
+ class MMInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1'):
7
+ """Main modem manager interface"""
8
+
9
+ @dbus_method()
10
+ def scan_devices(self) -> None:
11
+ """Start a new scan for connected modem devices."""
12
+ raise NotImplementedError
13
+
14
+ @dbus_method(input_signature='s')
15
+ def set_logging(self, level: str) -> None:
16
+ """Set logging verbosity.
17
+
18
+ :param level: One of "ERR", "WARN", "INFO", "DEBUG".
19
+ """
20
+ raise NotImplementedError
21
+
22
+ @dbus_method(input_signature='a{sv}')
23
+ def report_kernel_event(self, properties: Dict[str, Tuple[str, Any]]) -> None:
24
+ """Reports a kernel event to ModemManager."""
25
+ raise NotImplementedError
26
+
27
+ @dbus_method(input_signature='sb')
28
+ def inhibit_device(self, uid: str, inhibit: bool) -> None:
29
+ """Inhibit or uninhibit the device.
30
+
31
+ :param uid: The unique ID of the physical device
32
+ :param inhibit: True to inhibit the modem and False to uninhibit it
33
+ """
34
+ raise NotImplementedError
35
+
36
+ @dbus_property('s')
37
+ def version(self) -> str:
38
+ """NetworkManager version"""
39
+ raise NotImplementedError
@@ -0,0 +1,130 @@
1
+ from typing import List, Tuple
2
+
3
+ from sdbus import DbusInterfaceCommon, dbus_method, dbus_property
4
+
5
+
6
+ class MMSimInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Sim'):
7
+ """The SIM interface handles communication with SIM, USIM, and RUIM (CDMA SIM) cards."""
8
+
9
+ @dbus_method(input_signature='s')
10
+ def send_pin(self, pin: str = '') -> None:
11
+ """
12
+ Send the PIN to unlock the SIM card.
13
+
14
+ :param pin: A string containing the PIN code.
15
+ """
16
+ raise NotImplementedError
17
+
18
+ @dbus_method(input_signature='ss')
19
+ def send_puk(self, puk: str = '', pin: str = '') -> None:
20
+ """
21
+ Send the PUK and a new PIN to unlock the SIM card.
22
+
23
+ :param puk: A string containing the PUK code.
24
+ :param pin: A string containing the PIN code.
25
+ """
26
+ raise NotImplementedError
27
+
28
+ @dbus_method(input_signature='sb')
29
+ def enable_pin(self, pin: str = '', enable: bool = False) -> None:
30
+ """
31
+ Enable or disable the PIN checking.
32
+
33
+ :param pin: A string containing the PIN code.
34
+ :param enable: TRUE to enable PIN checking, FALSE otherwise.
35
+ """
36
+ raise NotImplementedError
37
+
38
+ @dbus_method(input_signature='ss')
39
+ def change_pin(self, old_pin: str = '', new_pin: str = '') -> None:
40
+ """
41
+ Change the PIN code.
42
+
43
+ :param old_pin: A string containing the current PIN code.
44
+ :param new_pin: A string containing the new PIN code.
45
+ """
46
+ raise NotImplementedError
47
+
48
+ @dbus_method(input_signature='a(su)')
49
+ def set_preferred_networks(self, preferred_networks: List[Tuple[str, int]]) -> None:
50
+ """
51
+ Stores the provided preferred network list to the SIM card.
52
+
53
+ Each entry contains an operator id string ("MCCMNC") consisting of 5 or 6 digits,
54
+ and an MMModemAccessTechnology mask to store to SIM card if supported.
55
+
56
+ :param preferred_networks: Operator id string and MMModemAccessTechnology mask.
57
+ """
58
+ raise NotImplementedError
59
+
60
+ @dbus_property(property_signature='b')
61
+ def active(self) -> bool:
62
+ """Boolean indicating whether the SIM is currently active."""
63
+ raise NotImplementedError
64
+
65
+ @dbus_property('s')
66
+ def sim_identifier(self) -> str:
67
+ """
68
+ The ICCID of the SIM card.
69
+ This may be available before the PIN has been entered depending on the device itself.
70
+ """
71
+ raise NotImplementedError
72
+
73
+ @dbus_property('s')
74
+ def imsi(self) -> str:
75
+ """The IMSI of the SIM card, if any."""
76
+ raise NotImplementedError
77
+
78
+ @dbus_property(property_signature='s')
79
+ def eid(self) -> str:
80
+ """The EID of the SIM card, if any."""
81
+ raise NotImplementedError
82
+
83
+ @dbus_property('s')
84
+ def operator_identifier(self) -> str:
85
+ raise NotImplementedError
86
+
87
+ @dbus_property('s')
88
+ def operator_name(self) -> str:
89
+ """The name of the network operator, as given by the SIM card, if known."""
90
+ raise NotImplementedError
91
+
92
+ @dbus_property(property_signature='as')
93
+ def emergency_numbers(self) -> List[str]:
94
+ """List of emergency numbers programmed in the SIM card."""
95
+ raise NotImplementedError
96
+
97
+ @dbus_property(property_signature='a(su)')
98
+ def preferred_networks(self) -> List[Tuple[str, int]]:
99
+ """
100
+ List of preferred networks with access technologies configured in the SIM card.
101
+
102
+ Each entry contains an operator id string ("MCCMNC") consisting of 5 or 6 digits,
103
+ and an MMModemAccessTechnology mask to store to SIM card if supported.
104
+ """
105
+ raise NotImplementedError
106
+
107
+ @dbus_property(property_signature='ay')
108
+ def gid1(self) -> bytes:
109
+ """Group identifier level 1."""
110
+ raise NotImplementedError
111
+
112
+ @dbus_property(property_signature='ay')
113
+ def gid2(self) -> bytes:
114
+ """Group identifier level 2."""
115
+ raise NotImplementedError
116
+
117
+ @dbus_property(property_signature='u')
118
+ def sim_type(self) -> int:
119
+ """Indicates whether the current primary SIM is a ESIM or a physical SIM, given as MMSimType value."""
120
+ raise NotImplementedError
121
+
122
+ @dbus_property(property_signature='u')
123
+ def esim_status(self) -> int:
124
+ """If current SIM is ESIM then this indicates whether there is a profile or not, given as MMSimEsimStatus value."""
125
+ raise NotImplementedError
126
+
127
+ @dbus_property(property_signature='u')
128
+ def removability(self) -> int:
129
+ """Indicates whether the current SIM is a removable SIM or not, given as a MMSimRemovability value."""
130
+ raise NotImplementedError
@@ -0,0 +1,97 @@
1
+ from typing import Any, Tuple
2
+
3
+ from sdbus import DbusInterfaceCommon, dbus_method, dbus_property
4
+
5
+
6
+ class MMSmsInterface(DbusInterfaceCommon, interface_name='org.freedesktop.ModemManager1.Sms'):
7
+ """The SMS interface defines operations and properties of a single SMS message."""
8
+
9
+ @dbus_method()
10
+ def send(self) -> None:
11
+ """If the message has not yet been sent, queue it for delivery."""
12
+ raise NotImplementedError
13
+
14
+ @dbus_method(input_signature='u')
15
+ def store(self, storage: int) -> None:
16
+ """Store the message in the device if not already done."""
17
+ raise NotImplementedError
18
+
19
+ @dbus_property(property_signature='u')
20
+ def state(self) -> int:
21
+ """A MMSmsState value, describing the state of the message."""
22
+ raise NotImplementedError
23
+
24
+ @dbus_property(property_signature='u')
25
+ def pdu_type(self) -> int:
26
+ """A MMSmsPduType value, describing the type of PDUs used in the SMS message."""
27
+ raise NotImplementedError
28
+
29
+ @dbus_property(property_signature='s')
30
+ def number(self) -> str:
31
+ """Number to which the message is addressed."""
32
+ raise NotImplementedError
33
+
34
+ @dbus_property(property_signature='s')
35
+ def text(self) -> str:
36
+ """Message text, in UTF-8."""
37
+ raise NotImplementedError
38
+
39
+ @dbus_property(property_signature='ay')
40
+ def data(self) -> bytes:
41
+ """Message data."""
42
+ raise NotImplementedError
43
+
44
+ @dbus_property(property_signature='s')
45
+ def s_m_s_c(self) -> str:
46
+ """Indicates the SMS service center number."""
47
+ raise NotImplementedError
48
+
49
+ @dbus_property(property_signature='(uv)')
50
+ def validity(self) -> Tuple[int, Tuple[str, Any]]:
51
+ """Indicates when the SMS expires in the SMSC."""
52
+ raise NotImplementedError
53
+
54
+ @dbus_property(property_signature='i')
55
+ def Class(self) -> int:
56
+ """3GPP message class (-1..3)."""
57
+ raise NotImplementedError
58
+
59
+ @dbus_property(property_signature='u')
60
+ def teleservice_id(self) -> int:
61
+ """A MMSmsCdmaTeleserviceId value."""
62
+ raise NotImplementedError
63
+
64
+ @dbus_property(property_signature='u')
65
+ def service_category(self) -> int:
66
+ """A MMSmsCdmaServiceCategory value."""
67
+ raise NotImplementedError
68
+
69
+ @dbus_property(property_signature='b')
70
+ def delivery_report_request(self) -> bool:
71
+ """True if delivery report request is required, False otherwise."""
72
+ raise NotImplementedError
73
+
74
+ @dbus_property(property_signature='u')
75
+ def message_reference(self) -> int:
76
+ """Message Reference of the last PDU sent/received within this SMS."""
77
+ raise NotImplementedError
78
+
79
+ @dbus_property(property_signature='s')
80
+ def timestamp(self) -> str:
81
+ """Time when the first PDU of the SMS message arrived the SMSC, in ISO8601 format."""
82
+ raise NotImplementedError
83
+
84
+ @dbus_property(property_signature='s')
85
+ def discharge_timestamp(self) -> str:
86
+ """Time when the first PDU of the SMS message left the SMSC, in ISO8601 format."""
87
+ raise NotImplementedError
88
+
89
+ @dbus_property(property_signature='u')
90
+ def delivery_state(self) -> int:
91
+ """A MMSmsDeliveryState value, describing the state of the delivery reported in the Status Report message."""
92
+ raise NotImplementedError
93
+
94
+ @dbus_property(property_signature='u')
95
+ def storage(self) -> int:
96
+ """A MMSmsStorage value, describing the storage where this message is kept."""
97
+ raise NotImplementedError