xautomata-hive 3.18.1__tar.gz → 3.19.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 (77) hide show
  1. {xautomata_hive-3.18.1/xautomata_hive.egg-info → xautomata_hive-3.19.0}/PKG-INFO +2 -2
  2. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/api.py +3 -1
  3. xautomata_hive-3.19.0/hive/cookbook/automata_ingest.py +40 -0
  4. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/cost_tags.py +23 -19
  5. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/cost_tree_nodes.py +22 -15
  6. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/cost_tree_resources.py +29 -0
  7. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/cost_views.py +32 -4
  8. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/customers.py +13 -14
  9. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/dashboards.py +9 -5
  10. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/login.py +44 -7
  11. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/metrics.py +6 -5
  12. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/objects.py +18 -15
  13. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/probes.py +18 -15
  14. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/services.py +6 -5
  15. xautomata_hive-3.19.0/hive/cookbook/ts_automata_state.py +99 -0
  16. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_metric_status.py +1 -1
  17. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_service_value.py +1 -1
  18. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/users.py +44 -39
  19. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/virtual_domains.py +6 -5
  20. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/widget_groups.py +6 -5
  21. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/widgets.py +6 -5
  22. xautomata_hive-3.19.0/hive/version.py +1 -0
  23. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/setup.py +2 -2
  24. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0/xautomata_hive.egg-info}/PKG-INFO +2 -2
  25. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/xautomata_hive.egg-info/SOURCES.txt +2 -0
  26. xautomata_hive-3.18.1/hive/version.py +0 -1
  27. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/LICENSE +0 -0
  28. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/README.md +0 -0
  29. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/__init__.py +0 -0
  30. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/__init__.py +0 -0
  31. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/acl_docs.py +0 -0
  32. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/acl_overrides.py +0 -0
  33. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/analytics.py +0 -0
  34. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/anomalies.py +0 -0
  35. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/calendars.py +0 -0
  36. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/contacts.py +0 -0
  37. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/cost_tagging.py +0 -0
  38. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/dispatchers.py +0 -0
  39. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/downtimes.py +0 -0
  40. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/external_tickets.py +0 -0
  41. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/features.py +0 -0
  42. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/firmware_updates.py +0 -0
  43. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/google.py +0 -0
  44. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/groups.py +0 -0
  45. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/jobs.py +0 -0
  46. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/last_status.py +0 -0
  47. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/messages.py +0 -0
  48. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/metric_ingest.py +3 -3
  49. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/metric_types.py +0 -0
  50. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/microsoft.py +0 -0
  51. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/notification_provider_types.py +0 -0
  52. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/notification_providers.py +0 -0
  53. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/opening_reasons.py +0 -0
  54. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/probe_types.py +0 -0
  55. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/probes_log_ingest.py +0 -0
  56. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/profile_topics.py +0 -0
  57. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/reason_for_closure.py +0 -0
  58. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/retention_rules.py +0 -0
  59. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/schedules.py +0 -0
  60. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/sites.py +0 -0
  61. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/terms_and_conditions.py +0 -0
  62. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/tree_hierarchy.py +0 -0
  63. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_cost_azure_raw.py +0 -0
  64. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_cost_management.py +0 -0
  65. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_metric_value.py +0 -0
  66. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_ntop_flows.py +0 -0
  67. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/ts_service_status.py +0 -0
  68. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/users_notifications.py +0 -0
  69. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/cookbook/webhooks.py +0 -0
  70. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/decorators.py +0 -0
  71. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/exceptions.py +0 -0
  72. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/infrastrucure_keys.py +0 -0
  73. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/hive/tools.py +0 -0
  74. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/setup.cfg +0 -0
  75. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/xautomata_hive.egg-info/dependency_links.txt +0 -0
  76. {xautomata_hive-3.18.1 → xautomata_hive-3.19.0}/xautomata_hive.egg-info/requires.txt +1 -1
  77. {xautomata_hive-3.18.1 → xautomata_hive-3.19.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.18.1
3
+ Version: 3.19.0
4
4
  Home-page: https://github.com/sherlogic/xautomata-hive.git
5
5
  Author: Enrico Ferro - Andrea Jacassi
6
6
  Author-email:
@@ -8,9 +8,9 @@ License: MIT
8
8
  Requires-Python: >=3.8.0
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
+ Requires-Dist: requests==2.31.0
11
12
  Requires-Dist: tqdm==4.64.1
12
13
  Requires-Dist: urllib3==2.0.4
13
- Requires-Dist: requests==2.31.0
14
14
 
15
15
  # Xautomata API
16
16
  Pacchetto che fornisca una interfaccia semplice per usare le API di Xautomata in python
@@ -492,6 +492,7 @@ from hive.cookbook.external_tickets import ExternalTickets
492
492
  from hive.cookbook.features import Features
493
493
  from hive.cookbook.firmware_updates import FirmwareUpdates
494
494
  from hive.cookbook.groups import Groups
495
+ from hive.cookbook.automata_ingest import AutomataIngest
495
496
  from hive.cookbook.metric_ingest import MetricIngest
496
497
  from hive.cookbook.microsoft import Microsoft
497
498
  from hive.cookbook.google import Google
@@ -516,6 +517,7 @@ from hive.cookbook.sites import Sites
516
517
  from hive.cookbook.last_status import LastStatus
517
518
  from hive.cookbook.terms_and_conditions import TermsAndConditions
518
519
  from hive.cookbook.tree_hierarchy import TreeHierarchy
520
+ from hive.cookbook.ts_automata_state import TsAutomataState
519
521
  from hive.cookbook.ts_cost_azure_raw import TsCostAzureRaw
520
522
  from hive.cookbook.ts_cost_management import TsCostManagement
521
523
  from hive.cookbook.ts_metric_status import TsMetricStatus
@@ -532,7 +534,7 @@ from hive.cookbook.widget_groups import WidgetGroups
532
534
  # hive imports stop
533
535
 
534
536
 
535
- class XautomataApi(AclDocs, AclOverrides, Analytics, Anomalies, Calendars, CostTagging, CostTags, CostViews, CostTreeNodes, CostTreeResources, Contacts, Customers, Dashboards, Dispatchers, Downtimes, ExternalTickets, Features, FirmwareUpdates, Groups, MetricIngest, Microsoft, Google, Login, Jobs, Messages, Metrics, ProbesLogIngest, MetricTypes, NotificationProviders, NotificationProviderTypes, Objects, OpeningReasons, Probes, ProbeTypes, ProfileTopics, ReasonForClosure, RetentionRules, Schedules, Services, Sites, LastStatus, TermsAndConditions, TreeHierarchy, TsCostAzureRaw, TsCostManagement, TsMetricStatus, TsMetricValue, TsNtopFlows, TsServiceStatus, TsServiceValue, Users, UsersNotifications, VirtualDomains, Widgets, Webhooks, WidgetGroups):
537
+ class XautomataApi(AclDocs, AclOverrides, Analytics, Anomalies, Calendars, CostTagging, CostTags, CostViews, CostTreeNodes, CostTreeResources, Contacts, Customers, Dashboards, Dispatchers, Downtimes, ExternalTickets, Features, FirmwareUpdates, Groups, AutomataIngest, MetricIngest, Microsoft, Google, Login, Jobs, Messages, Metrics, ProbesLogIngest, MetricTypes, NotificationProviders, NotificationProviderTypes, Objects, OpeningReasons, Probes, ProbeTypes, ProfileTopics, ReasonForClosure, RetentionRules, Schedules, Services, Sites, LastStatus, TermsAndConditions, TreeHierarchy, TsAutomataState, TsCostAzureRaw, TsCostManagement, TsMetricStatus, TsMetricValue, TsNtopFlows, TsServiceStatus, TsServiceValue, Users, UsersNotifications, VirtualDomains, Widgets, Webhooks, WidgetGroups):
536
538
  """
537
539
  Class with each specific API, based on the ApiManager Class created for a more general interaction with Xautomata API
538
540
  """
@@ -0,0 +1,40 @@
1
+ from hive.api import ApiManager, handling_single_page_methods, warning_wrong_parameters
2
+
3
+
4
+ class AutomataIngest(ApiManager):
5
+ """Class that handles all the XAutomata automata_ingest APIs"""
6
+
7
+ def automata_ingest_create(self, kwargs: dict = None, **payload) -> list:
8
+ """Insert Automata
9
+
10
+ Args:
11
+ kwargs (dict, optional): additional parameters for execute. Default to None.
12
+ **payload: additional parameters for the API.
13
+
14
+ Keyword Args:
15
+ extended_attributes (string optional): additional filter - payload
16
+ uuid_automata_instance (string required): additional filter - payload
17
+ timestamp (integer required): additional filter - payload
18
+ group_label (string optional): additional filter - payload
19
+ xal_name (string optional): additional filter - payload
20
+ automata_name (string optional): additional filter - payload
21
+ automata_version (string optional): additional filter - payload
22
+ current_state (string optional): additional filter - payload
23
+
24
+ Returns: list"""
25
+ if kwargs is None:
26
+ kwargs = dict()
27
+ official_payload_list = ['extended_attributes',
28
+ 'uuid_automata_instance', 'timestamp', 'group_label',
29
+ 'xal_name', 'automata_name', 'automata_version', 'current_state']
30
+ payload.get('extended_attributes'), payload.get(
31
+ 'uuid_automata_instance'), payload.get('timestamp'), payload.get(
32
+ 'group_label'), payload.get('xal_name'), payload.get(
33
+ 'automata_name'), payload.get('automata_version'), payload.get(
34
+ 'current_state')
35
+ if not self._silence_warning:
36
+ warning_wrong_parameters(self.automata_ingest_create.__name__,
37
+ payload, official_payload_list)
38
+ response = self.execute('POST', path=f'/automata_ingest/', payload=
39
+ payload, **kwargs)
40
+ return response
@@ -74,12 +74,13 @@ 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:
77
+ def cost_tags_query_bulk(self, payload: dict = False,
78
+ warm_start: bool = False, single_page: bool = False,
79
+ page_size: int = 5000, kwargs: dict = None, **params) -> list:
80
80
  """Get Ts Costs Rows
81
81
 
82
82
  Args:
83
+ payload (dict, optional): additional parameters for the API.
83
84
  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
85
  single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
85
86
  page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 5000.
@@ -89,30 +90,33 @@ class CostTags(ApiManager):
89
90
  Keyword Args:
90
91
  date_start (string required): additional filter - parameter
91
92
  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
93
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
98
94
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
95
+ 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
96
+
97
+ Examples:
98
+ payload =
99
+ {
100
+ "uuid_view": "string", required
101
+ "select_operation": "None", required
102
+ "selected_tags": "array", optional
103
+ "unselect_operation": "None", required
104
+ "unselected_tags": "array", optional
105
+ }
99
106
 
100
107
  Returns: list"""
101
108
  if kwargs is None:
102
109
  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
+ official_params_list = ['date_start', 'date_end', 'skip', 'limit',
111
+ 'sort_by']
112
+ params.get('date_start'), params.get('date_end'), params.get('skip'
113
+ ), params.get('limit'), params.get('sort_by')
110
114
  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/',
115
+ warning_wrong_parameters(self.cost_tags_query_bulk.__name__,
116
+ params, official_params_list)
117
+ response = self.execute('POST', path=f'/cost_tags/query/',
114
118
  single_page=single_page, page_size=page_size, warm_start=
115
- warm_start, params=params, **kwargs)
119
+ warm_start, params=params, payload=payload, **kwargs)
116
120
  return response
117
121
 
118
122
  def cost_tag(self, uuid: str, warm_start: bool = False,
@@ -62,14 +62,17 @@ class CostTreeNodes(ApiManager):
62
62
  description (string optional): additional filter - payload
63
63
  uuid_view (string required): additional filter - payload
64
64
  budget (integer optional): additional filter - payload
65
+ criteria (array object optional): additional filter - payload
66
+ virtual (boolean optional): additional filter - payload
65
67
 
66
68
  Returns: list"""
67
69
  if kwargs is None:
68
70
  kwargs = dict()
69
71
  official_payload_list = ['uuid_parent', 'code', 'description',
70
- 'uuid_view', 'budget']
72
+ 'uuid_view', 'budget', 'criteria', 'virtual']
71
73
  payload.get('uuid_parent'), payload.get('code'), payload.get(
72
- 'description'), payload.get('uuid_view'), payload.get('budget')
74
+ 'description'), payload.get('uuid_view'), payload.get('budget'
75
+ ), payload.get('criteria'), payload.get('virtual')
73
76
  if not self._silence_warning:
74
77
  warning_wrong_parameters(self.cost_tree_nodes_create.__name__,
75
78
  payload, official_payload_list)
@@ -119,14 +122,17 @@ class CostTreeNodes(ApiManager):
119
122
  description (string optional): additional filter - payload
120
123
  uuid_view (string optional): additional filter - payload
121
124
  budget (integer optional): additional filter - payload
125
+ criteria (array object optional): additional filter - payload
126
+ virtual (boolean optional): additional filter - payload
122
127
 
123
128
  Returns: list"""
124
129
  if kwargs is None:
125
130
  kwargs = dict()
126
131
  official_payload_list = ['uuid_parent', 'code', 'description',
127
- 'uuid_view', 'budget']
132
+ 'uuid_view', 'budget', 'criteria', 'virtual']
128
133
  payload.get('uuid_parent'), payload.get('code'), payload.get(
129
- 'description'), payload.get('uuid_view'), payload.get('budget')
134
+ 'description'), payload.get('uuid_view'), payload.get('budget'
135
+ ), payload.get('criteria'), payload.get('virtual')
130
136
  if not self._silence_warning:
131
137
  warning_wrong_parameters(self.cost_tree_nodes_put.__name__,
132
138
  payload, official_payload_list)
@@ -162,15 +168,17 @@ class CostTreeNodes(ApiManager):
162
168
  date_start (string required): additional filter - parameter
163
169
  date_end (string required): additional filter - parameter
164
170
  resource_id (string optional): additional filter - parameter
171
+ previous_period (boolean optional): additional filter - parameter
165
172
 
166
173
  Returns: list"""
167
174
  if kwargs is None:
168
175
  kwargs = dict()
169
176
  kwargs, params = handling_single_page_methods(kwargs=kwargs, params
170
177
  =params)
171
- official_params_list = ['date_start', 'date_end', 'resource_id']
178
+ official_params_list = ['date_start', 'date_end', 'resource_id',
179
+ 'previous_period']
172
180
  params.get('date_start'), params.get('date_end'), params.get(
173
- 'resource_id')
181
+ 'resource_id'), params.get('previous_period')
174
182
  if not self._silence_warning:
175
183
  warning_wrong_parameters(self.cost_tree_nodes_navigate_tree.
176
184
  __name__, params, official_params_list)
@@ -218,9 +226,9 @@ class CostTreeNodes(ApiManager):
218
226
  =params, **kwargs)
219
227
  return response
220
228
 
221
- def cost_tree_nodes_previous_period(self, uuid: str,
229
+ def cost_tree_nodes_resources_by_criteria(self, uuid: str,
222
230
  warm_start: bool = False, kwargs: dict = None, **params) -> list:
223
- """Get Previous Period
231
+ """Get Resources From Node By Criteria
224
232
 
225
233
  Args:
226
234
  uuid (str, required): uuid
@@ -231,20 +239,19 @@ class CostTreeNodes(ApiManager):
231
239
  Keyword Args:
232
240
  date_start (string required): additional filter - parameter
233
241
  date_end (string required): additional filter - parameter
234
- resource_id (string optional): additional filter - parameter
235
242
 
236
243
  Returns: list"""
237
244
  if kwargs is None:
238
245
  kwargs = dict()
239
246
  kwargs, params = handling_single_page_methods(kwargs=kwargs, params
240
247
  =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')
248
+ official_params_list = ['date_start', 'date_end']
249
+ params.get('date_start'), params.get('date_end')
244
250
  if not self._silence_warning:
245
- warning_wrong_parameters(self.cost_tree_nodes_previous_period.
246
- __name__, params, official_params_list)
251
+ warning_wrong_parameters(self.
252
+ cost_tree_nodes_resources_by_criteria.__name__, params,
253
+ official_params_list)
247
254
  response = self.execute('GET', path=
248
- f'/cost_tree_nodes/previous_period/{uuid}', warm_start=
255
+ f'/cost_tree_nodes/{uuid}/resources_by_criteria', warm_start=
249
256
  warm_start, params=params, **kwargs)
250
257
  return response
@@ -189,3 +189,32 @@ class CostTreeResources(ApiManager):
189
189
  f'/cost_tree_resources/{uuid_view}/unfully_assigned_resources/',
190
190
  warm_start=warm_start, params=params, **kwargs)
191
191
  return response
192
+
193
+ def cost_tree_resources_delete_bulk(self, payload: list,
194
+ single_page: bool = False, page_size: int = 50, kwargs: dict = None
195
+ ) -> list:
196
+ """Bulk Delete Tree Resources
197
+
198
+ Args:
199
+ payload (list[dict], optional): List dict to create.
200
+ single_page (bool, optional): se False la risposta viene ottenuta a step per non appesantire le API. Default to False.
201
+ page_size (int, optional): Numero di oggetti per pagina se single_page == False. Default to 50.
202
+ kwargs (dict, optional): additional parameters for execute. Default to None.
203
+
204
+ Examples:
205
+ payload =
206
+ [
207
+ {
208
+ "uuid_tree_node": "string", required
209
+ "cost_category": "string", required
210
+ "cost_category_value": "string", required
211
+ }
212
+ ]
213
+
214
+ Returns: list"""
215
+ if kwargs is None:
216
+ kwargs = dict()
217
+ response = self.execute('POST', path=
218
+ f'/cost_tree_resources/bulk/delete/', single_page=single_page,
219
+ page_size=page_size, payload=payload, **kwargs)
220
+ return response
@@ -21,6 +21,7 @@ class CostViews(ApiManager):
21
21
  name (string optional): additional filter - parameter
22
22
  description (string optional): additional filter - parameter
23
23
  type (string optional): additional filter - parameter
24
+ uuid_customer (string optional): additional filter - parameter
24
25
  null_fields (string optional): additional filter - parameter
25
26
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
26
27
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
@@ -32,11 +33,12 @@ class CostViews(ApiManager):
32
33
  if kwargs is None:
33
34
  kwargs = dict()
34
35
  official_params_list = ['sort_by', 'name', 'description', 'type',
35
- 'null_fields', 'skip', 'limit', 'like', 'join', 'count']
36
+ 'uuid_customer', 'null_fields', 'skip', 'limit', 'like', 'join',
37
+ 'count']
36
38
  params.get('sort_by'), params.get('name'), params.get('description'
37
- ), params.get('type'), params.get('null_fields'), params.get('skip'
38
- ), params.get('limit'), params.get('like'), params.get('join'
39
- ), params.get('count')
39
+ ), params.get('type'), params.get('uuid_customer'), params.get(
40
+ 'null_fields'), params.get('skip'), params.get('limit'
41
+ ), params.get('like'), params.get('join'), params.get('count')
40
42
  if not self._silence_warning:
41
43
  warning_wrong_parameters(self.cost_views.__name__, params,
42
44
  official_params_list)
@@ -206,3 +208,29 @@ class CostViews(ApiManager):
206
208
  response = self.execute('DELETE', path=
207
209
  f'/cost_views/{uuid}/users/{name}', **kwargs)
208
210
  return response
211
+
212
+ def cost_views_assign_resources_create(self, uuid: str,
213
+ kwargs: dict = None, **params) -> list:
214
+ """Set Resources From Node By Criteria
215
+
216
+ Args:
217
+ uuid (str, required): uuid
218
+ kwargs (dict, optional): additional parameters for execute. Default to None.
219
+ **params: additional parameters for the API.
220
+
221
+ Keyword Args:
222
+ date_start (string required): additional filter - parameter
223
+ date_end (string required): additional filter - parameter
224
+
225
+ Returns: list"""
226
+ if kwargs is None:
227
+ kwargs = dict()
228
+ official_params_list = ['date_start', 'date_end']
229
+ params.get('date_start'), params.get('date_end')
230
+ if not self._silence_warning:
231
+ warning_wrong_parameters(self.
232
+ cost_views_assign_resources_create.__name__, params,
233
+ official_params_list)
234
+ response = self.execute('POST', path=
235
+ f'/cost_views/{uuid}/assign_resources', params=params, **kwargs)
236
+ return response
@@ -748,6 +748,8 @@ class Customers(ApiManager):
748
748
  **params: additional parameters for the API.
749
749
 
750
750
  Keyword Args:
751
+ not_in (boolean optional): additional filter - parameter
752
+ name (string optional): additional filter - parameter
751
753
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
752
754
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
753
755
  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
@@ -757,9 +759,11 @@ class Customers(ApiManager):
757
759
  Returns: list"""
758
760
  if kwargs is None:
759
761
  kwargs = dict()
760
- official_params_list = ['skip', 'limit', 'like', 'join', 'count']
761
- params.get('skip'), params.get('limit'), params.get('like'
762
- ), params.get('join'), params.get('count')
762
+ official_params_list = ['not_in', 'name', 'skip', 'limit', 'like',
763
+ 'join', 'count']
764
+ params.get('not_in'), params.get('name'), params.get('skip'
765
+ ), params.get('limit'), params.get('like'), params.get('join'
766
+ ), params.get('count')
763
767
  if not self._silence_warning:
764
768
  warning_wrong_parameters(self.customers_dashboards.__name__,
765
769
  params, official_params_list)
@@ -1204,17 +1208,15 @@ class Customers(ApiManager):
1204
1208
  kwargs)
1205
1209
  return response
1206
1210
 
1207
- def customers_aws_v2_subscription_create(self, params: dict = False,
1208
- kwargs: dict = None, **payload) -> list:
1211
+ def customers_aws_v2_subscription_create(self, kwargs: dict = None, **
1212
+ payload) -> list:
1209
1213
  """Create Aws Customer Sub
1210
1214
 
1211
1215
  Args:
1212
- params (dict, optional): additional parameters for the API.
1213
1216
  kwargs (dict, optional): additional parameters for execute. Default to None.
1214
1217
  **payload: additional parameters for the API.
1215
1218
 
1216
1219
  Keyword Args:
1217
- extract_resource_id (boolean optional): additional filter - parameter
1218
1220
  customer (None required): additional filter - payload
1219
1221
  aws_customer (None required): additional filter - payload
1220
1222
 
@@ -1228,22 +1230,19 @@ class Customers(ApiManager):
1228
1230
  customers_aws_v2_subscription_create.__name__, payload,
1229
1231
  official_payload_list)
1230
1232
  response = self.execute('POST', path=
1231
- f'/customers/aws/v2/subscription/', params=params, payload=
1232
- payload, **kwargs)
1233
+ f'/customers/aws/v2/subscription/', payload=payload, **kwargs)
1233
1234
  return response
1234
1235
 
1235
1236
  def customers_aws_v2_subscription_create_uuid(self, uuid: str,
1236
- params: dict = False, kwargs: dict = None, **payload) -> list:
1237
+ kwargs: dict = None, **payload) -> list:
1237
1238
  """Create Aws Customer From V2 Sub
1238
1239
 
1239
1240
  Args:
1240
- params (dict, optional): additional parameters for the API.
1241
1241
  uuid (str, required): uuid
1242
1242
  kwargs (dict, optional): additional parameters for execute. Default to None.
1243
1243
  **payload: additional parameters for the API.
1244
1244
 
1245
1245
  Keyword Args:
1246
- extract_resource_id (boolean optional): additional filter - parameter
1247
1246
  target_company (string required): additional filter - payload
1248
1247
  target_code (string required): additional filter - payload
1249
1248
  address (string optional): additional filter - payload
@@ -1275,8 +1274,8 @@ class Customers(ApiManager):
1275
1274
  customers_aws_v2_subscription_create.__name__, payload,
1276
1275
  official_payload_list)
1277
1276
  response = self.execute('POST', path=
1278
- f'/customers/aws/v2/subscription/{uuid}', params=params,
1279
- payload=payload, **kwargs)
1277
+ f'/customers/aws/v2/subscription/{uuid}', payload=payload, **kwargs
1278
+ )
1280
1279
  return response
1281
1280
 
1282
1281
  def customers_networks(self, uuid_customer: str,
@@ -404,6 +404,8 @@ class Dashboards(ApiManager):
404
404
  **params: additional parameters for the API.
405
405
 
406
406
  Keyword Args:
407
+ not_in (boolean optional): additional filter - parameter
408
+ company_name (string optional): additional filter - parameter
407
409
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
408
410
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
409
411
  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
@@ -413,9 +415,11 @@ class Dashboards(ApiManager):
413
415
  Returns: list"""
414
416
  if kwargs is None:
415
417
  kwargs = dict()
416
- official_params_list = ['skip', 'limit', 'like', 'join', 'count']
417
- params.get('skip'), params.get('limit'), params.get('like'
418
- ), params.get('join'), params.get('count')
418
+ official_params_list = ['not_in', 'company_name', 'skip', 'limit',
419
+ 'like', 'join', 'count']
420
+ params.get('not_in'), params.get('company_name'), params.get('skip'
421
+ ), params.get('limit'), params.get('like'), params.get('join'
422
+ ), params.get('count')
419
423
  if not self._silence_warning:
420
424
  warning_wrong_parameters(self.dashboards_customers.__name__,
421
425
  params, official_params_list)
@@ -440,7 +444,7 @@ class Dashboards(ApiManager):
440
444
  f'/dashboards/{uuid}/customers/{uuid_customer}', **kwargs)
441
445
  return response
442
446
 
443
- def dashboards_dashboards_delete(self, uuid: str, uuid_customer: str,
447
+ def dashboards_customers_delete(self, uuid: str, uuid_customer: str,
444
448
  kwargs: dict = None) -> list:
445
449
  """Remove Customer Dashboard Association
446
450
 
@@ -453,7 +457,7 @@ class Dashboards(ApiManager):
453
457
  if kwargs is None:
454
458
  kwargs = dict()
455
459
  response = self.execute('DELETE', path=
456
- f'/dashboards/{uuid}/dashboards/{uuid_customer}', **kwargs)
460
+ f'/dashboards/{uuid}/customers/{uuid_customer}', **kwargs)
457
461
  return response
458
462
 
459
463
  def dashboards_bulk(self, payload: list, warm_start: bool = False,
@@ -145,21 +145,20 @@ class Login(ApiManager):
145
145
 
146
146
  Keyword Args:
147
147
  phone (string optional): additional filter - payload
148
- verified_email (boolean optional): additional filter - payload
149
148
  profile (string optional): additional filter - payload
150
- password (string optional): additional filter - payload
151
149
  email (string optional): additional filter - payload
152
150
  stage (string optional): additional filter - payload
151
+ password (string optional): additional filter - payload
153
152
  active (boolean optional): additional filter - payload
154
153
 
155
154
  Returns: list"""
156
155
  if kwargs is None:
157
156
  kwargs = dict()
158
- official_payload_list = ['phone', 'verified_email', 'profile',
159
- 'password', 'email', 'stage', 'active']
160
- payload.get('phone'), payload.get('verified_email'), payload.get(
161
- 'profile'), payload.get('password'), payload.get('email'
162
- ), payload.get('stage'), payload.get('active')
157
+ official_payload_list = ['phone', 'profile', 'email', 'stage',
158
+ 'password', 'active']
159
+ payload.get('phone'), payload.get('profile'), payload.get('email'
160
+ ), payload.get('stage'), payload.get('password'), payload.get(
161
+ 'active')
163
162
  if not self._silence_warning:
164
163
  warning_wrong_parameters(self.login_current_user_put.__name__,
165
164
  payload, official_payload_list)
@@ -444,3 +443,41 @@ class Login(ApiManager):
444
443
  f'/login/current_user/terms_and_conditions', payload=payload,
445
444
  **kwargs)
446
445
  return response
446
+
447
+ def login_current_user_verify_email_put(self, kwargs: dict = None, **params
448
+ ) -> list:
449
+ """Verify Current User Email
450
+
451
+ Args:
452
+ kwargs (dict, optional): additional parameters for execute. Default to None.
453
+ **params: additional parameters for the API.
454
+
455
+ Keyword Args:
456
+ verification_code (string required): additional filter - parameter
457
+
458
+ Returns: list"""
459
+ if kwargs is None:
460
+ kwargs = dict()
461
+ official_params_list = ['verification_code']
462
+ params.get('verification_code')
463
+ if not self._silence_warning:
464
+ warning_wrong_parameters(self.
465
+ login_current_user_verify_email_put.__name__, params,
466
+ official_params_list)
467
+ response = self.execute('PUT', path=
468
+ f'/login/current_user/verify_email', params=params, **kwargs)
469
+ return response
470
+
471
+ def login_current_user_verify_email_create(self, kwargs: dict = None
472
+ ) -> list:
473
+ """Send Request To Verify Current User Email
474
+
475
+ Args:
476
+ kwargs (dict, optional): additional parameters for execute. Default to None.
477
+
478
+ Returns: list"""
479
+ if kwargs is None:
480
+ kwargs = dict()
481
+ response = self.execute('POST', path=
482
+ f'/login/current_user/verify_email', **kwargs)
483
+ return response
@@ -193,6 +193,7 @@ class Metrics(ApiManager):
193
193
  Keyword Args:
194
194
  not_in (boolean optional): additional filter - parameter
195
195
  name (string optional): additional filter - parameter
196
+ status (string optional): additional filter - parameter
196
197
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
197
198
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
198
199
  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
@@ -202,11 +203,11 @@ class Metrics(ApiManager):
202
203
  Returns: list"""
203
204
  if kwargs is None:
204
205
  kwargs = dict()
205
- official_params_list = ['not_in', 'name', 'skip', 'limit', 'like',
206
- 'join', 'count']
207
- params.get('not_in'), params.get('name'), params.get('skip'
208
- ), params.get('limit'), params.get('like'), params.get('join'
209
- ), params.get('count')
206
+ official_params_list = ['not_in', 'name', 'status', 'skip', 'limit',
207
+ 'like', 'join', 'count']
208
+ params.get('not_in'), params.get('name'), params.get('status'
209
+ ), params.get('skip'), params.get('limit'), params.get('like'
210
+ ), params.get('join'), params.get('count')
210
211
  if not self._silence_warning:
211
212
  warning_wrong_parameters(self.metrics_services.__name__, params,
212
213
  official_params_list)
@@ -166,6 +166,7 @@ class Objects(ApiManager):
166
166
  Keyword Args:
167
167
  not_in (boolean optional): additional filter - parameter
168
168
  name (string optional): additional filter - parameter
169
+ status (string optional): additional filter - parameter
169
170
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
170
171
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
171
172
  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
@@ -175,11 +176,11 @@ class Objects(ApiManager):
175
176
  Returns: list"""
176
177
  if kwargs is None:
177
178
  kwargs = dict()
178
- official_params_list = ['not_in', 'name', 'skip', 'limit', 'like',
179
- 'join', 'count']
180
- params.get('not_in'), params.get('name'), params.get('skip'
181
- ), params.get('limit'), params.get('like'), params.get('join'
182
- ), params.get('count')
179
+ official_params_list = ['not_in', 'name', 'status', 'skip', 'limit',
180
+ 'like', 'join', 'count']
181
+ params.get('not_in'), params.get('name'), params.get('status'
182
+ ), params.get('skip'), params.get('limit'), params.get('like'
183
+ ), params.get('join'), params.get('count')
183
184
  if not self._silence_warning:
184
185
  warning_wrong_parameters(self.objects_metric_types.__name__,
185
186
  params, official_params_list)
@@ -240,6 +241,7 @@ class Objects(ApiManager):
240
241
  Keyword Args:
241
242
  not_in (boolean optional): additional filter - parameter
242
243
  name (string optional): additional filter - parameter
244
+ status (string optional): additional filter - parameter
243
245
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
244
246
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
245
247
  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
@@ -249,11 +251,11 @@ class Objects(ApiManager):
249
251
  Returns: list"""
250
252
  if kwargs is None:
251
253
  kwargs = dict()
252
- official_params_list = ['not_in', 'name', 'skip', 'limit', 'like',
253
- 'join', 'count']
254
- params.get('not_in'), params.get('name'), params.get('skip'
255
- ), params.get('limit'), params.get('like'), params.get('join'
256
- ), params.get('count')
254
+ official_params_list = ['not_in', 'name', 'status', 'skip', 'limit',
255
+ 'like', 'join', 'count']
256
+ params.get('not_in'), params.get('name'), params.get('status'
257
+ ), params.get('skip'), params.get('limit'), params.get('like'
258
+ ), params.get('join'), params.get('count')
257
259
  if not self._silence_warning:
258
260
  warning_wrong_parameters(self.objects_groups.__name__, params,
259
261
  official_params_list)
@@ -310,6 +312,7 @@ class Objects(ApiManager):
310
312
  Keyword Args:
311
313
  not_in (boolean optional): additional filter - parameter
312
314
  name (string optional): additional filter - parameter
315
+ status (string optional): additional filter - parameter
313
316
  skip (integer optional): numero di oggetti che si vogliono saltare nella risposta. Default to 0. - parameter
314
317
  limit (integer optional): numero di oggetti massimi che si vogliono ottenere. Default to 1_000_000. - parameter
315
318
  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
@@ -319,11 +322,11 @@ class Objects(ApiManager):
319
322
  Returns: list"""
320
323
  if kwargs is None:
321
324
  kwargs = dict()
322
- official_params_list = ['not_in', 'name', 'skip', 'limit', 'like',
323
- 'join', 'count']
324
- params.get('not_in'), params.get('name'), params.get('skip'
325
- ), params.get('limit'), params.get('like'), params.get('join'
326
- ), params.get('count')
325
+ official_params_list = ['not_in', 'name', 'status', 'skip', 'limit',
326
+ 'like', 'join', 'count']
327
+ params.get('not_in'), params.get('name'), params.get('status'
328
+ ), params.get('skip'), params.get('limit'), params.get('like'
329
+ ), params.get('join'), params.get('count')
327
330
  if not self._silence_warning:
328
331
  warning_wrong_parameters(self.objects_probes.__name__, params,
329
332
  official_params_list)