1
1
from __future__ import annotations
2
2
3
- from typing import TYPE_CHECKING , Callable , Iterator , List , Union
3
+ from typing import TYPE_CHECKING , Callable , Iterator , List , Literal , Optional , Union , overload
4
4
from uuid import UUID
5
5
6
- from ...models .pro .api_options import * # noqa: F403
6
+ from ...models .pro .api_options import (
7
+ get_computer_inventory_v1_allowed_filter_fields ,
8
+ get_computer_inventory_v1_allowed_sections ,
9
+ get_computer_inventory_v1_allowed_sort_fields ,
10
+ get_mdm_commands_v2_allowed_command_types ,
11
+ get_mdm_commands_v2_allowed_filter_fields ,
12
+ get_mdm_commands_v2_allowed_sort_fields ,
13
+ get_mobile_device_inventory_v2_allowed_filter_fields ,
14
+ get_mobile_device_inventory_v2_allowed_sections ,
15
+ get_mobile_device_inventory_v2_allowed_sort_fields ,
16
+ get_packages_v1_allowed_filter_fields ,
17
+ get_packages_v1_allowed_sort_fields ,
18
+ )
7
19
from ...models .pro .computers import Computer
8
20
from ...models .pro .jcds2 import DownloadUrl , File , NewFile
9
21
from ...models .pro .mdm import (
21
33
ShutDownDeviceCommand ,
22
34
)
23
35
from ...models .pro .mobile_devices import MobileDevice
36
+ from ...models .pro .packages import Package
24
37
from .pagination import Paginator
25
38
26
39
if TYPE_CHECKING :
@@ -42,14 +55,38 @@ def __init__(
42
55
43
56
# Computer Inventory APIs
44
57
58
+ @overload
59
+ def get_computer_inventory_v1 (
60
+ self ,
61
+ sections : Optional [List [str ]] = ...,
62
+ start_page : int = ...,
63
+ end_page : Optional [int ] = ...,
64
+ page_size : int = ...,
65
+ sort_expression : Optional [SortExpression ] = ...,
66
+ filter_expression : Optional [FilterExpression ] = ...,
67
+ return_generator : Literal [False ] = False ,
68
+ ) -> List [Computer ]: ...
69
+
70
+ @overload
71
+ def get_computer_inventory_v1 (
72
+ self ,
73
+ sections : Optional [List [str ]] = ...,
74
+ start_page : int = ...,
75
+ end_page : Optional [int ] = ...,
76
+ page_size : int = ...,
77
+ sort_expression : Optional [SortExpression ] = ...,
78
+ filter_expression : Optional [FilterExpression ] = ...,
79
+ return_generator : Literal [True ] = True ,
80
+ ) -> Iterator [Page ]: ...
81
+
45
82
def get_computer_inventory_v1 (
46
83
self ,
47
- sections : List [str ] = None ,
84
+ sections : Optional [ List [str ] ] = None ,
48
85
start_page : int = 0 ,
49
- end_page : int = None ,
86
+ end_page : Optional [ int ] = None ,
50
87
page_size : int = 100 ,
51
- sort_expression : SortExpression = None ,
52
- filter_expression : FilterExpression = None ,
88
+ sort_expression : Optional [ SortExpression ] = None ,
89
+ filter_expression : Optional [ FilterExpression ] = None ,
53
90
return_generator : bool = False ,
54
91
) -> Union [List [Computer ], Iterator [Page ]]:
55
92
"""Returns a list of computer inventory records.
@@ -132,6 +169,98 @@ def get_computer_inventory_v1(
132
169
133
170
return paginator (return_generator = return_generator )
134
171
172
+ # Package APIs
173
+
174
+ @overload
175
+ def get_packages_v1 (
176
+ self ,
177
+ start_page : int = ...,
178
+ end_page : Optional [int ] = ...,
179
+ page_size : int = ...,
180
+ sort_expression : Optional [SortExpression ] = ...,
181
+ filter_expression : Optional [FilterExpression ] = ...,
182
+ return_generator : Literal [False ] = False ,
183
+ ) -> List [Package ]: ...
184
+
185
+ @overload
186
+ def get_packages_v1 (
187
+ self ,
188
+ start_page : int = ...,
189
+ end_page : Optional [int ] = ...,
190
+ page_size : int = ...,
191
+ sort_expression : Optional [SortExpression ] = ...,
192
+ filter_expression : Optional [FilterExpression ] = ...,
193
+ return_generator : Literal [True ] = True ,
194
+ ) -> Iterator [Page ]: ...
195
+
196
+ def get_packages_v1 (
197
+ self ,
198
+ start_page : int = 0 ,
199
+ end_page : Optional [int ] = None ,
200
+ page_size : int = 100 ,
201
+ sort_expression : Optional [SortExpression ] = None ,
202
+ filter_expression : Optional [FilterExpression ] = None ,
203
+ return_generator : bool = False ,
204
+ ) -> Union [List [Package ], Iterator [Page ]]:
205
+ """Returns a list of package records.
206
+
207
+ :param start_page: (optional) The page to begin returning results from. See
208
+ :class:`Paginator` for more information.
209
+ :type start_page: int
210
+
211
+ :param end_page: (optional) The page to end returning results at. See :class:`Paginator` for
212
+ more information.
213
+ :type start_page: int
214
+
215
+ :param page_size: (optional) The number of results to include in each requested page. See
216
+ :class:`Paginator` for more information.
217
+ :type page_size: int
218
+
219
+ :param sort_expression: (optional) The sort fields to apply to the request. See the
220
+ documentation for :ref:`Pro API Sorting` for more information.
221
+
222
+ Allowed sort fields:
223
+
224
+ .. autoapioptions:: jamf_pro_sdk.models.pro.api_options.get_packages_v1_allowed_sort_fields
225
+
226
+ :type sort_expression: SortExpression
227
+
228
+ :param filter_expression: (optional) The filter expression to apply to the request. See the
229
+ documentation for :ref:`Pro API Filtering` for more information.
230
+
231
+ Allowed filter fields:
232
+
233
+ .. autoapioptions:: jamf_pro_sdk.models.pro.api_options.get_packages_v1_allowed_filter_fields
234
+
235
+ :type filter_expression: FilterExpression
236
+
237
+ :param return_generator: If ``True`` a generator is returned to iterate over pages. By
238
+ default, the results for all pages will be returned in a single response.
239
+ :type return_generator: bool
240
+
241
+ :return: List of packages OR a paginator generator.
242
+ :rtype: List[~jamf_pro_sdk.models.pro.packages.package] | Iterator[Page]
243
+
244
+ """
245
+ if sort_expression :
246
+ sort_expression .validate (get_packages_v1_allowed_sort_fields )
247
+
248
+ if filter_expression :
249
+ filter_expression .validate (get_packages_v1_allowed_filter_fields )
250
+
251
+ paginator = Paginator (
252
+ api_client = self ,
253
+ resource_path = "v1/packages" ,
254
+ return_model = Package ,
255
+ start_page = start_page ,
256
+ end_page = end_page ,
257
+ page_size = page_size ,
258
+ sort_expression = sort_expression ,
259
+ filter_expression = filter_expression ,
260
+ )
261
+
262
+ return paginator (return_generator = return_generator )
263
+
135
264
# JCDS APIs
136
265
137
266
def get_jcds_files_v1 (self ) -> List [File ]:
@@ -256,13 +385,35 @@ def send_mdm_command_preview(
256
385
resp = self .api_request (method = "post" , resource_path = "preview/mdm/commands" , data = data )
257
386
return [SendMdmCommandResponse (** i ) for i in resp .json ()]
258
387
388
+ @overload
389
+ def get_mdm_commands_v2 (
390
+ self ,
391
+ filter_expression : FilterExpression ,
392
+ start_page : int = ...,
393
+ end_page : Optional [int ] = ...,
394
+ page_size : int = ...,
395
+ sort_expression : Optional [SortExpression ] = ...,
396
+ return_generator : Literal [False ] = False ,
397
+ ) -> List [MdmCommandStatus ]: ...
398
+
399
+ @overload
400
+ def get_mdm_commands_v2 (
401
+ self ,
402
+ filter_expression : FilterExpression ,
403
+ start_page : int = ...,
404
+ end_page : Optional [int ] = ...,
405
+ page_size : int = ...,
406
+ sort_expression : Optional [SortExpression ] = ...,
407
+ return_generator : Literal [True ] = True ,
408
+ ) -> Iterator [Page ]: ...
409
+
259
410
def get_mdm_commands_v2 (
260
411
self ,
261
412
filter_expression : FilterExpression ,
262
413
start_page : int = 0 ,
263
- end_page : int = None ,
414
+ end_page : Optional [ int ] = None ,
264
415
page_size : int = 100 ,
265
- sort_expression : SortExpression = None ,
416
+ sort_expression : Optional [ SortExpression ] = None ,
266
417
return_generator : bool = False ,
267
418
) -> Union [List [MdmCommandStatus ], Iterator [Page ]]:
268
419
"""Returns a list of MDM commands.
@@ -302,7 +453,7 @@ def get_mdm_commands_v2(
302
453
the results for all pages will be returned in a single response.
303
454
:type return_generator: bool
304
455
305
- :return: List of computers OR a paginator generator.
456
+ :return: List of MDM commands OR a paginator generator.
306
457
:rtype: List[~jamf_pro_sdk.models.pro.mdm.MdmCommand] | Iterator[Page]
307
458
"""
308
459
@@ -333,14 +484,40 @@ def get_mdm_commands_v2(
333
484
334
485
return paginator (return_generator = return_generator )
335
486
487
+ # Mobile Device Inventory APIs
488
+
489
+ @overload
490
+ def get_mobile_device_inventory_v2 (
491
+ self ,
492
+ sections : Optional [List [str ]] = ...,
493
+ start_page : int = ...,
494
+ end_page : Optional [int ] = ...,
495
+ page_size : int = ...,
496
+ sort_expression : Optional [SortExpression ] = ...,
497
+ filter_expression : Optional [FilterExpression ] = ...,
498
+ return_generator : Literal [False ] = False ,
499
+ ) -> List [MobileDevice ]: ...
500
+
501
+ @overload
502
+ def get_mobile_device_inventory_v2 (
503
+ self ,
504
+ sections : Optional [List [str ]] = ...,
505
+ start_page : int = ...,
506
+ end_page : Optional [int ] = ...,
507
+ page_size : int = ...,
508
+ sort_expression : Optional [SortExpression ] = ...,
509
+ filter_expression : Optional [FilterExpression ] = ...,
510
+ return_generator : Literal [True ] = True ,
511
+ ) -> Iterator [Page ]: ...
512
+
336
513
def get_mobile_device_inventory_v2 (
337
514
self ,
338
- sections : List [str ] = None ,
515
+ sections : Optional [ List [str ] ] = None ,
339
516
start_page : int = 0 ,
340
- end_page : int = None ,
517
+ end_page : Optional [ int ] = None ,
341
518
page_size : int = 100 ,
342
- sort_expression : SortExpression = None ,
343
- filter_expression : FilterExpression = None ,
519
+ sort_expression : Optional [ SortExpression ] = None ,
520
+ filter_expression : Optional [ FilterExpression ] = None ,
344
521
return_generator : bool = False ,
345
522
) -> Union [List [MobileDevice ], Iterator [Page ]]:
346
523
"""Returns a list of mobile device (iOS and tvOS) inventory records.
0 commit comments