bestsms 0.0.0.1__tar.gz

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 (120) hide show
  1. bestsms-0.0.0.1/LICENSE +21 -0
  2. bestsms-0.0.0.1/PKG-INFO +537 -0
  3. bestsms-0.0.0.1/README.md +513 -0
  4. bestsms-0.0.0.1/bestsms/__init__.py +68 -0
  5. bestsms-0.0.0.1/bestsms/_config.py +10 -0
  6. bestsms-0.0.0.1/bestsms/api/__init__.py +0 -0
  7. bestsms-0.0.0.1/bestsms/api/actions/__init__.py +68 -0
  8. bestsms-0.0.0.1/bestsms/api/actions/dtos/__init__.py +0 -0
  9. bestsms-0.0.0.1/bestsms/api/actions/dtos/action_api_result_dto.py +16 -0
  10. bestsms-0.0.0.1/bestsms/api/actions/requests/__init__.py +55 -0
  11. bestsms-0.0.0.1/bestsms/api/actions/requests/_common.py +63 -0
  12. bestsms-0.0.0.1/bestsms/api/actions/requests/abort.py +119 -0
  13. bestsms-0.0.0.1/bestsms/api/actions/requests/reschedule.py +137 -0
  14. bestsms-0.0.0.1/bestsms/api/actions/requests/resubmit.py +128 -0
  15. bestsms-0.0.0.1/bestsms/api/actions/responses/__init__.py +8 -0
  16. bestsms-0.0.0.1/bestsms/api/actions/responses/action_api_result.py +60 -0
  17. bestsms-0.0.0.1/bestsms/api/addressbook/__init__.py +67 -0
  18. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/__init__.py +0 -0
  19. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/dtos/__init__.py +0 -0
  20. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/dtos/contact_group_api_create_request_dto.py +12 -0
  21. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/dtos/contact_group_api_result_dto.py +19 -0
  22. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/dtos/contact_group_list_api_result_dto.py +20 -0
  23. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/requests/__init__.py +94 -0
  24. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/requests/_common.py +69 -0
  25. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/requests/create.py +85 -0
  26. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/requests/delete.py +88 -0
  27. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/requests/detail.py +88 -0
  28. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/requests/list.py +107 -0
  29. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/responses/__init__.py +0 -0
  30. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/responses/contact_group_api_result.py +87 -0
  31. bestsms-0.0.0.1/bestsms/api/addressbook/contactgroups/responses/contact_group_list_api_result.py +91 -0
  32. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/__init__.py +68 -0
  33. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/dtos/__init__.py +0 -0
  34. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/dtos/contact_api_result_dto.py +15 -0
  35. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/dtos/contact_list_api_result_dto.py +18 -0
  36. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/dtos/contact_model.py +46 -0
  37. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/__init__.py +114 -0
  38. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/_common.py +64 -0
  39. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/create.py +91 -0
  40. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/delete.py +77 -0
  41. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/detail.py +77 -0
  42. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/list.py +99 -0
  43. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/requests/update.py +97 -0
  44. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/responses/__init__.py +0 -0
  45. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/responses/contact_api_result.py +72 -0
  46. bestsms-0.0.0.1/bestsms/api/addressbook/contacts/responses/contact_list_api_result.py +74 -0
  47. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/__init__.py +0 -0
  48. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/dtos/__init__.py +0 -0
  49. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/dtos/group_contact_api_create_request_dto.py +12 -0
  50. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/dtos/group_contact_api_result_dto.py +19 -0
  51. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/dtos/group_contact_list_api_result_dto.py +20 -0
  52. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/requests/__init__.py +95 -0
  53. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/requests/_common.py +69 -0
  54. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/requests/create.py +85 -0
  55. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/requests/delete.py +87 -0
  56. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/requests/detail.py +88 -0
  57. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/requests/list.py +107 -0
  58. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/responses/__init__.py +0 -0
  59. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/responses/group_contact_api_result.py +88 -0
  60. bestsms-0.0.0.1/bestsms/api/addressbook/groupcontacts/responses/group_contact_list_api_result.py +92 -0
  61. bestsms-0.0.0.1/bestsms/api/addressbook/groups/__init__.py +0 -0
  62. bestsms-0.0.0.1/bestsms/api/addressbook/groups/dtos/__init__.py +0 -0
  63. bestsms-0.0.0.1/bestsms/api/addressbook/groups/dtos/group_api_result_dto.py +14 -0
  64. bestsms-0.0.0.1/bestsms/api/addressbook/groups/dtos/group_list_api_result_dto.py +18 -0
  65. bestsms-0.0.0.1/bestsms/api/addressbook/groups/dtos/group_model.py +19 -0
  66. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/__init__.py +115 -0
  67. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/_common.py +64 -0
  68. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/create.py +92 -0
  69. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/delete.py +77 -0
  70. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/detail.py +77 -0
  71. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/list.py +96 -0
  72. bestsms-0.0.0.1/bestsms/api/addressbook/groups/requests/update.py +97 -0
  73. bestsms-0.0.0.1/bestsms/api/addressbook/groups/responses/__init__.py +0 -0
  74. bestsms-0.0.0.1/bestsms/api/addressbook/groups/responses/group_api_result.py +75 -0
  75. bestsms-0.0.0.1/bestsms/api/addressbook/groups/responses/group_list_api_result.py +76 -0
  76. bestsms-0.0.0.1/bestsms/api/messaging/__init__.py +0 -0
  77. bestsms-0.0.0.1/bestsms/api/messaging/dtos/__init__.py +0 -0
  78. bestsms-0.0.0.1/bestsms/api/messaging/dtos/common_api_request_dto.py +37 -0
  79. bestsms-0.0.0.1/bestsms/api/messaging/dtos/message_api_result_dto.py +12 -0
  80. bestsms-0.0.0.1/bestsms/api/messaging/dtos/recipient_model.py +35 -0
  81. bestsms-0.0.0.1/bestsms/api/messaging/dtos/sms_api_request_dto.py +15 -0
  82. bestsms-0.0.0.1/bestsms/api/messaging/requests/__init__.py +16 -0
  83. bestsms-0.0.0.1/bestsms/api/messaging/requests/_common.py +174 -0
  84. bestsms-0.0.0.1/bestsms/api/messaging/requests/sms_api.py +290 -0
  85. bestsms-0.0.0.1/bestsms/api/messaging/responses/__init__.py +8 -0
  86. bestsms-0.0.0.1/bestsms/api/messaging/responses/message_api_result.py +69 -0
  87. bestsms-0.0.0.1/bestsms/api/reports/__init__.py +0 -0
  88. bestsms-0.0.0.1/bestsms/api/reports/dtos/__init__.py +0 -0
  89. bestsms-0.0.0.1/bestsms/api/reports/dtos/recipient_dto.py +33 -0
  90. bestsms-0.0.0.1/bestsms/api/reports/dtos/sms_message_in_dto.py +24 -0
  91. bestsms-0.0.0.1/bestsms/api/reports/dtos/sms_received_dto.py +17 -0
  92. bestsms-0.0.0.1/bestsms/api/reports/dtos/sms_reply_dto.py +38 -0
  93. bestsms-0.0.0.1/bestsms/api/reports/dtos/sms_reply_recipient_dto.py +15 -0
  94. bestsms-0.0.0.1/bestsms/api/reports/dtos/sms_reply_recipient_reply_dto.py +18 -0
  95. bestsms-0.0.0.1/bestsms/api/reports/dtos/status_dto.py +38 -0
  96. bestsms-0.0.0.1/bestsms/api/reports/requests/__init__.py +44 -0
  97. bestsms-0.0.0.1/bestsms/api/reports/requests/_common.py +63 -0
  98. bestsms-0.0.0.1/bestsms/api/reports/requests/sms_received.py +144 -0
  99. bestsms-0.0.0.1/bestsms/api/reports/requests/sms_reply.py +111 -0
  100. bestsms-0.0.0.1/bestsms/api/reports/requests/status.py +104 -0
  101. bestsms-0.0.0.1/bestsms/api/reports/responses/__init__.py +26 -0
  102. bestsms-0.0.0.1/bestsms/api/reports/responses/sms_received_result.py +74 -0
  103. bestsms-0.0.0.1/bestsms/api/reports/responses/sms_reply_result.py +97 -0
  104. bestsms-0.0.0.1/bestsms/api/reports/responses/status_request_result.py +75 -0
  105. bestsms-0.0.0.1/bestsms/core/__init__.py +0 -0
  106. bestsms-0.0.0.1/bestsms/core/dtos/__init__.py +0 -0
  107. bestsms-0.0.0.1/bestsms/core/dtos/error_dto.py +12 -0
  108. bestsms-0.0.0.1/bestsms/core/dtos/error_with_message_id_dto.py +12 -0
  109. bestsms-0.0.0.1/bestsms/core/dtos/list_request_dto.py +12 -0
  110. bestsms-0.0.0.1/bestsms/helpers/__init__.py +0 -0
  111. bestsms-0.0.0.1/bestsms/helpers/custom_json_encoder.py +5 -0
  112. bestsms-0.0.0.1/bestsms/helpers/functions.py +47 -0
  113. bestsms-0.0.0.1/bestsms.egg-info/PKG-INFO +537 -0
  114. bestsms-0.0.0.1/bestsms.egg-info/SOURCES.txt +119 -0
  115. bestsms-0.0.0.1/bestsms.egg-info/dependency_links.txt +1 -0
  116. bestsms-0.0.0.1/bestsms.egg-info/not-zip-safe +1 -0
  117. bestsms-0.0.0.1/bestsms.egg-info/requires.txt +1 -0
  118. bestsms-0.0.0.1/bestsms.egg-info/top_level.txt +1 -0
  119. bestsms-0.0.0.1/setup.cfg +7 -0
  120. bestsms-0.0.0.1/setup.py +39 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 BestSMS
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,537 @@
1
+ Metadata-Version: 2.1
2
+ Name: bestsms
3
+ Version: 0.0.0.1
4
+ Summary: BestSMS REST API Helper Library for Python
5
+ Home-page: https://bestsms.au
6
+ Author: BestSMS Australia
7
+ Author-email: info@bestsms.com.au
8
+ License: MIT
9
+ Keywords: bestsms,api,sms
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Classifier: Topic :: Communications :: Telephony
20
+ Classifier: Operating System :: OS Independent
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ Requires-Dist: requests
24
+
25
+ # bestsms
26
+
27
+ ## Documentation
28
+
29
+ The documentation for the BestSMS API can be found [here][apidocs].
30
+
31
+ ## Versions
32
+
33
+ `bestsms` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
34
+
35
+ ### Supported Python Versions
36
+
37
+ This library supports the following Python implementations:
38
+
39
+ * Python 3.9
40
+ * Python 3.10
41
+ * Python 3.11
42
+ * Python 3.12
43
+
44
+ ## Installation
45
+
46
+ Install from PyPi using [pip](http://www.pip-installer.org/en/latest/), a
47
+ package manager for Python.
48
+
49
+ pip install bestsms
50
+
51
+ Don't have pip installed? Try installing it, by running this from the command
52
+ line:
53
+
54
+ $ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
55
+
56
+ python setup.py install
57
+
58
+ You may need to run the above commands with `sudo`.
59
+
60
+ ## Getting Started
61
+
62
+ Getting started with the BestSMS API couldn't be easier. Create a
63
+ `Client` and you're ready to go.
64
+
65
+ ### API Credentials
66
+
67
+ The `BestSMS` needs your BestSMS API credentials (BestSMS Auth Tokens). You can either pass these
68
+ directly to the constructor (see the code below) or via environment variables.
69
+
70
+ ```python
71
+ from bestsms import BestSMS
72
+
73
+ client = BestSMS(
74
+ AuthToken = "[Your Auth Token]"
75
+ )
76
+ ```
77
+
78
+ ### Send Message
79
+
80
+ Send SMS/Email/Voice/Fax through `bestsms` library.
81
+
82
+ #### Send SMS
83
+
84
+ ```python
85
+ from bestsms import BestSMS
86
+
87
+ client = BestSMS(
88
+ AuthToken="[Your Auth Token]"
89
+ )
90
+
91
+ response = client.Messaging.SMS.SendMessage(
92
+ Reference="Test",
93
+ MessageText = "Test SMS Message click [[Reply]] to opt out",
94
+ Recipients = ["+64211231234"],
95
+ )
96
+
97
+ print(response)
98
+ ```
99
+
100
+ ### Reports
101
+
102
+ Retrieve your message status using `bestsms` library.
103
+
104
+ #### Reports - Get Message Status
105
+
106
+ ```python
107
+ from bestsms import BestSMS
108
+
109
+ client = BestSMS(
110
+ AuthToken="[Your Auth Token]"
111
+ )
112
+
113
+ response = client.Reports.Status.Poll(
114
+ MessageID="ID123456"
115
+ )
116
+
117
+ print(response)
118
+ ```
119
+
120
+ #### Reports - Get SMS Reply
121
+
122
+ ```python
123
+ from bestsms import BestSMS
124
+
125
+ client = BestSMS(
126
+ AuthToken="[Your Auth Token]"
127
+ )
128
+
129
+ request = client.Reports.SMSReply.Poll(
130
+ MessageID="ID123456"
131
+ )
132
+
133
+ print(response)
134
+ ```
135
+
136
+ #### Reports - Get SMS Received List
137
+
138
+ ```python
139
+ from bestsms import BestSMS
140
+
141
+ client = BestSMS(
142
+ AuthToken="[Your Auth Token]"
143
+ )
144
+
145
+ response = client.Reports.SMSReceived.Poll(
146
+ #TimePeriod = 1440
147
+ DateFrom="2023-07-01 00:00:00",
148
+ DateTo="2023-08-01 00:00:00"
149
+ )
150
+
151
+ print(response)
152
+ ```
153
+
154
+ ### Actions
155
+
156
+ Amend your message using `bestsms` library.
157
+
158
+ #### Actions - Abort Pending/Delayed Job
159
+
160
+ ```python
161
+ from bestsms import BestSMS
162
+
163
+ client = BestSMS(
164
+ AuthToken="[Your Auth Token]"
165
+ )
166
+
167
+ response = client.Actions.Abort.SendRequest(
168
+ MessageID="ID123456"
169
+ )
170
+
171
+ print(response)
172
+ ```
173
+
174
+ #### Actions - Resubmit Failed Job
175
+
176
+ ```python
177
+ from bestsms import BestSMS
178
+
179
+ client = BestSMS(
180
+ AuthToken="[Your Auth Token]"
181
+ )
182
+
183
+ response = client.Actions.Resubmit.SendRequest(
184
+ MessageID="ID123456",
185
+ SendTime="2023-07-10T09:00" #optional
186
+ )
187
+
188
+ print(response)
189
+ ```
190
+
191
+ #### Actions - Reschedule DELAYED Job
192
+
193
+ ```python
194
+ from bestsms import BestSMS
195
+
196
+ client = BestSMS(
197
+ AuthToken="[Your Auth Token]"
198
+ )
199
+
200
+ response = client.Actions.Reschedule.SendRequest(
201
+ MessageID="ID123456",
202
+ SendTime=datetime.now()
203
+ )
204
+
205
+ print(response)
206
+ ```
207
+
208
+ ### Addressbook - Contacts
209
+
210
+ Manage your contacts using `bestsms` library.
211
+
212
+ #### Contacts - List
213
+
214
+ ```python
215
+ from bestsms import BestSMS
216
+
217
+ client = BestSMS(
218
+ AuthToken="[Your Auth Token]"
219
+ )
220
+
221
+ response = client.Addressbook.Contact.List(
222
+ RecordsPerPage=10,
223
+ Page=1
224
+ )
225
+
226
+ print(response)
227
+ ```
228
+
229
+ #### Contacts - Detail
230
+
231
+ ```python
232
+ from bestsms import BestSMS
233
+
234
+ client = BestSMS(
235
+ AuthToken="[Your Auth Token]"
236
+ )
237
+
238
+ response = client.Addressbook.Contact.Detail(
239
+ ContactID="[Contact ID]"
240
+ )
241
+
242
+ print(response)
243
+ ```
244
+
245
+ #### Contacts - Create
246
+
247
+ ```python
248
+ from bestsms import BestSMS
249
+
250
+ client = BestSMS(
251
+ AuthToken="[Your Auth Token]"
252
+ )
253
+
254
+ response = client.Addressbook.Contact.Create(
255
+ Title="Mr",
256
+ Company="BestSMS",
257
+ FirstName="First",
258
+ LastName="Last",
259
+ MobilePhone="+61421222233",
260
+ ViewPublic="Account",
261
+ EditPublid="Account"
262
+ )
263
+
264
+ print(response)
265
+ ```
266
+
267
+ #### Contacts - Update
268
+
269
+ ```python
270
+ from bestsms import BestSMS
271
+
272
+ client = BestSMS(
273
+ AuthToken="[Your Auth Token]"
274
+ )
275
+
276
+ response = client.Addressbook.Contact.Update(
277
+ ContactID="[Contact ID]",
278
+ Attention="Test Attention"
279
+ )
280
+
281
+ print(response)
282
+ ```
283
+
284
+ #### Contacts - Delete
285
+
286
+ ```python
287
+ from bestsms import BestSMS
288
+
289
+ client = BestSMS(
290
+ AuthToken="[Your Auth Token]"
291
+ )
292
+
293
+ response = client.Addressbook.Contact.Delete(
294
+ ContactID="[Contact ID]"
295
+ )
296
+
297
+ print(response)
298
+ ```
299
+
300
+ ### Addressbook - Contact Group
301
+
302
+ Manage your contact group relationship using `bestsms` library.
303
+
304
+ #### Contact Group - List
305
+
306
+ ```python
307
+ from bestsms import BestSMS
308
+
309
+ client = BestSMS(
310
+ AuthToken="[Your Auth Token]"
311
+ )
312
+
313
+ response = client.Addressbook.ContactGroup.List(
314
+ RecordsPerPage=10,
315
+ Page=1,
316
+ ContactID="[Contact ID]"
317
+ )
318
+
319
+ print(response)
320
+ ```
321
+
322
+ #### Contact Group - Detail
323
+
324
+ ```python
325
+ from bestsms import BestSMS
326
+
327
+ client = BestSMS(
328
+ AuthToken="[Your Auth Token]"
329
+ )
330
+
331
+ response = client.Addressbook.ContactGroup.Detail(
332
+ ContactID="[Contact ID]",
333
+ GroupCode="[Group Code]"
334
+ )
335
+
336
+ print(response)
337
+ ```
338
+
339
+ #### Contact Group - Create
340
+
341
+ ```python
342
+ from bestsms import BestSMS
343
+
344
+ client = BestSMS(
345
+ AuthToken="[Your Auth Token]"
346
+ )
347
+
348
+ response = client.Addressbook.ContactGroup.Create(
349
+ ContactID="[Contact ID]",
350
+ GroupCode="[Group Code]"
351
+ )
352
+
353
+ print(response)
354
+ ```
355
+
356
+ #### Contact Group - Delete
357
+
358
+ ```python
359
+ from bestsms import BestSMS
360
+
361
+ client = BestSMS(
362
+ AuthToken="[Your Auth Token]"
363
+ )
364
+
365
+ response = client.Addressbook.ContactGroup.Delete(
366
+ ContactID="[Contact ID]",
367
+ GroupCode="[Group Code]"
368
+ )
369
+
370
+ print(response)
371
+ ```
372
+
373
+ ### Addressbook - Group
374
+
375
+ Manage your group using `bestsms` library.
376
+
377
+ #### Group - List
378
+
379
+ ```python
380
+ from bestsms import BestSMS
381
+
382
+ client = BestSMS(
383
+ AuthToken="[Your Auth Token]"
384
+ )
385
+
386
+ response = client.Addressbook.Group.List(
387
+ RecordsPerPage=10,
388
+ Page=1
389
+ )
390
+
391
+ print(response)
392
+ ```
393
+
394
+ #### Group - Detail
395
+
396
+ ```python
397
+ from bestsms import BestSMS
398
+
399
+ client = BestSMS(
400
+ AuthToken="[Your Auth Token]"
401
+ )
402
+
403
+ response = client.Addressbook.Group.Detail(
404
+ GroupCode="[Group Code]"
405
+ )
406
+
407
+ print(response)
408
+ ```
409
+
410
+ #### Group - Create
411
+
412
+ ```python
413
+ from bestsms import BestSMS
414
+
415
+ client = BestSMS(
416
+ AuthToken="[Your Auth Token]"
417
+ )
418
+
419
+ response = client.Addressbook.Group.Create(
420
+ GroupCode="[Group Code]",
421
+ GroupName="[Group Name]"
422
+ )
423
+
424
+ print(response)
425
+ ```
426
+
427
+ #### Group - Update
428
+
429
+ ```python
430
+ from bestsms import BestSMS
431
+
432
+ client = BestSMS(
433
+ AuthToken="[Your Auth Token]"
434
+ )
435
+
436
+ response = client.Addressbook.Group.Update(
437
+ GroupCode="[Group Code]",
438
+ GroupName="[Group Name]"
439
+ )
440
+
441
+ print(response)
442
+ ```
443
+
444
+ #### Group - Delete
445
+
446
+ ```python
447
+ from bestsms import BestSMS
448
+
449
+ client = BestSMS(
450
+ AuthToken="[Your Auth Token]"
451
+ )
452
+
453
+ response = client.Addressbook.Group.Delete(
454
+ GroupCode="[Group Code]"
455
+ )
456
+
457
+ print(response)
458
+ ```
459
+
460
+ ### Addressbook - Group Contact
461
+
462
+ Manage your group contact relationship using `bestsms` library.
463
+
464
+ #### Group Contact - List
465
+
466
+ ```python
467
+ from bestsms import BestSMS
468
+
469
+ client = BestSMS(
470
+ AuthToken="[Your Auth Token]"
471
+ )
472
+
473
+ response = client.Addressbook.GroupContact.List(
474
+ RecordsPerPage=10,
475
+ Page=1,
476
+ GroupCode="[Group Code]"
477
+ )
478
+
479
+ print(response)
480
+ ```
481
+
482
+ #### Group Contact - Detail
483
+
484
+ ```python
485
+ from bestsms import BestSMS
486
+
487
+ client = BestSMS(
488
+ AuthToken="[Your Auth Token]"
489
+ )
490
+
491
+ response = client.Addressbook.GroupContact.Detail(
492
+ GroupCode="[Group Code]",
493
+ ContactID="[Contact ID]"
494
+ )
495
+
496
+ print(response)
497
+ ```
498
+
499
+ #### Group Contact - Create
500
+
501
+ ```python
502
+ from bestsms import BestSMS
503
+
504
+ client = BestSMS(
505
+ AuthToken="[Your Auth Token]"
506
+ )
507
+
508
+ response = client.Addressbook.GroupContact.Create(
509
+ GroupCode="[Group Code]",
510
+ ContactID="[Contact ID]"
511
+ )
512
+
513
+ print(response)
514
+ ```
515
+
516
+ #### Group Contact - Delete
517
+
518
+ ```python
519
+ from bestsms import BestSMS
520
+
521
+ client = BestSMS(
522
+ AuthToken="[Your Auth Token]"
523
+ )
524
+
525
+ response = client.Addressbook.GroupContact.Delete(
526
+ GroupCode="[Group Code]",
527
+ ContactID="[Contact ID]"
528
+ )
529
+
530
+ print(response)
531
+ ```
532
+
533
+ ### Getting help
534
+
535
+ If you need help installing or using the library, please check the [BestSMS Contact](https://bestsms.au/contact) if you don't find an answer to your question.
536
+
537
+ [apidocs]: https://bestsms.au/Docs/PythonAPI/