xautomata-hive 3.16.6__tar.gz → 3.18.0__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 (75) hide show
  1. {xautomata_hive-3.16.6/xautomata_hive.egg-info → xautomata_hive-3.18.0}/PKG-INFO +1 -1
  2. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/api.py +16 -9
  3. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/cost_tags.py +41 -0
  4. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/cost_tree_nodes.py +42 -5
  5. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/cost_tree_resources.py +35 -0
  6. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/customers.py +11 -6
  7. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/downtimes.py +71 -0
  8. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/groups.py +39 -0
  9. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/messages.py +26 -4
  10. xautomata_hive-3.18.0/hive/version.py +1 -0
  11. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0/xautomata_hive.egg-info}/PKG-INFO +1 -1
  12. xautomata_hive-3.16.6/hive/version.py +0 -1
  13. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/LICENSE +0 -0
  14. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/README.md +0 -0
  15. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/__init__.py +0 -0
  16. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/__init__.py +0 -0
  17. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/acl_docs.py +0 -0
  18. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/acl_overrides.py +0 -0
  19. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/analytics.py +0 -0
  20. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/anomalies.py +0 -0
  21. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/calendars.py +0 -0
  22. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/contacts.py +0 -0
  23. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/cost_tagging.py +0 -0
  24. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/cost_views.py +0 -0
  25. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/dashboards.py +0 -0
  26. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/dispatchers.py +0 -0
  27. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/external_tickets.py +0 -0
  28. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/features.py +0 -0
  29. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/firmware_updates.py +0 -0
  30. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/google.py +0 -0
  31. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/jobs.py +0 -0
  32. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/last_status.py +0 -0
  33. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/login.py +0 -0
  34. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/metric_ingest.py +0 -0
  35. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/metric_types.py +0 -0
  36. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/metrics.py +0 -0
  37. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/microsoft.py +0 -0
  38. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/notification_provider_types.py +0 -0
  39. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/notification_providers.py +0 -0
  40. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/objects.py +48 -48
  41. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/opening_reasons.py +0 -0
  42. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/probe_types.py +0 -0
  43. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/probes.py +0 -0
  44. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/probes_log_ingest.py +0 -0
  45. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/profile_topics.py +0 -0
  46. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/reason_for_closure.py +0 -0
  47. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/retention_rules.py +0 -0
  48. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/schedules.py +0 -0
  49. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/services.py +0 -0
  50. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/sites.py +0 -0
  51. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/terms_and_conditions.py +0 -0
  52. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/tree_hierarchy.py +0 -0
  53. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_cost_azure_raw.py +0 -0
  54. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_cost_management.py +0 -0
  55. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_metric_status.py +0 -0
  56. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_metric_value.py +0 -0
  57. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_ntop_flows.py +0 -0
  58. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_service_status.py +0 -0
  59. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/ts_service_value.py +0 -0
  60. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/users.py +0 -0
  61. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/users_notifications.py +0 -0
  62. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/virtual_domains.py +0 -0
  63. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/webhooks.py +0 -0
  64. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/widget_groups.py +0 -0
  65. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/cookbook/widgets.py +0 -0
  66. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/decorators.py +0 -0
  67. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/exceptions.py +0 -0
  68. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/infrastrucure_keys.py +0 -0
  69. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/hive/tools.py +0 -0
  70. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/setup.cfg +0 -0
  71. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/setup.py +0 -0
  72. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/xautomata_hive.egg-info/SOURCES.txt +0 -0
  73. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/xautomata_hive.egg-info/dependency_links.txt +0 -0
  74. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/xautomata_hive.egg-info/requires.txt +0 -0
  75. {xautomata_hive-3.16.6 → xautomata_hive-3.18.0}/xautomata_hive.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xautomata-hive
3
- Version: 3.16.6
3
+ Version: 3.18.0
4
4
  Home-page: https://github.com/sherlogic/xautomata-hive.git
5
5
  Author: Enrico Ferro - Andrea Jacassi
6
6
  Author-email:
@@ -12,11 +12,13 @@ from hive.infrastrucure_keys import Keys
12
12
  import warnings
13
13
  import gc
14
14
  import functools
15
-
15
+ import logging
16
16
 
17
17
  FORCE_STATUS = [429, 500, 502, 503, 504]
18
18
  # METHODS = ["HEAD", "GET", "OPTIONS", "POST"]
19
19
 
20
+ logger = logging.getLogger('hive')
21
+
20
22
 
21
23
  def get_session(timeout=150, total=5, backoff_factor=5):
22
24
  """
@@ -50,6 +52,7 @@ class ApiManager:
50
52
  _timeout_retry = 1 # di default non si fanno retry sui timeout
51
53
  _timeout_sleep_time = 120 # tempo di attesa tra un retry e quello successivo in caso di timeout
52
54
  _silence_warning = False # da implementare
55
+ num_items = None # serve per quando si mette la count a True, di default vale 0
53
56
 
54
57
  def __init__(self, root, user, password, ssl_verify: bool = True):
55
58
 
@@ -73,6 +76,7 @@ class ApiManager:
73
76
  response = get_session(self._timeout, self._timeout_get_session_retry, self._timeout_get_session_backoff_factor).post(f'{self.root}/login/access-token', auth_date, verify=self._SSL_verify)
74
77
  response.raise_for_status()
75
78
  self.token = json.loads(response.content.decode('utf-8'))['access_token']
79
+ logger.debug('authenticated')
76
80
 
77
81
  def openapi(self):
78
82
  """metodo che restituisce gli schema degli end point"""
@@ -157,20 +161,23 @@ class ApiManager:
157
161
  @timeout_retry(max_tries=self._timeout_retry, sleep_time=self._timeout_sleep_time)
158
162
  @ratelimiter
159
163
  def run_request(_mode, _url, _headers, _payload, _params, **_kwargs):
164
+ self.num_items = None # inizializzo a 0 il valore della count, cosi che non possa leggere il numero sbagliato dopo una richiesta non corretta
165
+
166
+ logger.debug(f'request url: {_url}')
167
+ logger.debug(f'request params (skip and limit may differ from your setting due pagination): {_params}')
168
+ logger.debug(f'request payload: {_payload}')
169
+
160
170
  response = get_session(self._timeout, self._timeout_get_session_retry, self._timeout_get_session_backoff_factor).request(_mode, url=_url, json=_payload, params=_params, headers=_headers, verify=self._SSL_verify, **_kwargs)
161
171
  if response.status_code == 401: raise UnauthorizedException
162
172
  if response.status_code != 200 and response.status_code != 504: # 504 non e' gestito dalle API per cui la responce non sarebbe json serializable
163
- print()
164
- print('-' * 50)
165
- print('error message:')
166
- print(response.json())
167
- print('-' * 50)
168
- print()
173
+ logger.error(response.json())
169
174
  response.raise_for_status()
170
175
 
171
176
  if response.status_code == 200 and _params.get('count', False):
172
- num_items = response.headers.get('x-num-items', 'count not found')
173
- return response.json(), num_items
177
+ self.num_items = response.headers.get('x-num-items', None)
178
+
179
+ logger.debug(f'responce: {response.json()}')
180
+ logger.debug(f'header: {response.headers}')
174
181
 
175
182
  return response.json()
176
183
 
@@ -74,6 +74,47 @@ class CostTags(ApiManager):
74
74
  payload, **kwargs)
75
75
  return response
76
76
 
77
+ def cost_tags_query(self, warm_start: bool = False,
78
+ single_page: bool = False, page_size: int = 5000,
79
+ kwargs: dict = None, **params) -> list:
80
+ """Get Ts Costs Rows
81
+
82
+ Args:
83
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
84
+ single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
85
+ page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 5000.
86
+ kwargs (dict, optional): additional parameters for execute. Default to None.
87
+ **params: additional parameters for the API.
88
+
89
+ Keyword Args:
90
+ date_start (string required): additional filter - parameter
91
+ date_end (string required): additional filter - parameter
92
+ uuid_view (string required): additional filter - parameter
93
+ select_operation (None optional): additional filter - parameter
94
+ selected_tags (string optional): additional filter - parameter
95
+ unselect_operation (None optional): additional filter - parameter
96
+ unselected_tags (string optional): additional filter - parameter
97
+ skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
98
+ limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
99
+
100
+ Returns: list"""
101
+ if kwargs is None:
102
+ kwargs = dict()
103
+ official_params_list = ['date_start', 'date_end', 'uuid_view',
104
+ 'select_operation', 'selected_tags', 'unselect_operation',
105
+ 'unselected_tags', 'skip', 'limit']
106
+ params.get('date_start'), params.get('date_end'), params.get(
107
+ 'uuid_view'), params.get('select_operation'), params.get(
108
+ 'selected_tags'), params.get('unselect_operation'), params.get(
109
+ 'unselected_tags'), params.get('skip'), params.get('limit')
110
+ if not self._silence_warning:
111
+ warning_wrong_parameters(self.cost_tags_query.__name__, params,
112
+ official_params_list)
113
+ response = self.execute('GET', path=f'/cost_tags/query/',
114
+ single_page=single_page, page_size=page_size, warm_start=
115
+ warm_start, params=params, **kwargs)
116
+ return response
117
+
77
118
  def cost_tag(self, uuid: str, warm_start: bool = False,
78
119
  kwargs: dict = None, **params) -> list:
79
120
  """Read Cost Tag
@@ -161,14 +161,16 @@ class CostTreeNodes(ApiManager):
161
161
  Keyword Args:
162
162
  date_start (string required): additional filter - parameter
163
163
  date_end (string required): additional filter - parameter
164
+ resource_id (string optional): additional filter - parameter
164
165
 
165
166
  Returns: list"""
166
167
  if kwargs is None:
167
168
  kwargs = dict()
168
169
  kwargs, params = handling_single_page_methods(kwargs=kwargs, params
169
170
  =params)
170
- official_params_list = ['date_start', 'date_end']
171
- params.get('date_start'), params.get('date_end')
171
+ official_params_list = ['date_start', 'date_end', 'resource_id']
172
+ params.get('date_start'), params.get('date_end'), params.get(
173
+ 'resource_id')
172
174
  if not self._silence_warning:
173
175
  warning_wrong_parameters(self.cost_tree_nodes_navigate_tree.
174
176
  __name__, params, official_params_list)
@@ -193,15 +195,19 @@ class CostTreeNodes(ApiManager):
193
195
  Keyword Args:
194
196
  date_start (string required): additional filter - parameter
195
197
  date_end (string required): additional filter - parameter
198
+ resource_id (string optional): additional filter - parameter
196
199
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
197
200
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
201
+ sort_by (string optional): Stringa separata da virgole di campi su cui ordinare. Si indica uno o piu campi della risposta e si puo chiedere di ottenere i valori di quei campi in ordine ascendente o discendente. Esempio "Customer:Desc". Default to "". - parameter
198
202
 
199
203
  Returns: list"""
200
204
  if kwargs is None:
201
205
  kwargs = dict()
202
- official_params_list = ['date_start', 'date_end', 'skip', 'limit']
203
- params.get('date_start'), params.get('date_end'), params.get('skip'
204
- ), params.get('limit')
206
+ official_params_list = ['date_start', 'date_end', 'resource_id',
207
+ 'skip', 'limit', 'sort_by']
208
+ params.get('date_start'), params.get('date_end'), params.get(
209
+ 'resource_id'), params.get('skip'), params.get('limit'
210
+ ), params.get('sort_by')
205
211
  if not self._silence_warning:
206
212
  warning_wrong_parameters(self.
207
213
  cost_tree_nodes_get_node_resources.__name__, params,
@@ -211,3 +217,34 @@ class CostTreeNodes(ApiManager):
211
217
  single_page, page_size=page_size, warm_start=warm_start, params
212
218
  =params, **kwargs)
213
219
  return response
220
+
221
+ def cost_tree_nodes_previous_period(self, uuid: str,
222
+ warm_start: bool = False, kwargs: dict = None, **params) -> list:
223
+ """Get Previous Period
224
+
225
+ Args:
226
+ uuid (str, required): uuid
227
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
228
+ kwargs (dict, optional): additional parameters for execute. Default to None.
229
+ **params: additional parameters for the API.
230
+
231
+ Keyword Args:
232
+ date_start (string required): additional filter - parameter
233
+ date_end (string required): additional filter - parameter
234
+ resource_id (string optional): additional filter - parameter
235
+
236
+ Returns: list"""
237
+ if kwargs is None:
238
+ kwargs = dict()
239
+ kwargs, params = handling_single_page_methods(kwargs=kwargs, params
240
+ =params)
241
+ official_params_list = ['date_start', 'date_end', 'resource_id']
242
+ params.get('date_start'), params.get('date_end'), params.get(
243
+ 'resource_id')
244
+ if not self._silence_warning:
245
+ warning_wrong_parameters(self.cost_tree_nodes_previous_period.
246
+ __name__, params, official_params_list)
247
+ response = self.execute('GET', path=
248
+ f'/cost_tree_nodes/previous_period/{uuid}', warm_start=
249
+ warm_start, params=params, **kwargs)
250
+ return response
@@ -154,3 +154,38 @@ class CostTreeResources(ApiManager):
154
154
  single_page=single_page, page_size=page_size, warm_start=
155
155
  warm_start, params=params, **kwargs)
156
156
  return response
157
+
158
+ def cost_tree_resources_unfully_assigned_resources(self, uuid_view: str,
159
+ warm_start: bool = False, kwargs: dict = None, **params) -> list:
160
+ """Get Unfully Assigned Resources
161
+
162
+ Args:
163
+ uuid_view (str, required): uuid_view
164
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
165
+ kwargs (dict, optional): additional parameters for execute. Default to None.
166
+ **params: additional parameters for the API.
167
+
168
+ Keyword Args:
169
+ date_start (string required): additional filter - parameter
170
+ date_end (string required): additional filter - parameter
171
+ resource_id (string optional): additional filter - parameter
172
+ limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
173
+ sort_by (string optional): Stringa separata da virgole di campi su cui ordinare. Si indica uno o piu campi della risposta e si puo chiedere di ottenere i valori di quei campi in ordine ascendente o discendente. Esempio "Customer:Desc". Default to "". - parameter
174
+
175
+ Returns: list"""
176
+ if kwargs is None:
177
+ kwargs = dict()
178
+ kwargs, params = handling_single_page_methods(kwargs=kwargs, params
179
+ =params)
180
+ official_params_list = ['date_start', 'date_end', 'resource_id',
181
+ 'limit', 'sort_by']
182
+ params.get('date_start'), params.get('date_end'), params.get(
183
+ 'resource_id'), params.get('limit'), params.get('sort_by')
184
+ if not self._silence_warning:
185
+ warning_wrong_parameters(self.
186
+ cost_tree_resources_unfully_assigned_resources.__name__,
187
+ params, official_params_list)
188
+ response = self.execute('GET', path=
189
+ f'/cost_tree_resources/{uuid_view}/unfully_assigned_resources/',
190
+ warm_start=warm_start, params=params, **kwargs)
191
+ return response
@@ -1204,15 +1204,17 @@ class Customers(ApiManager):
1204
1204
  kwargs)
1205
1205
  return response
1206
1206
 
1207
- def customers_aws_v2_subscription_create(self, kwargs: dict = None, **
1208
- payload) -> list:
1207
+ def customers_aws_v2_subscription_create(self, params: dict = False,
1208
+ kwargs: dict = None, **payload) -> list:
1209
1209
  """Create Aws Customer Sub
1210
1210
 
1211
1211
  Args:
1212
+ params (dict, optional): additional parameters for the API.
1212
1213
  kwargs (dict, optional): additional parameters for execute. Default to None.
1213
1214
  **payload: additional parameters for the API.
1214
1215
 
1215
1216
  Keyword Args:
1217
+ extract_resource_id (boolean optional): additional filter - parameter
1216
1218
  customer (None required): additional filter - payload
1217
1219
  aws_customer (None required): additional filter - payload
1218
1220
 
@@ -1226,19 +1228,22 @@ class Customers(ApiManager):
1226
1228
  customers_aws_v2_subscription_create.__name__, payload,
1227
1229
  official_payload_list)
1228
1230
  response = self.execute('POST', path=
1229
- f'/customers/aws/v2/subscription/', payload=payload, **kwargs)
1231
+ f'/customers/aws/v2/subscription/', params=params, payload=
1232
+ payload, **kwargs)
1230
1233
  return response
1231
1234
 
1232
1235
  def customers_aws_v2_subscription_create_uuid(self, uuid: str,
1233
- kwargs: dict = None, **payload) -> list:
1236
+ params: dict = False, kwargs: dict = None, **payload) -> list:
1234
1237
  """Create Aws Customer From V2 Sub
1235
1238
 
1236
1239
  Args:
1240
+ params (dict, optional): additional parameters for the API.
1237
1241
  uuid (str, required): uuid
1238
1242
  kwargs (dict, optional): additional parameters for execute. Default to None.
1239
1243
  **payload: additional parameters for the API.
1240
1244
 
1241
1245
  Keyword Args:
1246
+ extract_resource_id (boolean optional): additional filter - parameter
1242
1247
  target_company (string required): additional filter - payload
1243
1248
  target_code (string required): additional filter - payload
1244
1249
  address (string optional): additional filter - payload
@@ -1270,8 +1275,8 @@ class Customers(ApiManager):
1270
1275
  customers_aws_v2_subscription_create.__name__, payload,
1271
1276
  official_payload_list)
1272
1277
  response = self.execute('POST', path=
1273
- f'/customers/aws/v2/subscription/{uuid}', payload=payload, **kwargs
1274
- )
1278
+ f'/customers/aws/v2/subscription/{uuid}', params=params,
1279
+ payload=payload, **kwargs)
1275
1280
  return response
1276
1281
 
1277
1282
  def customers_networks(self, uuid_customer: str,
@@ -618,6 +618,41 @@ class Downtimes(ApiManager):
618
618
  **kwargs)
619
619
  return response
620
620
 
621
+ def downtimes_groups_bulk(self, payload: list, warm_start: bool = False,
622
+ single_page: bool = False, page_size: int = 50, kwargs: dict = None,
623
+ **params) -> list:
624
+ """Bulk Read Groups Downtimes
625
+
626
+ Args:
627
+ payload (list[dict], optional): List dict to create.
628
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
629
+ single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
630
+ page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 50.
631
+ kwargs (dict, optional): additional parameters for execute. Default to None.
632
+ **params: additional parameters for the API.
633
+
634
+ Keyword Args:
635
+ join (boolean optional): Se join = true, ogni riga restituita conterra' chiavi aggiuntive che fanno riferimento ad altre entita', con cui la riga ha relazioni 1:1. Default to False - parameter
636
+
637
+ Examples:
638
+ payload =
639
+ [
640
+ "uuid": "str", required
641
+ ]
642
+
643
+ Returns: list"""
644
+ if kwargs is None:
645
+ kwargs = dict()
646
+ official_params_list = ['join']
647
+ params.get('join')
648
+ if not self._silence_warning:
649
+ warning_wrong_parameters(self.downtimes_groups_bulk.__name__,
650
+ params, official_params_list)
651
+ response = self.execute('POST', path=f'/downtimes/bulk/read/groups',
652
+ single_page=single_page, page_size=page_size, warm_start=
653
+ warm_start, params=params, payload=payload, **kwargs)
654
+ return response
655
+
621
656
  def downtimes_groups_create_bulk(self, payload: list,
622
657
  single_page: bool = False, page_size: int = 50, kwargs: dict = None,
623
658
  **params) -> list:
@@ -683,6 +718,42 @@ class Downtimes(ApiManager):
683
718
  page_size=page_size, payload=payload, **kwargs)
684
719
  return response
685
720
 
721
+ def downtimes_objects_bulk(self, payload: list,
722
+ warm_start: bool = False, single_page: bool = False,
723
+ page_size: int = 50, kwargs: dict = None, **params) -> list:
724
+ """Bulk Read Objects Downtimes
725
+
726
+ Args:
727
+ payload (list[dict], optional): List dict to create.
728
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
729
+ single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
730
+ page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 50.
731
+ kwargs (dict, optional): additional parameters for execute. Default to None.
732
+ **params: additional parameters for the API.
733
+
734
+ Keyword Args:
735
+ join (boolean optional): Se join = true, ogni riga restituita conterra' chiavi aggiuntive che fanno riferimento ad altre entita', con cui la riga ha relazioni 1:1. Default to False - parameter
736
+
737
+ Examples:
738
+ payload =
739
+ [
740
+ "uuid": "str", required
741
+ ]
742
+
743
+ Returns: list"""
744
+ if kwargs is None:
745
+ kwargs = dict()
746
+ official_params_list = ['join']
747
+ params.get('join')
748
+ if not self._silence_warning:
749
+ warning_wrong_parameters(self.downtimes_objects_bulk.__name__,
750
+ params, official_params_list)
751
+ response = self.execute('POST', path=
752
+ f'/downtimes/bulk/read/objects', single_page=single_page,
753
+ page_size=page_size, warm_start=warm_start, params=params,
754
+ payload=payload, **kwargs)
755
+ return response
756
+
686
757
  def downtimes_objects_create_bulk(self, payload: list,
687
758
  single_page: bool = False, page_size: int = 50, kwargs: dict = None,
688
759
  **params) -> list:
@@ -653,6 +653,45 @@ class Groups(ApiManager):
653
653
  **kwargs)
654
654
  return response
655
655
 
656
+ def groups_downtimes_bulk(self, payload: list, warm_start: bool = False,
657
+ single_page: bool = False, page_size: int = 50, kwargs: dict = None,
658
+ **params) -> list:
659
+ """Bulk Read Groups Downtimes
660
+
661
+ Args:
662
+ payload (list[dict], optional): List dict to create.
663
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
664
+ single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
665
+ page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 50.
666
+ kwargs (dict, optional): additional parameters for execute. Default to None.
667
+ **params: additional parameters for the API.
668
+
669
+ Keyword Args:
670
+ active_at_timestamp (string optional): additional filter - parameter
671
+ active_after_timestamp (string optional): additional filter - parameter
672
+ join (boolean optional): Se join = true, ogni riga restituita conterra' chiavi aggiuntive che fanno riferimento ad altre entita', con cui la riga ha relazioni 1:1. Default to False - parameter
673
+
674
+ Examples:
675
+ payload =
676
+ [
677
+ "uuid": "str", required
678
+ ]
679
+
680
+ Returns: list"""
681
+ if kwargs is None:
682
+ kwargs = dict()
683
+ official_params_list = ['active_at_timestamp',
684
+ 'active_after_timestamp', 'join']
685
+ params.get('active_at_timestamp'), params.get('active_after_timestamp'
686
+ ), params.get('join')
687
+ if not self._silence_warning:
688
+ warning_wrong_parameters(self.groups_downtimes_bulk.__name__,
689
+ params, official_params_list)
690
+ response = self.execute('POST', path=f'/groups/bulk/read/downtimes',
691
+ single_page=single_page, page_size=page_size, warm_start=
692
+ warm_start, params=params, payload=payload, **kwargs)
693
+ return response
694
+
656
695
  def groups_downtimes_create_bulk(self, payload: list,
657
696
  single_page: bool = False, page_size: int = 50, kwargs: dict = None,
658
697
  **params) -> list:
@@ -256,7 +256,7 @@ class Messages(ApiManager):
256
256
  return response
257
257
 
258
258
  def messages_compile(self, uuid_metric: str, uuid: str,
259
- warm_start: bool = False, kwargs: dict = None) -> list:
259
+ warm_start: bool = False, kwargs: dict = None, **params) -> list:
260
260
  """Compile Mask
261
261
 
262
262
  Args:
@@ -264,17 +264,28 @@ class Messages(ApiManager):
264
264
  uuid (str, required): uuid
265
265
  warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
266
266
  kwargs (dict, optional): additional parameters for execute. Default to None.
267
+ **params: additional parameters for the API.
268
+
269
+ Keyword Args:
270
+ service_profile (string optional): additional filter - parameter
267
271
 
268
272
  Returns: list"""
269
273
  if kwargs is None:
270
274
  kwargs = dict()
275
+ kwargs, params = handling_single_page_methods(kwargs=kwargs, params
276
+ =params)
277
+ official_params_list = ['service_profile']
278
+ params.get('service_profile')
279
+ if not self._silence_warning:
280
+ warning_wrong_parameters(self.messages_compile.__name__, params,
281
+ official_params_list)
271
282
  response = self.execute('GET', path=
272
283
  f'/messages/{uuid_metric}/compile/{uuid}', warm_start=
273
- warm_start, **kwargs)
284
+ warm_start, params=params, **kwargs)
274
285
  return response
275
286
 
276
287
  def messages_compile_additional(self, uuid_metric: str, uuid: str,
277
- warm_start: bool = False, kwargs: dict = None) -> list:
288
+ warm_start: bool = False, kwargs: dict = None, **params) -> list:
278
289
  """Compile Additional Mask
279
290
 
280
291
  Args:
@@ -282,11 +293,22 @@ class Messages(ApiManager):
282
293
  uuid (str, required): uuid
283
294
  warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
284
295
  kwargs (dict, optional): additional parameters for execute. Default to None.
296
+ **params: additional parameters for the API.
297
+
298
+ Keyword Args:
299
+ service_profile (string optional): additional filter - parameter
285
300
 
286
301
  Returns: list"""
287
302
  if kwargs is None:
288
303
  kwargs = dict()
304
+ kwargs, params = handling_single_page_methods(kwargs=kwargs, params
305
+ =params)
306
+ official_params_list = ['service_profile']
307
+ params.get('service_profile')
308
+ if not self._silence_warning:
309
+ warning_wrong_parameters(self.messages_compile_additional.
310
+ __name__, params, official_params_list)
289
311
  response = self.execute('GET', path=
290
312
  f'/messages/{uuid_metric}/compile_additional/{uuid}',
291
- warm_start=warm_start, **kwargs)
313
+ warm_start=warm_start, params=params, **kwargs)
292
314
  return response
@@ -0,0 +1 @@
1
+ version = '3.18.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xautomata-hive
3
- Version: 3.16.6
3
+ Version: 3.18.0
4
4
  Home-page: https://github.com/sherlogic/xautomata-hive.git
5
5
  Author: Enrico Ferro - Andrea Jacassi
6
6
  Author-email:
@@ -1 +0,0 @@
1
- version = '3.16.6'
File without changes
@@ -704,6 +704,54 @@ class Objects(ApiManager):
704
704
  **kwargs)
705
705
  return response
706
706
 
707
+ def objects_downtimes_bulk(self, payload: list,
708
+ warm_start: bool = False, single_page: bool = False,
709
+ page_size: int = 50, kwargs: dict = None, **params) -> list:
710
+ """Bulk Read Downtimes
711
+
712
+ Args:
713
+ payload (list[dict], optional): List dict to create.
714
+ warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
715
+ single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
716
+ page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 50.
717
+ kwargs (dict, optional): additional parameters for execute. Default to None.
718
+ **params: additional parameters for the API.
719
+
720
+ Keyword Args:
721
+ code (string optional): additional filter - parameter
722
+ status (string optional): additional filter - parameter
723
+ active_at_timestamp (string optional): additional filter - parameter
724
+ active_after_timestamp (string optional): additional filter - parameter
725
+ skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
726
+ limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
727
+ like (boolean optional): Se True, eventuali filtri richiesti dalla API vengono presi come porzioni di testo, se False il matching sul campo dei filtri deve essere esatto. Default to True. - parameter
728
+ join (boolean optional): Se join = true, ogni riga restituita conterra' chiavi aggiuntive che fanno riferimento ad altre entita', con cui la riga ha relazioni 1:1. Default to False - parameter
729
+ count (boolean optional): Se True nel header della risposta e' presente la dimensione massima a db della chiamata fatta, sconsigliabile perche raddoppia il tempo per chiamata. Default to False. - parameter
730
+
731
+ Examples:
732
+ payload =
733
+ [
734
+ "uuid": "str", required
735
+ ]
736
+
737
+ Returns: list"""
738
+ if kwargs is None:
739
+ kwargs = dict()
740
+ official_params_list = ['code', 'status', 'active_at_timestamp',
741
+ 'active_after_timestamp', 'skip', 'limit', 'like', 'join', 'count']
742
+ params.get('code'), params.get('status'), params.get(
743
+ 'active_at_timestamp'), params.get('active_after_timestamp'
744
+ ), params.get('skip'), params.get('limit'), params.get('like'
745
+ ), params.get('join'), params.get('count')
746
+ if not self._silence_warning:
747
+ warning_wrong_parameters(self.objects_downtimes_bulk.__name__,
748
+ params, official_params_list)
749
+ response = self.execute('POST', path=
750
+ f'/objects/bulk/read/downtimes/', single_page=single_page,
751
+ page_size=page_size, warm_start=warm_start, params=params,
752
+ payload=payload, **kwargs)
753
+ return response
754
+
707
755
  def objects_downtimes_create_bulk(self, payload: list,
708
756
  single_page: bool = False, page_size: int = 50, kwargs: dict = None,
709
757
  **params) -> list:
@@ -769,54 +817,6 @@ class Objects(ApiManager):
769
817
  page_size=page_size, payload=payload, **kwargs)
770
818
  return response
771
819
 
772
- def objects_downtimes_bulk(self, payload: list,
773
- warm_start: bool = False, single_page: bool = False,
774
- page_size: int = 50, kwargs: dict = None, **params) -> list:
775
- """Bulk Read Downtimes
776
-
777
- Args:
778
- payload (list[dict], optional): List dict to create.
779
- warm_start (bool, optional): salva la risposta in un file e se viene richiamata la stessa funzione con gli stessi argomenti restituisce il contenuto del file. Default to False.
780
- single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
781
- page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 50.
782
- kwargs (dict, optional): additional parameters for execute. Default to None.
783
- **params: additional parameters for the API.
784
-
785
- Keyword Args:
786
- code (string optional): additional filter - parameter
787
- status (string optional): additional filter - parameter
788
- active_at_timestamp (string optional): additional filter - parameter
789
- active_after_timestamp (string optional): additional filter - parameter
790
- skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
791
- limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
792
- like (boolean optional): Se True, eventuali filtri richiesti dalla API vengono presi come porzioni di testo, se False il matching sul campo dei filtri deve essere esatto. Default to True. - parameter
793
- join (boolean optional): Se join = true, ogni riga restituita conterra' chiavi aggiuntive che fanno riferimento ad altre entita', con cui la riga ha relazioni 1:1. Default to False - parameter
794
- count (boolean optional): Se True nel header della risposta e' presente la dimensione massima a db della chiamata fatta, sconsigliabile perche raddoppia il tempo per chiamata. Default to False. - parameter
795
-
796
- Examples:
797
- payload =
798
- [
799
- "uuid": "str", required
800
- ]
801
-
802
- Returns: list"""
803
- if kwargs is None:
804
- kwargs = dict()
805
- official_params_list = ['code', 'status', 'active_at_timestamp',
806
- 'active_after_timestamp', 'skip', 'limit', 'like', 'join', 'count']
807
- params.get('code'), params.get('status'), params.get(
808
- 'active_at_timestamp'), params.get('active_after_timestamp'
809
- ), params.get('skip'), params.get('limit'), params.get('like'
810
- ), params.get('join'), params.get('count')
811
- if not self._silence_warning:
812
- warning_wrong_parameters(self.objects_downtimes_bulk.__name__,
813
- params, official_params_list)
814
- response = self.execute('POST', path=
815
- f'/objects/bulk/read/downtimes/', single_page=single_page,
816
- page_size=page_size, warm_start=warm_start, params=params,
817
- payload=payload, **kwargs)
818
- return response
819
-
820
820
  def objects_probes_create_bulk(self, payload: list,
821
821
  single_page: bool = False, page_size: int = 50, kwargs: dict = None,
822
822
  **params) -> list: