@@ -21,4 +21,189 @@ def __init__(self, host, api_key, verify_ssl, timeout, headers, user_agent, cert
2121 the private key and the certificate) or as a tuple of both file’s path
2222 :param debug: Prints requests and responses, useful for debugging.
2323 """
24- super ().__init__ (host , api_key , verify_ssl , timeout , headers , user_agent , cert , debug )
24+ super ().__init__ (host , api_key , verify_ssl , timeout , headers , user_agent , cert , debug )
25+
26+ def create_new_provider_type (self , name ):
27+ """
28+ Creates a new type of provider with provided name
29+ :param name: Name of new provider type
30+ """
31+ params = { 'name' : name }
32+ return super ().request ('POST' , '/api/provider/types' , params = params )
33+
34+ def fetch_all_provider_types (self , page = 1 , limit = 50 , href = None ):
35+ """
36+ Fetches all provider types one page at a time of limit
37+ :param page: The page of the provider types to get (optional if you have href)
38+ :param limit: The amount of provider types per page
39+ :param href: The link to the next page in the system from a previous call
40+ """
41+ # If href (calling another page gives an href tag for next page in line)
42+ if href :
43+ return super ().request ('GET' , '/api/provider' + href )
44+ # First call
45+ return super ().request ('GET' , f'/api/provider/types?_page={ page } &_limit={ limit } ' )
46+
47+ def find_provider_type_by_id (self , provider_type_id ):
48+ """
49+ Gets a specific provider type by id.
50+ :param provider_type_id: ID of the provider type to get
51+ """
52+ return super ().request ('GET' , f'/api/provider/types/{ provider_type_id } ' )
53+
54+ def update_existing_provider_type (self , provider_type_id , name ):
55+ """
56+ Updates an existing provider
57+ :param provider_type_id: ID of the provider type to change
58+ :param name: Name to update to
59+ """
60+ params = { 'name' : name }
61+ return super ().request ('PUT' , f'/api/provider/types/{ provider_type_id } ' , params = params )
62+
63+ def delete_provider_type (self , provider_type_id ):
64+ """
65+ Deletes a specific provider type
66+ :param provider_type_id: ID of the provider type to delete
67+ """
68+ return super ().request ('DELETE' , f'/api/provider/types/{ provider_type_id } ' )
69+
70+ def add_provider (self , name , provider_type , authentication_values ):
71+ """
72+ Creates a new provider
73+ :param name: Name of provider
74+ :param provider_type: Type of provider
75+ :param authentication_values: Authentication Values (array of objects)
76+ """
77+ params = { 'name' : name , 'providerType' : provider_type , 'authenticationValues' : authentication_values }
78+ return super ().request ('POST' , '/api/provider/scanners' , params = params )
79+
80+ def get_all_providers (self , page = 1 , limit = 50 , href = None ):
81+ """
82+ Fetches all provider one page at a time of limit
83+ :param page: The page of the provider types to get (optional if you have href)
84+ :param limit: The amount of provider types per page
85+ :param href: The link to the next page in the system from a previous call
86+ """
87+ # If href (calling another page gives an href tag for next page in line)
88+ if href :
89+ return super ().request ('GET' , '/api/provider' + href )
90+ # First call
91+ return super ().request ('GET' , f'/api/provider/scanners?_page={ page } &_limit={ limit } ' )
92+
93+ def find_provider_by_id (self , provider_id ):
94+ """
95+ Gets a provider by its ID
96+ :param provider_id: ID of provider to get
97+ """
98+ return super ().request ('GET' , f'/api/provider/scanners/{ provider_id } ' )
99+
100+ def update_existing_provider (self , provider_id , name , provider_type , authentication_values ):
101+ """
102+ Updates an existing provider
103+ :param provider_id: ID of provider to get
104+ :param name: Name of provider
105+ :param provider_type: Type of provider
106+ :param authentication_values: Authentication Values (array of objects)
107+ """
108+ params = { 'name' : name , 'providerType' : provider_type , 'authenticationValues' : authentication_values }
109+ return super ().request ('PUT' , f'/api/provider/scanners/{ provider_id } ' , params = params )
110+
111+ def delete_provider_by_id (self , provider_id ):
112+ """
113+ Deletes a provider by its ID
114+ :param provider_id: ID of provider to delete
115+ """
116+ return super ().request ('DELETE' , f'/api/provider/scanners/{ provider_id } ' )
117+
118+ def add_scheduler (self , provider_id , frequency , schedule_type , name = None , schedule_time = None , cron_expression = None ):
119+ """
120+ Creates a new scheduler for scans
121+ :param provider_id: ID of provider to connect scheduler to
122+ :param frequency: frequency of scans
123+ :param schedule_type: What action occurs on scheduler scan or import
124+ :param name: Name of scheduler
125+ :param schedule_time: Time to do scan or import
126+ :param cron_expression: Cron expression representing when to do scan or import
127+ """
128+ params = { 'providerId' : provider_id , 'frequency' : frequency , 'scheduleType' : schedule_type }
129+ if name :
130+ params ['name' ] = name
131+ if schedule_time :
132+ params ['scheduleTime' ] = schedule_time
133+ if cron_expression :
134+ params ['cronExpression' ] = cron_expression
135+ return super ().request ('POST' , '/api/provider/schedulers' , params = params )
136+
137+ def get_all_scheduled_requests (self , page = 1 , limit = 50 , href = None , schedule_type = None ):
138+ """
139+ Fetches all provider one page at a time of limit
140+ :param page: The page of the provider types to get (optional if you have href)
141+ :param limit: The amount of provider types per page
142+ :param href: The link to the next page in the system from a previous call
143+ :param schedule_type: The type of schedule to find
144+ """
145+ params = {}
146+ if schedule_type :
147+ params ['scheduleType' ] = schedule_type
148+ # If href (calling another page gives an href tag for next page in line)
149+ if href :
150+ return super ().request ('GET' , '/api/provider' + href , params = params )
151+ # First call
152+ return super ().request ('GET' , f'/api/provider/schedulers?_page={ page } &_limit={ limit } ' , params = params )
153+
154+ def find_scheduler_by_id (self , scheduler_id ):
155+ """
156+ Gets a scheduler by its ID
157+ :param scheduler_id: ID of scheduler to get
158+ """
159+ return super ().request ('GET' , f'/api/provider/schedulers/{ scheduler_id } ' )
160+
161+ def update_existing_scheduler (self , scheduler_id , provider_id , frequency , schedule_type , id = None , dataset_id = None , created_date = None , modified_date = None , name = None ,
162+ schedule_time = None , cron_expression = None , day_of_week = None , day_of_month = None , month = None , last_scheduled_run = None , next_scheduled_run = None ,
163+ network_ids = None ):
164+ """
165+ Updates an existing scheduler for scans
166+ :param scheduler_id: ID of scheduler to update
167+ :param provider_id: ID of provider to connect scheduler to
168+ :param frequency: frequency of scans
169+ :param schedule_type: What action occurs on scheduler scan or import
170+ :param name: Name of scheduler
171+ :param schedule_time: Time to do scan or import
172+ :param cron_expression: Cron expression representing when to do scan or import
173+ """
174+ params = { 'providerId' : provider_id , 'frequency' : frequency , 'scheduleType' : schedule_type }
175+ if id :
176+ params ['id' ] = id
177+ if dataset_id :
178+ params ['datasetId' ] = dataset_id
179+ if created_date :
180+ params ['createdDate' ] = created_date
181+ if modified_date :
182+ params ['modifiedDate' ] = modified_date
183+ if name :
184+ params ['name' ] = name
185+ if schedule_time :
186+ params ['scheduleTime' ] = schedule_time
187+ if cron_expression :
188+ params ['cronExpression' ] = cron_expression
189+ if day_of_week :
190+ params ['dayOfTheWeek' ] = day_of_week
191+ if day_of_month :
192+ params ['dayOfTheMonth' ] = day_of_month
193+ if month :
194+ params ['month' ] = month
195+ if last_scheduled_run :
196+ params ['lastScheduledRun' ] = last_scheduled_run
197+ if next_scheduled_run :
198+ params ['nextScheduledRun' ] = next_scheduled_run
199+ if network_ids :
200+ params ['networkIds' ] = network_ids
201+ return super ().request ('PUT' , f'/api/provider/schedulers/{ scheduler_id } ' , params = params )
202+
203+
204+ def delete_scheduler (self , scheduler_id ):
205+ """
206+ Deletes a scheduler by its ID
207+ :param scheduler_id: ID of scheduler to delete
208+ """
209+ return super ().request ('DELETE' , f'/api/provider/schedulers/{ scheduler_id } ' )
0 commit comments