This repository was archived by the owner on Jan 31, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathdevice_collection.py
More file actions
143 lines (112 loc) · 5.54 KB
/
Copy pathdevice_collection.py
File metadata and controls
143 lines (112 loc) · 5.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# -*- coding: utf-8 -*-
"""
# Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License in the project root for license information.
#
# This file was generated and any changes will be overwritten.
"""
from __future__ import unicode_literals
from ..collection_base import CollectionRequestBase, CollectionResponseBase, CollectionPageBase
from ..request_builder_base import RequestBuilderBase
from ..request import device_request_builder # import DeviceRequestBuilder
#from .device_request_builder import DeviceRequestBuilder
from ..model.device import Device
import json
class DeviceCollectionRequest(CollectionRequestBase):
def __init__(self, request_url, client, options):
"""Initialize the DeviceCollectionRequest
Args:
request_url (str): The url to perform the DeviceCollectionRequest
on
client (:class:`GraphClient<microsoft.msgraph.request.graph_client.GraphClient>`):
The client which will be used for the request
options (list of :class:`Option<microsoft.msgraph.options.Option>`):
A list of options to pass into the request
"""
super(DeviceCollectionRequest, self).__init__(request_url, client, options)
def get(self):
"""Gets the DeviceCollectionPage
Returns:
:class:`DeviceCollectionPage<microsoft.msgraph.request.device_collection.DeviceCollectionPage>`:
The DeviceCollectionPage
"""
self.method = "GET"
collection_response = DeviceCollectionResponse(json.loads(self.send().content))
return self._page_from_response(collection_response)
class DeviceCollectionRequestBuilder(RequestBuilderBase):
def __getitem__(self, key):
"""Get the DeviceRequestBuilder with the specified key
Args:
key (str): The key to get a DeviceRequestBuilder for
Returns:
:class:`DeviceRequestBuilder<microsoft.msgraph.request.device_request_builder.DeviceRequestBuilder>`:
A DeviceRequestBuilder for that key
"""
return device_request_builder.DeviceRequestBuilder(self.append_to_request_url(str(key)), self._client)
def request(self, expand=None, select=None, top=None, order_by=None, options=None):
"""Builds the DeviceCollectionRequest
Args:
expand (str): Default None, comma-separated list of relationships
to expand in the response.
select (str): Default None, comma-separated list of properties to
include in the response.
top (int): Default None, the number of items to return in a result.
order_by (str): Default None, comma-separated list of properties
that are used to sort the order of items in the response.
options (list of :class:`Option<microsoft.msgraph.options.Option>`):
A list of options to pass into the request. Defaults to None.
Returns:
:class:`DeviceCollectionRequest<microsoft.msgraph.request.device_collection.DeviceCollectionRequest>`:
The DeviceCollectionRequest
"""
req = DeviceCollectionRequest(self._request_url, self._client, options)
req._set_query_options(expand=expand, select=select, top=top, order_by=order_by)
return req
def get(self):
"""Gets the DeviceCollectionPage
Returns:
:class:`DeviceCollectionPage<microsoft.msgraph.request.device_collection.DeviceCollectionPage>`:
The DeviceCollectionPage
"""
return self.request().get()
class DeviceCollectionResponse(CollectionResponseBase):
@property
def collection_page(self):
"""The collection page stored in the response JSON
Returns:
:class:`DeviceCollectionPage<microsoft.msgraph.request.device_collection.DeviceCollectionPage>`:
The collection page
"""
if self._collection_page:
self._collection_page._prop_list = self._prop_dict["value"]
else:
self._collection_page = DeviceCollectionPage(self._prop_dict["value"])
return self._collection_page
class DeviceCollectionPage(CollectionPageBase):
def __getitem__(self, index):
"""Get the Device at the index specified
Args:
index (int): The index of the item to get from the DeviceCollectionPage
Returns:
:class:`Device<microsoft.msgraph.model.device.Device>`:
The Device at the index
"""
return Device(self._prop_list[index])
def device(self):
"""Get a generator of Device within the DeviceCollectionPage
Yields:
:class:`Device<microsoft.msgraph.model.device.Device>`:
The next Device in the collection
"""
for item in self._prop_list:
yield Device(item)
def _init_next_page_request(self, next_page_link, client, options):
"""Initialize the next page request for the DeviceCollectionPage
Args:
next_page_link (str): The URL for the next page request
to be sent to
client (:class:`GraphClient<microsoft.msgraph.model.graph_client.GraphClient>`:
The client to be used for the request
options (list of :class:`Option<microsoft.msgraph.options.Option>`:
A list of options
"""
self._next_page_request = DeviceCollectionRequest(next_page_link, client, options)