Class: CtdDocumentation::AssetsController

Inherits:
BaseController show all
Defined in:
lib/ctd_documentation/controllers/assets_controller.rb

Overview

AssetsController

Constant Summary

Constants inherited from BaseController

BaseController::GLOBAL_ERRORS

Instance Attribute Summary

Attributes inherited from BaseController

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseController

#initialize, #new_api_call_builder, #new_parameter, #new_request_builder, #new_response_handler, user_agent

Constructor Details

This class inherits a constructor from CtdDocumentation::BaseController

Instance Method Details

#find_asset_by_id(resource_id) ⇒ FindAssetByIDResponse

Find Asset By ID to return

Parameters:

  • resource_id (String)

    Required parameter: Resource ID of the asset

Returns:



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# File 'lib/ctd_documentation/controllers/assets_controller.rb', line 269

def find_asset_by_id(resource_id)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/ranger/assets/{resource_id}',
                                 Server::DEFAULT)
               .template_param(new_parameter(resource_id, key: 'resource_id')
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
               .deserializer(APIHelper.method(:custom_type_deserializer))
               .deserialize_into(FindAssetByIDResponse.method(:from_hash))
               .local_error('400',
                            'Invalid ID supplied',
                            APIException)
               .local_error('404',
                            'Asset not found',
                            APIException))
    .execute
end

#get_assets(format: nil, page: nil, per_page: nil, ipv4__exact: nil, ipv6__exact: nil, mac__icontains: nil, vlan__exact: nil, address__exact: nil, gateway__exact: nil, asset_type__exact: nil, host_name__exact: nil, os__exact: nil, model__icontains: nil, vendor__icontains: nil, state__exact: nil, domain_names__exact: nil, firmware__exact: nil, serial__exact: nil, generic__icontains: nil, display_name__icontains: nil, criticality__exact: nil, old_ip__exact: nil, protocol__exact: nil, last_seen__exact: nil, q__icontains: nil, alert_id__exact: nil, last_updated__gt: nil, baseline__exact: nil, arp_baselines__exact: nil, insight_status__exact: nil, insights_insight_name__exact: nil, insight_timestamp__gte: nil, insight_timestamp__lte: nil, baseline_category__exact: nil, baseline_access_type__exact: nil, insight_name__exact: nil, insight_row_key__exact: nil, ghost__exact: nil, tasks__exact: nil, active_queries__exact: nil, subnet_tag__exact: nil, custom_attributes__exact: nil, class_type__exact: nil, domain_name__exact: nil, involved_in_tags__exact: nil, hosted_tags__icontains: nil, id__exact: nil, site_id__exact: nil, timestamp__exact: nil, approved__exact: nil, valid__exact: nil, parsed__exact: nil, special_hint__exact: nil, risk_level__exact: nil, network_id__exact: nil, virtual_zone_id__exact: nil, subnet_id__exact: nil, purdue_level__exact: nil) ⇒ GetAssetsResponse

Retrieves a list of assets in CTD, with optional filters. Note: All filters are optional. response (list of fields) returned by the query. If not provided, all asset properties are returned and could affect performance. page IPv4 format IPv6 format device (free text) device in the network the Asset’s network example SCADA client, PLC, etc. Asset system asset (free text) asset (free text) in the dropdown: 0 = Training 1 = Maintenance 2 = Guest name(s) of the Asset name of the Asset of the Asset (free text) the Asset (free text) High. These CTD values represent how critical the asset itself is to the operation. CTD assigns criticality automatically to certain types of assets but enables you to edit the value. this Asset by this Asset when communicating last instance when this device was seen in the network following Asset info: Name, IP, Version, Model and MAC triggered by this Asset the latest change to the Asset was made in the EMC. Format: YYYY-MM-DD**T**HH:MM:SS (in UTC) Example: 2022-11-01T16:22:05 which the Asset appears asset has ARP baselines: True = ARP The status of the Insight associated with this Asset – this is a dropdown for choosing the integer type: 0 = Open 1 = Hidden 2 = Completed of the Insight associated with this Asset Insight was detected; greater (later) than or equal to a specific timestamp Insight was detected; less (earlier) than or equal to a specific timestamp of the Baseline of this Asset type of the Baseline of this asset Insight associated with this Asset the related Insight not this is a ghost asset: TRUE = Ghost Tasks running on this Asset the Active Queries running on this Asset location the (user-defined) Custom Attributes for this Asset this Asset (IT, OT, IoT) the Asset (free text) identifier in the system Site in which the device resides this Asset was detected Asset was approved Asset is valid: TRUE=valid not parsed information (numerical or textual value from the protocols) was incorporated by CTD into the Asset’s baseline Example: risk for this device, based on its vulnerabilities, insights, alerts, policies, asset criticality, and network location network in which this device is located related assets this device belongs to (e.g. PLC Modbus) location level of this specific device (0-6). This value is automatically determined based on the various characteristics of the asset and its purpose. Can be adjusted to reflect the true asset behavior. Also note that interim Purdue levels can also be used, e.g. 1.5, 2.5, 3.5

Parameters:

  • format (Format1Enum) (defaults to: nil)

    Optional parameter: Specifies the type of

  • page (Integer) (defaults to: nil)

    Optional parameter: The page number to be viewed

  • per_page (Integer) (defaults to: nil)

    Optional parameter: Number of Assets to pull per

  • ipv4__exact (String) (defaults to: nil)

    Optional parameter: IP address of the asset in

  • ipv6__exact (String) (defaults to: nil)

    Optional parameter: IP address of the asset in

  • mac__icontains (String) (defaults to: nil)

    Optional parameter: The MAC address of the

  • vlan__exact (String) (defaults to: nil)

    Optional parameter: The VLAN/s of the device

  • address__exact (String) (defaults to: nil)

    Optional parameter: The IP address of this

  • gateway__exact (String) (defaults to: nil)

    Optional parameter: IP of the Gateway of

  • asset_type__exact (String) (defaults to: nil)

    Optional parameter: CTD Asset type, for

  • host_name__exact (String) (defaults to: nil)

    Optional parameter: The host name of this

  • os__exact (String) (defaults to: nil)

    Optional parameter: The name of the operating

  • model__icontains (String) (defaults to: nil)

    Optional parameter: The Model of this

  • vendor__icontains (String) (defaults to: nil)

    Optional parameter: The Vendor of this

  • state__exact (String) (defaults to: nil)

    Optional parameter: Asset state as selected

  • domain_names__exact (String) (defaults to: nil)

    Optional parameter: The exact domain

  • firmware__exact (String) (defaults to: nil)

    Optional parameter: The exact firmware

  • serial__exact (String) (defaults to: nil)

    Optional parameter: The exact serial number

  • generic__icontains (String) (defaults to: nil)

    Optional parameter: Custom information

  • display_name__icontains (String) (defaults to: nil)

    Optional parameter: The name of

  • criticality__exact (String) (defaults to: nil)

    Optional parameter: Low, Medium, or

  • old_ip__exact (String) (defaults to: nil)

    Optional parameter: Previous IPs used by

  • protocol__exact (String) (defaults to: nil)

    Optional parameter: List of protocols used

  • last_seen__exact (String) (defaults to: nil)

    Optional parameter: The timestamp of the

  • q__icontains (String) (defaults to: nil)

    Optional parameter: Free text for the

  • alert_id__exact (String) (defaults to: nil)

    Optional parameter: The IDs of the alerts

  • last_updated__gt (String) (defaults to: nil)

    Optional parameter: The timestamp when

  • baseline__exact (String) (defaults to: nil)

    Optional parameter: Names of Baselines in

  • arp_baselines__exact (String) (defaults to: nil)

    Optional parameter: Whether this

  • insight_status__exact (InsightStatusExact1Enum) (defaults to: nil)

    Optional parameter:

  • insights_insight_name__exact (String) (defaults to: nil)

    Optional parameter: The name

  • insight_timestamp__gte (String) (defaults to: nil)

    Optional parameter: When this

  • insight_timestamp__lte (String) (defaults to: nil)

    Optional parameter: When this

  • baseline_category__exact (String) (defaults to: nil)

    Optional parameter: The category

  • baseline_access_type__exact (String) (defaults to: nil)

    Optional parameter: The access

  • insight_name__exact (String) (defaults to: nil)

    Optional parameter: The name of the

  • insight_row_key__exact (String) (defaults to: nil)

    Optional parameter: The row key of

  • ghost__exact (TrueClass|FalseClass) (defaults to: nil)

    Optional parameter: Whether or

  • tasks__exact (String) (defaults to: nil)

    Optional parameter: Resource ID of the Active

  • active_queries__exact (String) (defaults to: nil)

    Optional parameter: Resource ID of

  • subnet_tag__exact (String) (defaults to: nil)

    Optional parameter: The device’s network

  • custom_attributes__exact (String) (defaults to: nil)

    Optional parameter: The values of

  • class_type__exact (String) (defaults to: nil)

    Optional parameter: The class type of

  • domain_name__exact (String) (defaults to: nil)

    Optional parameter: The domain name of

  • involved_in_tags__exact (String) (defaults to: nil)

    Optional parameter: Example:

  • hosted_tags__icontains (String) (defaults to: nil)

    Optional parameter: Artifact name

  • id__exact (Integer) (defaults to: nil)

    Optional parameter: The device’s unique

  • site_id__exact (Integer) (defaults to: nil)

    Optional parameter: The identifier of the

  • timestamp__exact (String) (defaults to: nil)

    Optional parameter: The timestamp of when

  • approved__exact (TrueClass|FalseClass) (defaults to: nil)

    Optional parameter: If the

  • valid__exact (TrueClass|FalseClass) (defaults to: nil)

    Optional parameter: If the

  • parsed__exact (TrueClass|FalseClass) (defaults to: nil)

    Optional parameter: Whether or

  • special_hint__exact (SpecialHintExactEnum) (defaults to: nil)

    Optional parameter:

  • risk_level__exact (Integer) (defaults to: nil)

    Optional parameter: The CTD level of

  • network_id__exact (Integer) (defaults to: nil)

    Optional parameter: The ID of the

  • virtual_zone_id__exact (Integer) (defaults to: nil)

    Optional parameter: The group of

  • subnet_id__exact (Integer) (defaults to: nil)

    Optional parameter: The device’s network

  • purdue_level__exact (String) (defaults to: nil)

    Optional parameter: The Purdue model

Returns:



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# File 'lib/ctd_documentation/controllers/assets_controller.rb', line 137

def get_assets(format: nil,
               page: nil,
               per_page: nil,
               ipv4__exact: nil,
               ipv6__exact: nil,
               mac__icontains: nil,
               vlan__exact: nil,
               address__exact: nil,
               gateway__exact: nil,
               asset_type__exact: nil,
               host_name__exact: nil,
               os__exact: nil,
               model__icontains: nil,
               vendor__icontains: nil,
               state__exact: nil,
               domain_names__exact: nil,
               firmware__exact: nil,
               serial__exact: nil,
               generic__icontains: nil,
               display_name__icontains: nil,
               criticality__exact: nil,
               old_ip__exact: nil,
               protocol__exact: nil,
               last_seen__exact: nil,
               q__icontains: nil,
               alert_id__exact: nil,
               last_updated__gt: nil,
               baseline__exact: nil,
               arp_baselines__exact: nil,
               insight_status__exact: nil,
               insights_insight_name__exact: nil,
               insight_timestamp__gte: nil,
               insight_timestamp__lte: nil,
               baseline_category__exact: nil,
               baseline_access_type__exact: nil,
               insight_name__exact: nil,
               insight_row_key__exact: nil,
               ghost__exact: nil,
               tasks__exact: nil,
               active_queries__exact: nil,
               subnet_tag__exact: nil,
               custom_attributes__exact: nil,
               class_type__exact: nil,
               domain_name__exact: nil,
               involved_in_tags__exact: nil,
               hosted_tags__icontains: nil,
               id__exact: nil,
               site_id__exact: nil,
               timestamp__exact: nil,
               approved__exact: nil,
               valid__exact: nil,
               parsed__exact: nil,
               special_hint__exact: nil,
               risk_level__exact: nil,
               network_id__exact: nil,
               virtual_zone_id__exact: nil,
               subnet_id__exact: nil,
               purdue_level__exact: nil)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/ranger/assets',
                                 Server::DEFAULT)
               .query_param(new_parameter(format, key: 'format'))
               .query_param(new_parameter(page, key: 'page'))
               .query_param(new_parameter(per_page, key: 'per_page'))
               .query_param(new_parameter(ipv4__exact, key: 'ipv4__exact'))
               .query_param(new_parameter(ipv6__exact, key: 'ipv6__exact'))
               .query_param(new_parameter(mac__icontains, key: 'mac__icontains'))
               .query_param(new_parameter(vlan__exact, key: 'vlan__exact'))
               .query_param(new_parameter(address__exact, key: 'address__exact'))
               .query_param(new_parameter(gateway__exact, key: 'gateway__exact'))
               .query_param(new_parameter(asset_type__exact, key: 'asset_type__exact'))
               .query_param(new_parameter(host_name__exact, key: 'host_name__exact'))
               .query_param(new_parameter(os__exact, key: 'os__exact'))
               .query_param(new_parameter(model__icontains, key: 'model__icontains'))
               .query_param(new_parameter(vendor__icontains, key: 'vendor__icontains'))
               .query_param(new_parameter(state__exact, key: 'state__exact'))
               .query_param(new_parameter(domain_names__exact, key: 'domain_names__exact'))
               .query_param(new_parameter(firmware__exact, key: 'firmware__exact'))
               .query_param(new_parameter(serial__exact, key: 'serial__exact'))
               .query_param(new_parameter(generic__icontains, key: 'generic__icontains'))
               .query_param(new_parameter(display_name__icontains, key: 'display_name__icontains'))
               .query_param(new_parameter(criticality__exact, key: 'criticality__exact'))
               .query_param(new_parameter(old_ip__exact, key: 'old_ip__exact'))
               .query_param(new_parameter(protocol__exact, key: 'protocol__exact'))
               .query_param(new_parameter(last_seen__exact, key: 'last_seen__exact'))
               .query_param(new_parameter(q__icontains, key: 'q__icontains'))
               .query_param(new_parameter(alert_id__exact, key: 'alert_id__exact'))
               .query_param(new_parameter(last_updated__gt, key: 'last_updated__gt'))
               .query_param(new_parameter(baseline__exact, key: 'baseline__exact'))
               .query_param(new_parameter(arp_baselines__exact, key: 'arp_baselines__exact'))
               .query_param(new_parameter(insight_status__exact, key: 'insight_status__exact'))
               .query_param(new_parameter(insights_insight_name__exact, key: 'insights_insight_name__exact'))
               .query_param(new_parameter(insight_timestamp__gte, key: 'insight_timestamp__gte'))
               .query_param(new_parameter(insight_timestamp__lte, key: 'insight_timestamp__lte'))
               .query_param(new_parameter(baseline_category__exact, key: 'baseline_category__exact'))
               .query_param(new_parameter(baseline_access_type__exact, key: 'baseline_access_type__exact'))
               .query_param(new_parameter(insight_name__exact, key: 'insight_name__exact'))
               .query_param(new_parameter(insight_row_key__exact, key: 'insight_row_key__exact'))
               .query_param(new_parameter(ghost__exact, key: 'ghost__exact'))
               .query_param(new_parameter(tasks__exact, key: 'tasks__exact'))
               .query_param(new_parameter(active_queries__exact, key: 'active_queries__exact'))
               .query_param(new_parameter(subnet_tag__exact, key: 'subnet_tag__exact'))
               .query_param(new_parameter(custom_attributes__exact, key: 'custom_attributes__exact'))
               .query_param(new_parameter(class_type__exact, key: 'class_type__exact'))
               .query_param(new_parameter(domain_name__exact, key: 'domain_name__exact'))
               .query_param(new_parameter(involved_in_tags__exact, key: 'involved_in_tags__exact'))
               .query_param(new_parameter(hosted_tags__icontains, key: 'hosted_tags__icontains'))
               .query_param(new_parameter(id__exact, key: 'id__exact'))
               .query_param(new_parameter(site_id__exact, key: 'site_id__exact'))
               .query_param(new_parameter(timestamp__exact, key: 'timestamp__exact'))
               .query_param(new_parameter(approved__exact, key: 'approved__exact'))
               .query_param(new_parameter(valid__exact, key: 'valid__exact'))
               .query_param(new_parameter(parsed__exact, key: 'parsed__exact'))
               .query_param(new_parameter(special_hint__exact, key: 'special_hint__exact'))
               .query_param(new_parameter(risk_level__exact, key: 'risk_level__exact'))
               .query_param(new_parameter(network_id__exact, key: 'network_id__exact'))
               .query_param(new_parameter(virtual_zone_id__exact, key: 'virtual_zone_id__exact'))
               .query_param(new_parameter(subnet_id__exact, key: 'subnet_id__exact'))
               .query_param(new_parameter(purdue_level__exact, key: 'purdue_level__exact'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
               .deserializer(APIHelper.method(:custom_type_deserializer))
               .deserialize_into(GetAssetsResponse.method(:from_hash)))
    .execute
end

#get_assetswith_insights(page: nil, per_page: nil, name__exact: nil, ghost__exact: nil, risk_level__exact: nil, site_name__exact: nil, network_id__exact: nil, ipv4__exact: nil, ipv6__exact: nil, mac__icontains: nil, asset_type__exact: nil, os__exact: nil, model__icontains: nil, vendor__icontains: nil, firmware__exact: nil, criticality__exact: nil, insight_cve_id__exact: nil, insight_cvss__exact: nil, insight_title__contains: nil, insight_published__exact: nil, insight_modified__exact: nil, insight_status__exact: nil, insight_identified_on__exact: nil, insight_last_updated__exact: nil, insight_comment__contains: nil) ⇒ AssetsWithInsightsResponse

Returns Assets with the top 10 highest score Insights. Note: The used lookups are optional be included in the results if the asset has only incoming communication, that is, an asset that has never replied vulnerable this Asset is to attacks which the Asset belongs to which the Asset belongs related to the Asset related to the Asset device (free text) example SCADA client, PLC, etc. system that runs on the Asset Asset’s model name Asset is to the overall operation. Options: 1 - Low 2 - Medium 3 - High the CVE connected to the Insight title when the CVE’s was published: Format: YYYY-MM-DD HH:MM:SS Example: 2016-11-15 06:20:05 of the latest modification made to the CVE by the global provider. Format: YYYY-MM-DD HH:MM:SS Example: 2016-11-15 06:20:05 represents the CVE’s status. Options: 0 - Open 1- Hidden 2 - Completed when the CVE was identified. Format: YYYY-MM-DD**T**HH:MM:SS (in UTC) Example: 2022-11-01T16:22:05 when the latest change to the CVE was made in the EMC. Format: YYYY-MM-DD**T**HH:MM:SS+00:00 (in UTC) Example: 2022-11-01T16:22:05+00:00 provided by a user

Parameters:

  • page (Integer) (defaults to: nil)

    Optional parameter: The actual page offset

  • per_page (Integer) (defaults to: nil)

    Optional parameter: The max number of items to

  • name__exact (String) (defaults to: nil)

    Optional parameter: Name of the Asset

  • ghost__exact (TrueClass|FalseClass) (defaults to: nil)

    Optional parameter: Indicates

  • risk_level__exact (Integer) (defaults to: nil)

    Optional parameter: Calculation of how

  • site_name__exact (String) (defaults to: nil)

    Optional parameter: Name of the Site to

  • network_id__exact (Integer) (defaults to: nil)

    Optional parameter: ID of the network

  • ipv4__exact (String) (defaults to: nil)

    Optional parameter: An IPv4 address that

  • ipv6__exact (String) (defaults to: nil)

    Optional parameter: An IPv6 address that

  • mac__icontains (String) (defaults to: nil)

    Optional parameter: The MAC address of the

  • asset_type__exact (String) (defaults to: nil)

    Optional parameter: CTD Asset type, for

  • os__exact (String) (defaults to: nil)

    Optional parameter: The name of the operating

  • model__icontains (String) (defaults to: nil)

    Optional parameter: The name of the

  • vendor__icontains (String) (defaults to: nil)

    Optional parameter: The Asset’s vendor

  • firmware__exact (String) (defaults to: nil)

    Optional parameter: The Asset’s firmware

  • criticality__exact (Integer) (defaults to: nil)

    Optional parameter: How critical the

  • insight_cve_id__exact (String) (defaults to: nil)

    Optional parameter: The ID number of

  • insight_cvss__exact (Float) (defaults to: nil)

    Optional parameter: The CVE’s score

  • insight_title__contains (String) (defaults to: nil)

    Optional parameter: The CVE’s

  • insight_published__exact (String) (defaults to: nil)

    Optional parameter: The full date

  • insight_modified__exact (String) (defaults to: nil)

    Optional parameter: The full date

  • insight_status__exact (Integer) (defaults to: nil)

    Optional parameter: A number that

  • insight_identified_on__exact (String) (defaults to: nil)

    Optional parameter: Timestamp

  • insight_last_updated__exact (String) (defaults to: nil)

    Optional parameter: Timestamp

  • insight_comment__contains (String) (defaults to: nil)

    Optional parameter: Last comment

Returns:



347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
# File 'lib/ctd_documentation/controllers/assets_controller.rb', line 347

def get_assetswith_insights(page: nil,
                            per_page: nil,
                            name__exact: nil,
                            ghost__exact: nil,
                            risk_level__exact: nil,
                            site_name__exact: nil,
                            network_id__exact: nil,
                            ipv4__exact: nil,
                            ipv6__exact: nil,
                            mac__icontains: nil,
                            asset_type__exact: nil,
                            os__exact: nil,
                            model__icontains: nil,
                            vendor__icontains: nil,
                            firmware__exact: nil,
                            criticality__exact: nil,
                            insight_cve_id__exact: nil,
                            insight_cvss__exact: nil,
                            insight_title__contains: nil,
                            insight_published__exact: nil,
                            insight_modified__exact: nil,
                            insight_status__exact: nil,
                            insight_identified_on__exact: nil,
                            insight_last_updated__exact: nil,
                            insight_comment__contains: nil)
  new_api_call_builder
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/ranger/assets_with_insights',
                                 Server::DEFAULT)
               .query_param(new_parameter(page, key: 'page'))
               .query_param(new_parameter(per_page, key: 'per_page'))
               .query_param(new_parameter(name__exact, key: 'name__exact'))
               .query_param(new_parameter(ghost__exact, key: 'ghost__exact'))
               .query_param(new_parameter(risk_level__exact, key: 'risk_level__exact'))
               .query_param(new_parameter(site_name__exact, key: 'site_name__exact'))
               .query_param(new_parameter(network_id__exact, key: 'network_id__exact'))
               .query_param(new_parameter(ipv4__exact, key: 'ipv4__exact'))
               .query_param(new_parameter(ipv6__exact, key: 'ipv6__exact'))
               .query_param(new_parameter(mac__icontains, key: 'mac__icontains'))
               .query_param(new_parameter(asset_type__exact, key: 'asset_type__exact'))
               .query_param(new_parameter(os__exact, key: 'os__exact'))
               .query_param(new_parameter(model__icontains, key: 'model__icontains'))
               .query_param(new_parameter(vendor__icontains, key: 'vendor__icontains'))
               .query_param(new_parameter(firmware__exact, key: 'firmware__exact'))
               .query_param(new_parameter(criticality__exact, key: 'criticality__exact'))
               .query_param(new_parameter(insight_cve_id__exact, key: 'insight_cve_id__exact'))
               .query_param(new_parameter(insight_cvss__exact, key: 'insight_cvss__exact'))
               .query_param(new_parameter(insight_title__contains, key: 'insight_title__contains'))
               .query_param(new_parameter(insight_published__exact, key: 'insight_published__exact'))
               .query_param(new_parameter(insight_modified__exact, key: 'insight_modified__exact'))
               .query_param(new_parameter(insight_status__exact, key: 'insight_status__exact'))
               .query_param(new_parameter(insight_identified_on__exact, key: 'insight_identified_on__exact'))
               .query_param(new_parameter(insight_last_updated__exact, key: 'insight_last_updated__exact'))
               .query_param(new_parameter(insight_comment__contains, key: 'insight_comment__contains'))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(Single.new('global')))
    .response(new_response_handler
               .deserializer(APIHelper.method(:custom_type_deserializer))
               .deserialize_into(AssetsWithInsightsResponse.method(:from_hash)))
    .execute
end