Class: EmassClient::DeviceScanResultsApi

Inherits:
Object
  • Object
show all
Defined in:
lib/emass_client/api/device_scan_results_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_client = ApiClient.default) ⇒ DeviceScanResultsApi

Returns a new instance of DeviceScanResultsApi.



19
20
21
# File 'lib/emass_client/api/device_scan_results_api.rb', line 19

def initialize(api_client = ApiClient.default)
  @api_client = api_client
end

Instance Attribute Details

#api_clientObject

Returns the value of attribute api_client.



17
18
19
# File 'lib/emass_client/api/device_scan_results_api.rb', line 17

def api_client
  @api_client
end

Instance Method Details

#add_scan_results_by_system_id(system_id, scan_type, filename, opts = {}) ⇒ DeviceScanResultsResponsePost

Add device scans in a system

**Request Body Required Field** - `scanType`  Scan Type Allow Values:  <ul>   <li>acasAsrArf (.zip)</li>   <li>acasNessus</li>   <li>disaStigViewerCklCklb (.ckl or .cklb)</li>   <li>disaStigViewerCmrs</li>   <li>policyAuditor (.zip)</li>          <li>scapComplianceChecker</li> </ul>   <strong>Business Rules</strong><br>  The body of a request through the Device Scan Results POST endpoint accepts a single binary file. Specific file extensions are expected depending upon the scanType parameter. For example, .ckl or .cklb files are accepted when using scanType is set to disaStigViewerCklCklb.  When set to acasAsrArf or policyAuditor, a .zip file is expected which should contain a single scan result (for example, a single pair of .asr and .arf files). Single files are expected for all other scan types as this endpoint requires files to be uploaded consecutively as opposed to in bulk.  Current scan types that are supported: <ul>   <li>ACAS: ASR/ARF</li>   <li>ACAS: NESSUS</li>   <li>DISA STIG Viewer: CKL/CKLB</li>   <li>DISA STIG Viewer: CMRS</li>   <li>Policy Auditor</li>          <li>SCAP Compliance Checker</li> </ul>

Parameters:

  • system_id (Integer)

    **System Id**: The unique system record identifier.

  • scan_type (String)

    **Scan Type**: The file scan type to upload

  • filename (File)

    The file to upload. Can be a single file or a .zip file.

  • opts (Hash) (defaults to: {})

    the optional parameters

Options Hash (opts):

  • :is_baseline (Boolean)

    **Is Baseline**: Indicates that the imported file represents a baseline scan that includes all findings and results. Importing as a baseline scan, which assumes a common set of scan policies are used when conducting a scan, will replace a device&#39;s findings for a specific Benchmark. Applicable to ASR/ARF scans only. (default to false)

Returns:



30
31
32
33
# File 'lib/emass_client/api/device_scan_results_api.rb', line 30

def add_scan_results_by_system_id(system_id, scan_type, filename, opts = {})
  data, _status_code, _headers = add_scan_results_by_system_id_with_http_info(system_id, scan_type, filename, opts)
  data
end

#add_scan_results_by_system_id_with_http_info(system_id, scan_type, filename, opts = {}) ⇒ Array<(DeviceScanResultsResponsePost, Integer, Hash)>

Add device scans in a system

**Request Body Required Field** - &#x60;scanType&#x60;  Scan Type Allow Values:  &lt;ul&gt;   &lt;li&gt;acasAsrArf (.zip)&lt;/li&gt;   &lt;li&gt;acasNessus&lt;/li&gt;   &lt;li&gt;disaStigViewerCklCklb (.ckl or .cklb)&lt;/li&gt;   &lt;li&gt;disaStigViewerCmrs&lt;/li&gt;   &lt;li&gt;policyAuditor (.zip)&lt;/li&gt;          &lt;li&gt;scapComplianceChecker&lt;/li&gt; &lt;/ul&gt;   &lt;strong&gt;Business Rules&lt;/strong&gt;&lt;br&gt;  The body of a request through the Device Scan Results POST endpoint accepts a single binary file. Specific file extensions are expected depending upon the scanType parameter. For example, .ckl or .cklb files are accepted when using scanType is set to disaStigViewerCklCklb.  When set to acasAsrArf or policyAuditor, a .zip file is expected which should contain a single scan result (for example, a single pair of .asr and .arf files). Single files are expected for all other scan types as this endpoint requires files to be uploaded consecutively as opposed to in bulk.  Current scan types that are supported: &lt;ul&gt;   &lt;li&gt;ACAS: ASR/ARF&lt;/li&gt;   &lt;li&gt;ACAS: NESSUS&lt;/li&gt;   &lt;li&gt;DISA STIG Viewer: CKL/CKLB&lt;/li&gt;   &lt;li&gt;DISA STIG Viewer: CMRS&lt;/li&gt;   &lt;li&gt;Policy Auditor&lt;/li&gt;          &lt;li&gt;SCAP Compliance Checker&lt;/li&gt; &lt;/ul&gt;

Parameters:

  • system_id (Integer)

    **System Id**: The unique system record identifier.

  • scan_type (String)

    **Scan Type**: The file scan type to upload

  • filename (File)

    The file to upload. Can be a single file or a .zip file.

  • opts (Hash) (defaults to: {})

    the optional parameters

Options Hash (opts):

  • :is_baseline (Boolean)

    **Is Baseline**: Indicates that the imported file represents a baseline scan that includes all findings and results. Importing as a baseline scan, which assumes a common set of scan policies are used when conducting a scan, will replace a device&#39;s findings for a specific Benchmark. Applicable to ASR/ARF scans only. (default to false)

Returns:



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/emass_client/api/device_scan_results_api.rb', line 43

def add_scan_results_by_system_id_with_http_info(system_id, scan_type, filename, opts = {})
  if @api_client.config.debugging
    @api_client.config.logger.debug 'Calling API: DeviceScanResultsApi.add_scan_results_by_system_id ...'
  end
  # verify the required parameter 'system_id' is set
  if @api_client.config.client_side_validation && system_id.nil?
    fail ArgumentError, "Missing the required parameter 'system_id' when calling DeviceScanResultsApi.add_scan_results_by_system_id"
  end
  # verify the required parameter 'scan_type' is set
  if @api_client.config.client_side_validation && scan_type.nil?
    fail ArgumentError, "Missing the required parameter 'scan_type' when calling DeviceScanResultsApi.add_scan_results_by_system_id"
  end
  # verify enum value
  allowable_values = ["acasAsrArf", "acasNessus", "disaStigViewerCklCklb", "disaStigViewerCmrs", "policyAuditor", "scapComplianceChecker", "unknown_default_open_api"]
  if @api_client.config.client_side_validation && !allowable_values.include?(scan_type)
    fail ArgumentError, "invalid value for \"scan_type\", must be one of #{allowable_values}"
  end
  # verify the required parameter 'filename' is set
  if @api_client.config.client_side_validation && filename.nil?
    fail ArgumentError, "Missing the required parameter 'filename' when calling DeviceScanResultsApi.add_scan_results_by_system_id"
  end
  # resource path
  local_var_path = '/api/systems/{systemId}/device-scan-results'.sub('{' + 'systemId' + '}', CGI.escape(system_id.to_s))

  # query parameters
  query_params = opts[:query_params] || {}
  query_params[:'scanType'] = scan_type
  query_params[:'isBaseline'] = opts[:'is_baseline'] if !opts[:'is_baseline'].nil?

  # header parameters
  header_params = opts[:header_params] || {}
  # HTTP header 'Accept' (if needed)
  header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
  # HTTP header 'Content-Type'
  content_type = @api_client.select_header_content_type(['multipart/form-data'])
  if !content_type.nil?
      header_params['Content-Type'] = content_type
  end

  # form parameters
  form_params = opts[:form_params] || {}
  form_params['filename'] = filename

  # http body (model)
  post_body = opts[:debug_body]

  # return_type
  return_type = opts[:debug_return_type] || 'DeviceScanResultsResponsePost'

  # auth_names
  auth_names = opts[:debug_auth_names] || ['apiKey', 'mockType', 'userId']

  new_options = opts.merge(
    :operation => :"DeviceScanResultsApi.add_scan_results_by_system_id",
    :header_params => header_params,
    :query_params => query_params,
    :form_params => form_params,
    :body => post_body,
    :auth_names => auth_names,
    :return_type => return_type
  )

  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
  if @api_client.config.debugging
    @api_client.config.logger.debug "API called: DeviceScanResultsApi#add_scan_results_by_system_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
  end
  return data, status_code, headers
end