cyber_trackr_live 1.0.0
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.
- checksums.yaml +7 -0
- data/CHANGELOG-GEM.md +47 -0
- data/CODE_OF_CONDUCT.md +20 -0
- data/CONTRIBUTING.md +422 -0
- data/LICENSE.md +16 -0
- data/NOTICE.md +16 -0
- data/README-GEM.md +75 -0
- data/SECURITY.md +86 -0
- data/cyber_trackr_live.gemspec +56 -0
- data/examples/cyber_trackr_client.rb +208 -0
- data/examples/fetch-complete-stig +174 -0
- data/examples/fetch-stig-complete +67 -0
- data/examples/fetch-stig-direct +99 -0
- data/examples/use_helper.rb +50 -0
- data/lib/cyber_trackr_client/api/api_documentation_api.rb +79 -0
- data/lib/cyber_trackr_client/api/cci_api.rb +147 -0
- data/lib/cyber_trackr_client/api/documents_api.rb +276 -0
- data/lib/cyber_trackr_client/api/rmf_controls_api.rb +272 -0
- data/lib/cyber_trackr_client/api/scap_api.rb +276 -0
- data/lib/cyber_trackr_client/api_client.rb +437 -0
- data/lib/cyber_trackr_client/api_error.rb +58 -0
- data/lib/cyber_trackr_client/configuration.rb +400 -0
- data/lib/cyber_trackr_client/models/api_documentation.rb +238 -0
- data/lib/cyber_trackr_client/models/assessment_procedure.rb +321 -0
- data/lib/cyber_trackr_client/models/cci_detail.rb +391 -0
- data/lib/cyber_trackr_client/models/document_detail.rb +434 -0
- data/lib/cyber_trackr_client/models/document_version.rb +385 -0
- data/lib/cyber_trackr_client/models/error.rb +313 -0
- data/lib/cyber_trackr_client/models/requirement_detail.rb +580 -0
- data/lib/cyber_trackr_client/models/requirement_summary.rb +360 -0
- data/lib/cyber_trackr_client/models/rmf_control_detail.rb +436 -0
- data/lib/cyber_trackr_client/models/rmf_control_list.rb +241 -0
- data/lib/cyber_trackr_client/version.rb +15 -0
- data/lib/cyber_trackr_client.rb +54 -0
- data/lib/cyber_trackr_helper.rb +269 -0
- data/lib/rubocop/cop/cyber_trackr_api/README.md +81 -0
- data/openapi/openapi.yaml +798 -0
- metadata +271 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
=begin
|
2
|
+
#Cyber Trackr API
|
3
|
+
|
4
|
+
#Complete OpenAPI 3.1.1 specification for cyber.trackr.live API. This API provides access to DISA STIGs, SRGs, RMF controls, CCIs, and SCAP data. ## DISA Cybersecurity Ecosystem Hierarchy ``` NIST RMF Controls (high-level policy framework) ↓ (decomposed into atomic, testable statements) CCIs (Control Correlation Identifiers - bridge policy to implementation) ↓ (grouped by technology class into generic requirements) SRGs (Security Requirements Guides - technology class \"what\" to do) ↓ (implemented as vendor-specific \"how\" to do it) STIGs (Security Technical Implementation Guides - vendor/product specific) ↓ (automated versions for scanning tools) SCAP (Security Content Automation Protocol documents) ``` ## Critical Relationships - **RMF Controls** contain assessment procedures that reference **CCIs** - **CCIs** map back to **RMF Controls** and forward to **STIG/SRG requirements** - **SRGs** define generic technology requirements that **STIGs** implement specifically - **V-IDs** can appear in both SRG and corresponding STIG (same requirement, different specificity) - **SV-IDs** are XCCDF rule identifiers with revision tracking across document releases
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
Generator version: 7.14.0
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'cgi'
|
14
|
+
|
15
|
+
module CyberTrackrClient
|
16
|
+
class APIDocumentationApi
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
def initialize(api_client = ApiClient.default)
|
20
|
+
@api_client = api_client
|
21
|
+
end
|
22
|
+
# Get API documentation
|
23
|
+
# Returns self-documenting schema showing all available endpoints
|
24
|
+
# @param [Hash] opts the optional parameters
|
25
|
+
# @return [ApiDocumentation]
|
26
|
+
def get_api_documentation(opts = {})
|
27
|
+
data, _status_code, _headers = get_api_documentation_with_http_info(opts)
|
28
|
+
data
|
29
|
+
end
|
30
|
+
|
31
|
+
# Get API documentation
|
32
|
+
# Returns self-documenting schema showing all available endpoints
|
33
|
+
# @param [Hash] opts the optional parameters
|
34
|
+
# @return [Array<(ApiDocumentation, Integer, Hash)>] ApiDocumentation data, response status code and response headers
|
35
|
+
def get_api_documentation_with_http_info(opts = {})
|
36
|
+
if @api_client.config.debugging
|
37
|
+
@api_client.config.logger.debug 'Calling API: APIDocumentationApi.get_api_documentation ...'
|
38
|
+
end
|
39
|
+
# resource path
|
40
|
+
local_var_path = '/'
|
41
|
+
|
42
|
+
# query parameters
|
43
|
+
query_params = opts[:query_params] || {}
|
44
|
+
|
45
|
+
# header parameters
|
46
|
+
header_params = opts[:header_params] || {}
|
47
|
+
# HTTP header 'Accept' (if needed)
|
48
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
49
|
+
|
50
|
+
# form parameters
|
51
|
+
form_params = opts[:form_params] || {}
|
52
|
+
|
53
|
+
# http body (model)
|
54
|
+
post_body = opts[:debug_body]
|
55
|
+
|
56
|
+
# return_type
|
57
|
+
return_type = opts[:debug_return_type] || 'ApiDocumentation'
|
58
|
+
|
59
|
+
# auth_names
|
60
|
+
auth_names = opts[:debug_auth_names] || []
|
61
|
+
|
62
|
+
new_options = opts.merge(
|
63
|
+
:operation => :"APIDocumentationApi.get_api_documentation",
|
64
|
+
:header_params => header_params,
|
65
|
+
:query_params => query_params,
|
66
|
+
:form_params => form_params,
|
67
|
+
:body => post_body,
|
68
|
+
:auth_names => auth_names,
|
69
|
+
:return_type => return_type
|
70
|
+
)
|
71
|
+
|
72
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
73
|
+
if @api_client.config.debugging
|
74
|
+
@api_client.config.logger.debug "API called: APIDocumentationApi#get_api_documentation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
75
|
+
end
|
76
|
+
return data, status_code, headers
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
=begin
|
2
|
+
#Cyber Trackr API
|
3
|
+
|
4
|
+
#Complete OpenAPI 3.1.1 specification for cyber.trackr.live API. This API provides access to DISA STIGs, SRGs, RMF controls, CCIs, and SCAP data. ## DISA Cybersecurity Ecosystem Hierarchy ``` NIST RMF Controls (high-level policy framework) ↓ (decomposed into atomic, testable statements) CCIs (Control Correlation Identifiers - bridge policy to implementation) ↓ (grouped by technology class into generic requirements) SRGs (Security Requirements Guides - technology class \"what\" to do) ↓ (implemented as vendor-specific \"how\" to do it) STIGs (Security Technical Implementation Guides - vendor/product specific) ↓ (automated versions for scanning tools) SCAP (Security Content Automation Protocol documents) ``` ## Critical Relationships - **RMF Controls** contain assessment procedures that reference **CCIs** - **CCIs** map back to **RMF Controls** and forward to **STIG/SRG requirements** - **SRGs** define generic technology requirements that **STIGs** implement specifically - **V-IDs** can appear in both SRG and corresponding STIG (same requirement, different specificity) - **SV-IDs** are XCCDF rule identifiers with revision tracking across document releases
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
Generator version: 7.14.0
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'cgi'
|
14
|
+
|
15
|
+
module CyberTrackrClient
|
16
|
+
class CCIApi
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
def initialize(api_client = ApiClient.default)
|
20
|
+
@api_client = api_client
|
21
|
+
end
|
22
|
+
# Get CCI details with RMF mapping
|
23
|
+
# Returns complete CCI details including RMF control mapping
|
24
|
+
# @param item [String] Control Correlation Identifier (CCI-XXXXXX format)
|
25
|
+
# @param [Hash] opts the optional parameters
|
26
|
+
# @return [CciDetail]
|
27
|
+
def get_cci_details(item, opts = {})
|
28
|
+
data, _status_code, _headers = get_cci_details_with_http_info(item, opts)
|
29
|
+
data
|
30
|
+
end
|
31
|
+
|
32
|
+
# Get CCI details with RMF mapping
|
33
|
+
# Returns complete CCI details including RMF control mapping
|
34
|
+
# @param item [String] Control Correlation Identifier (CCI-XXXXXX format)
|
35
|
+
# @param [Hash] opts the optional parameters
|
36
|
+
# @return [Array<(CciDetail, Integer, Hash)>] CciDetail data, response status code and response headers
|
37
|
+
def get_cci_details_with_http_info(item, opts = {})
|
38
|
+
if @api_client.config.debugging
|
39
|
+
@api_client.config.logger.debug 'Calling API: CCIApi.get_cci_details ...'
|
40
|
+
end
|
41
|
+
# verify the required parameter 'item' is set
|
42
|
+
if @api_client.config.client_side_validation && item.nil?
|
43
|
+
fail ArgumentError, "Missing the required parameter 'item' when calling CCIApi.get_cci_details"
|
44
|
+
end
|
45
|
+
pattern = Regexp.new(/^CCI-\d{6}$/)
|
46
|
+
if @api_client.config.client_side_validation && item !~ pattern
|
47
|
+
fail ArgumentError, "invalid value for 'item' when calling CCIApi.get_cci_details, must conform to the pattern #{pattern}."
|
48
|
+
end
|
49
|
+
|
50
|
+
# resource path
|
51
|
+
local_var_path = '/cci/{item}'.sub('{' + 'item' + '}', CGI.escape(item.to_s))
|
52
|
+
|
53
|
+
# query parameters
|
54
|
+
query_params = opts[:query_params] || {}
|
55
|
+
|
56
|
+
# header parameters
|
57
|
+
header_params = opts[:header_params] || {}
|
58
|
+
# HTTP header 'Accept' (if needed)
|
59
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
60
|
+
|
61
|
+
# form parameters
|
62
|
+
form_params = opts[:form_params] || {}
|
63
|
+
|
64
|
+
# http body (model)
|
65
|
+
post_body = opts[:debug_body]
|
66
|
+
|
67
|
+
# return_type
|
68
|
+
return_type = opts[:debug_return_type] || 'CciDetail'
|
69
|
+
|
70
|
+
# auth_names
|
71
|
+
auth_names = opts[:debug_auth_names] || []
|
72
|
+
|
73
|
+
new_options = opts.merge(
|
74
|
+
:operation => :"CCIApi.get_cci_details",
|
75
|
+
:header_params => header_params,
|
76
|
+
:query_params => query_params,
|
77
|
+
:form_params => form_params,
|
78
|
+
:body => post_body,
|
79
|
+
:auth_names => auth_names,
|
80
|
+
:return_type => return_type
|
81
|
+
)
|
82
|
+
|
83
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
84
|
+
if @api_client.config.debugging
|
85
|
+
@api_client.config.logger.debug "API called: CCIApi#get_cci_details\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
86
|
+
end
|
87
|
+
return data, status_code, headers
|
88
|
+
end
|
89
|
+
|
90
|
+
# List all Control Correlation Identifiers
|
91
|
+
# Returns complete list of CCIs with their definitions
|
92
|
+
# @param [Hash] opts the optional parameters
|
93
|
+
# @return [Hash<String, String>]
|
94
|
+
def list_ccis(opts = {})
|
95
|
+
data, _status_code, _headers = list_ccis_with_http_info(opts)
|
96
|
+
data
|
97
|
+
end
|
98
|
+
|
99
|
+
# List all Control Correlation Identifiers
|
100
|
+
# Returns complete list of CCIs with their definitions
|
101
|
+
# @param [Hash] opts the optional parameters
|
102
|
+
# @return [Array<(Hash<String, String>, Integer, Hash)>] Hash<String, String> data, response status code and response headers
|
103
|
+
def list_ccis_with_http_info(opts = {})
|
104
|
+
if @api_client.config.debugging
|
105
|
+
@api_client.config.logger.debug 'Calling API: CCIApi.list_ccis ...'
|
106
|
+
end
|
107
|
+
# resource path
|
108
|
+
local_var_path = '/cci'
|
109
|
+
|
110
|
+
# query parameters
|
111
|
+
query_params = opts[:query_params] || {}
|
112
|
+
|
113
|
+
# header parameters
|
114
|
+
header_params = opts[:header_params] || {}
|
115
|
+
# HTTP header 'Accept' (if needed)
|
116
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
117
|
+
|
118
|
+
# form parameters
|
119
|
+
form_params = opts[:form_params] || {}
|
120
|
+
|
121
|
+
# http body (model)
|
122
|
+
post_body = opts[:debug_body]
|
123
|
+
|
124
|
+
# return_type
|
125
|
+
return_type = opts[:debug_return_type] || 'Hash<String, String>'
|
126
|
+
|
127
|
+
# auth_names
|
128
|
+
auth_names = opts[:debug_auth_names] || []
|
129
|
+
|
130
|
+
new_options = opts.merge(
|
131
|
+
:operation => :"CCIApi.list_ccis",
|
132
|
+
:header_params => header_params,
|
133
|
+
:query_params => query_params,
|
134
|
+
:form_params => form_params,
|
135
|
+
:body => post_body,
|
136
|
+
:auth_names => auth_names,
|
137
|
+
:return_type => return_type
|
138
|
+
)
|
139
|
+
|
140
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
141
|
+
if @api_client.config.debugging
|
142
|
+
@api_client.config.logger.debug "API called: CCIApi#list_ccis\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
143
|
+
end
|
144
|
+
return data, status_code, headers
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,276 @@
|
|
1
|
+
=begin
|
2
|
+
#Cyber Trackr API
|
3
|
+
|
4
|
+
#Complete OpenAPI 3.1.1 specification for cyber.trackr.live API. This API provides access to DISA STIGs, SRGs, RMF controls, CCIs, and SCAP data. ## DISA Cybersecurity Ecosystem Hierarchy ``` NIST RMF Controls (high-level policy framework) ↓ (decomposed into atomic, testable statements) CCIs (Control Correlation Identifiers - bridge policy to implementation) ↓ (grouped by technology class into generic requirements) SRGs (Security Requirements Guides - technology class \"what\" to do) ↓ (implemented as vendor-specific \"how\" to do it) STIGs (Security Technical Implementation Guides - vendor/product specific) ↓ (automated versions for scanning tools) SCAP (Security Content Automation Protocol documents) ``` ## Critical Relationships - **RMF Controls** contain assessment procedures that reference **CCIs** - **CCIs** map back to **RMF Controls** and forward to **STIG/SRG requirements** - **SRGs** define generic technology requirements that **STIGs** implement specifically - **V-IDs** can appear in both SRG and corresponding STIG (same requirement, different specificity) - **SV-IDs** are XCCDF rule identifiers with revision tracking across document releases
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
Generator version: 7.14.0
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'cgi'
|
14
|
+
|
15
|
+
module CyberTrackrClient
|
16
|
+
class DocumentsApi
|
17
|
+
attr_accessor :api_client
|
18
|
+
|
19
|
+
def initialize(api_client = ApiClient.default)
|
20
|
+
@api_client = api_client
|
21
|
+
end
|
22
|
+
# Get STIG or SRG document details
|
23
|
+
# Returns complete document with all requirements
|
24
|
+
# @param title [String] Document title exactly as it appears in the list endpoint
|
25
|
+
# @param version [String] Major version number of the document
|
26
|
+
# @param release [String] Release number within the version
|
27
|
+
# @param [Hash] opts the optional parameters
|
28
|
+
# @return [DocumentDetail]
|
29
|
+
def get_document(title, version, release, opts = {})
|
30
|
+
data, _status_code, _headers = get_document_with_http_info(title, version, release, opts)
|
31
|
+
data
|
32
|
+
end
|
33
|
+
|
34
|
+
# Get STIG or SRG document details
|
35
|
+
# Returns complete document with all requirements
|
36
|
+
# @param title [String] Document title exactly as it appears in the list endpoint
|
37
|
+
# @param version [String] Major version number of the document
|
38
|
+
# @param release [String] Release number within the version
|
39
|
+
# @param [Hash] opts the optional parameters
|
40
|
+
# @return [Array<(DocumentDetail, Integer, Hash)>] DocumentDetail data, response status code and response headers
|
41
|
+
def get_document_with_http_info(title, version, release, opts = {})
|
42
|
+
if @api_client.config.debugging
|
43
|
+
@api_client.config.logger.debug 'Calling API: DocumentsApi.get_document ...'
|
44
|
+
end
|
45
|
+
# verify the required parameter 'title' is set
|
46
|
+
if @api_client.config.client_side_validation && title.nil?
|
47
|
+
fail ArgumentError, "Missing the required parameter 'title' when calling DocumentsApi.get_document"
|
48
|
+
end
|
49
|
+
if @api_client.config.client_side_validation && title.to_s.length > 200
|
50
|
+
fail ArgumentError, 'invalid value for "title" when calling DocumentsApi.get_document, the character length must be smaller than or equal to 200.'
|
51
|
+
end
|
52
|
+
|
53
|
+
if @api_client.config.client_side_validation && title.to_s.length < 1
|
54
|
+
fail ArgumentError, 'invalid value for "title" when calling DocumentsApi.get_document, the character length must be greater than or equal to 1.'
|
55
|
+
end
|
56
|
+
|
57
|
+
# verify the required parameter 'version' is set
|
58
|
+
if @api_client.config.client_side_validation && version.nil?
|
59
|
+
fail ArgumentError, "Missing the required parameter 'version' when calling DocumentsApi.get_document"
|
60
|
+
end
|
61
|
+
pattern = Regexp.new(/^\d+$/)
|
62
|
+
if @api_client.config.client_side_validation && version !~ pattern
|
63
|
+
fail ArgumentError, "invalid value for 'version' when calling DocumentsApi.get_document, must conform to the pattern #{pattern}."
|
64
|
+
end
|
65
|
+
|
66
|
+
# verify the required parameter 'release' is set
|
67
|
+
if @api_client.config.client_side_validation && release.nil?
|
68
|
+
fail ArgumentError, "Missing the required parameter 'release' when calling DocumentsApi.get_document"
|
69
|
+
end
|
70
|
+
pattern = Regexp.new(/^\d+(\.\d+)?$/)
|
71
|
+
if @api_client.config.client_side_validation && release !~ pattern
|
72
|
+
fail ArgumentError, "invalid value for 'release' when calling DocumentsApi.get_document, must conform to the pattern #{pattern}."
|
73
|
+
end
|
74
|
+
|
75
|
+
# resource path
|
76
|
+
local_var_path = '/stig/{title}/{version}/{release}'.sub('{' + 'title' + '}', CGI.escape(title.to_s)).sub('{' + 'version' + '}', CGI.escape(version.to_s)).sub('{' + 'release' + '}', CGI.escape(release.to_s))
|
77
|
+
|
78
|
+
# query parameters
|
79
|
+
query_params = opts[:query_params] || {}
|
80
|
+
|
81
|
+
# header parameters
|
82
|
+
header_params = opts[:header_params] || {}
|
83
|
+
# HTTP header 'Accept' (if needed)
|
84
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
85
|
+
|
86
|
+
# form parameters
|
87
|
+
form_params = opts[:form_params] || {}
|
88
|
+
|
89
|
+
# http body (model)
|
90
|
+
post_body = opts[:debug_body]
|
91
|
+
|
92
|
+
# return_type
|
93
|
+
return_type = opts[:debug_return_type] || 'DocumentDetail'
|
94
|
+
|
95
|
+
# auth_names
|
96
|
+
auth_names = opts[:debug_auth_names] || []
|
97
|
+
|
98
|
+
new_options = opts.merge(
|
99
|
+
:operation => :"DocumentsApi.get_document",
|
100
|
+
:header_params => header_params,
|
101
|
+
:query_params => query_params,
|
102
|
+
:form_params => form_params,
|
103
|
+
:body => post_body,
|
104
|
+
:auth_names => auth_names,
|
105
|
+
:return_type => return_type
|
106
|
+
)
|
107
|
+
|
108
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
109
|
+
if @api_client.config.debugging
|
110
|
+
@api_client.config.logger.debug "API called: DocumentsApi#get_document\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
111
|
+
end
|
112
|
+
return data, status_code, headers
|
113
|
+
end
|
114
|
+
|
115
|
+
# Get individual STIG/SRG requirement details
|
116
|
+
# Returns complete details for a specific requirement
|
117
|
+
# @param title [String] Document title exactly as it appears in the list endpoint
|
118
|
+
# @param version [String] Major version number of the document
|
119
|
+
# @param release [String] Release number within the version
|
120
|
+
# @param vuln [String] Vulnerability/Requirement ID (V-XXXXXX format)
|
121
|
+
# @param [Hash] opts the optional parameters
|
122
|
+
# @return [RequirementDetail]
|
123
|
+
def get_requirement(title, version, release, vuln, opts = {})
|
124
|
+
data, _status_code, _headers = get_requirement_with_http_info(title, version, release, vuln, opts)
|
125
|
+
data
|
126
|
+
end
|
127
|
+
|
128
|
+
# Get individual STIG/SRG requirement details
|
129
|
+
# Returns complete details for a specific requirement
|
130
|
+
# @param title [String] Document title exactly as it appears in the list endpoint
|
131
|
+
# @param version [String] Major version number of the document
|
132
|
+
# @param release [String] Release number within the version
|
133
|
+
# @param vuln [String] Vulnerability/Requirement ID (V-XXXXXX format)
|
134
|
+
# @param [Hash] opts the optional parameters
|
135
|
+
# @return [Array<(RequirementDetail, Integer, Hash)>] RequirementDetail data, response status code and response headers
|
136
|
+
def get_requirement_with_http_info(title, version, release, vuln, opts = {})
|
137
|
+
if @api_client.config.debugging
|
138
|
+
@api_client.config.logger.debug 'Calling API: DocumentsApi.get_requirement ...'
|
139
|
+
end
|
140
|
+
# verify the required parameter 'title' is set
|
141
|
+
if @api_client.config.client_side_validation && title.nil?
|
142
|
+
fail ArgumentError, "Missing the required parameter 'title' when calling DocumentsApi.get_requirement"
|
143
|
+
end
|
144
|
+
if @api_client.config.client_side_validation && title.to_s.length > 200
|
145
|
+
fail ArgumentError, 'invalid value for "title" when calling DocumentsApi.get_requirement, the character length must be smaller than or equal to 200.'
|
146
|
+
end
|
147
|
+
|
148
|
+
if @api_client.config.client_side_validation && title.to_s.length < 1
|
149
|
+
fail ArgumentError, 'invalid value for "title" when calling DocumentsApi.get_requirement, the character length must be greater than or equal to 1.'
|
150
|
+
end
|
151
|
+
|
152
|
+
# verify the required parameter 'version' is set
|
153
|
+
if @api_client.config.client_side_validation && version.nil?
|
154
|
+
fail ArgumentError, "Missing the required parameter 'version' when calling DocumentsApi.get_requirement"
|
155
|
+
end
|
156
|
+
pattern = Regexp.new(/^\d+$/)
|
157
|
+
if @api_client.config.client_side_validation && version !~ pattern
|
158
|
+
fail ArgumentError, "invalid value for 'version' when calling DocumentsApi.get_requirement, must conform to the pattern #{pattern}."
|
159
|
+
end
|
160
|
+
|
161
|
+
# verify the required parameter 'release' is set
|
162
|
+
if @api_client.config.client_side_validation && release.nil?
|
163
|
+
fail ArgumentError, "Missing the required parameter 'release' when calling DocumentsApi.get_requirement"
|
164
|
+
end
|
165
|
+
pattern = Regexp.new(/^\d+(\.\d+)?$/)
|
166
|
+
if @api_client.config.client_side_validation && release !~ pattern
|
167
|
+
fail ArgumentError, "invalid value for 'release' when calling DocumentsApi.get_requirement, must conform to the pattern #{pattern}."
|
168
|
+
end
|
169
|
+
|
170
|
+
# verify the required parameter 'vuln' is set
|
171
|
+
if @api_client.config.client_side_validation && vuln.nil?
|
172
|
+
fail ArgumentError, "Missing the required parameter 'vuln' when calling DocumentsApi.get_requirement"
|
173
|
+
end
|
174
|
+
pattern = Regexp.new(/^V-\d{6}$/)
|
175
|
+
if @api_client.config.client_side_validation && vuln !~ pattern
|
176
|
+
fail ArgumentError, "invalid value for 'vuln' when calling DocumentsApi.get_requirement, must conform to the pattern #{pattern}."
|
177
|
+
end
|
178
|
+
|
179
|
+
# resource path
|
180
|
+
local_var_path = '/stig/{title}/{version}/{release}/{vuln}'.sub('{' + 'title' + '}', CGI.escape(title.to_s)).sub('{' + 'version' + '}', CGI.escape(version.to_s)).sub('{' + 'release' + '}', CGI.escape(release.to_s)).sub('{' + 'vuln' + '}', CGI.escape(vuln.to_s))
|
181
|
+
|
182
|
+
# query parameters
|
183
|
+
query_params = opts[:query_params] || {}
|
184
|
+
|
185
|
+
# header parameters
|
186
|
+
header_params = opts[:header_params] || {}
|
187
|
+
# HTTP header 'Accept' (if needed)
|
188
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
189
|
+
|
190
|
+
# form parameters
|
191
|
+
form_params = opts[:form_params] || {}
|
192
|
+
|
193
|
+
# http body (model)
|
194
|
+
post_body = opts[:debug_body]
|
195
|
+
|
196
|
+
# return_type
|
197
|
+
return_type = opts[:debug_return_type] || 'RequirementDetail'
|
198
|
+
|
199
|
+
# auth_names
|
200
|
+
auth_names = opts[:debug_auth_names] || []
|
201
|
+
|
202
|
+
new_options = opts.merge(
|
203
|
+
:operation => :"DocumentsApi.get_requirement",
|
204
|
+
:header_params => header_params,
|
205
|
+
:query_params => query_params,
|
206
|
+
:form_params => form_params,
|
207
|
+
:body => post_body,
|
208
|
+
:auth_names => auth_names,
|
209
|
+
:return_type => return_type
|
210
|
+
)
|
211
|
+
|
212
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
213
|
+
if @api_client.config.debugging
|
214
|
+
@api_client.config.logger.debug "API called: DocumentsApi#get_requirement\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
215
|
+
end
|
216
|
+
return data, status_code, headers
|
217
|
+
end
|
218
|
+
|
219
|
+
# List all STIGs and SRGs
|
220
|
+
# Returns complete list of Security Technical Implementation Guides (STIGs) and Security Requirements Guides (SRGs). **Note**: These are mixed in one endpoint.
|
221
|
+
# @param [Hash] opts the optional parameters
|
222
|
+
# @return [Hash<String, Array<DocumentVersion>>]
|
223
|
+
def list_all_documents(opts = {})
|
224
|
+
data, _status_code, _headers = list_all_documents_with_http_info(opts)
|
225
|
+
data
|
226
|
+
end
|
227
|
+
|
228
|
+
# List all STIGs and SRGs
|
229
|
+
# Returns complete list of Security Technical Implementation Guides (STIGs) and Security Requirements Guides (SRGs). **Note**: These are mixed in one endpoint.
|
230
|
+
# @param [Hash] opts the optional parameters
|
231
|
+
# @return [Array<(Hash<String, Array<DocumentVersion>>, Integer, Hash)>] Hash<String, Array<DocumentVersion>> data, response status code and response headers
|
232
|
+
def list_all_documents_with_http_info(opts = {})
|
233
|
+
if @api_client.config.debugging
|
234
|
+
@api_client.config.logger.debug 'Calling API: DocumentsApi.list_all_documents ...'
|
235
|
+
end
|
236
|
+
# resource path
|
237
|
+
local_var_path = '/stig'
|
238
|
+
|
239
|
+
# query parameters
|
240
|
+
query_params = opts[:query_params] || {}
|
241
|
+
|
242
|
+
# header parameters
|
243
|
+
header_params = opts[:header_params] || {}
|
244
|
+
# HTTP header 'Accept' (if needed)
|
245
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
246
|
+
|
247
|
+
# form parameters
|
248
|
+
form_params = opts[:form_params] || {}
|
249
|
+
|
250
|
+
# http body (model)
|
251
|
+
post_body = opts[:debug_body]
|
252
|
+
|
253
|
+
# return_type
|
254
|
+
return_type = opts[:debug_return_type] || 'Hash<String, Array<DocumentVersion>>'
|
255
|
+
|
256
|
+
# auth_names
|
257
|
+
auth_names = opts[:debug_auth_names] || []
|
258
|
+
|
259
|
+
new_options = opts.merge(
|
260
|
+
:operation => :"DocumentsApi.list_all_documents",
|
261
|
+
:header_params => header_params,
|
262
|
+
:query_params => query_params,
|
263
|
+
:form_params => form_params,
|
264
|
+
:body => post_body,
|
265
|
+
:auth_names => auth_names,
|
266
|
+
:return_type => return_type
|
267
|
+
)
|
268
|
+
|
269
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
270
|
+
if @api_client.config.debugging
|
271
|
+
@api_client.config.logger.debug "API called: DocumentsApi#list_all_documents\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
272
|
+
end
|
273
|
+
return data, status_code, headers
|
274
|
+
end
|
275
|
+
end
|
276
|
+
end
|