apimatic-semgrep-sdk 0.0.1
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/LICENSE +28 -0
- data/README.md +205 -0
- data/bin/console +15 -0
- data/lib/semgrep_web_app/api_helper.rb +10 -0
- data/lib/semgrep_web_app/apis/base_api.rb +67 -0
- data/lib/semgrep_web_app/apis/deployments_service_api.rb +29 -0
- data/lib/semgrep_web_app/apis/findings_service_api.rb +107 -0
- data/lib/semgrep_web_app/apis/misc_service_api.rb +47 -0
- data/lib/semgrep_web_app/apis/policies_service_api.rb +97 -0
- data/lib/semgrep_web_app/apis/projects_service_api.rb +238 -0
- data/lib/semgrep_web_app/apis/scans_service_api.rb +65 -0
- data/lib/semgrep_web_app/apis/secrets_service_api.rb +55 -0
- data/lib/semgrep_web_app/apis/supply_chain_service_api.rb +154 -0
- data/lib/semgrep_web_app/apis/ticketing_service_api.rb +144 -0
- data/lib/semgrep_web_app/apis/triage_service_api.rb +43 -0
- data/lib/semgrep_web_app/client.rb +136 -0
- data/lib/semgrep_web_app/configuration.rb +178 -0
- data/lib/semgrep_web_app/exceptions/api_exception.rb +21 -0
- data/lib/semgrep_web_app/http/api_response.rb +19 -0
- data/lib/semgrep_web_app/http/auth/semgrep_admin_jwt.rb +53 -0
- data/lib/semgrep_web_app/http/auth/semgrep_jwt.rb +53 -0
- data/lib/semgrep_web_app/http/auth/semgrep_web_token.rb +53 -0
- data/lib/semgrep_web_app/http/http_call_back.rb +10 -0
- data/lib/semgrep_web_app/http/http_method_enum.rb +10 -0
- data/lib/semgrep_web_app/http/http_request.rb +10 -0
- data/lib/semgrep_web_app/http/http_response.rb +10 -0
- data/lib/semgrep_web_app/http/proxy_settings.rb +22 -0
- data/lib/semgrep_web_app/logging/configuration/api_logging_configuration.rb +186 -0
- data/lib/semgrep_web_app/logging/sdk_logger.rb +17 -0
- data/lib/semgrep_web_app/models/add_project_tags_request.rb +96 -0
- data/lib/semgrep_web_app/models/add_project_tags_response.rb +73 -0
- data/lib/semgrep_web_app/models/ai_powered_scan_finding.rb +426 -0
- data/lib/semgrep_web_app/models/ai_sast_findings.rb +85 -0
- data/lib/semgrep_web_app/models/api_v1_deployments_findings_response.rb +87 -0
- data/lib/semgrep_web_app/models/assistant.rb +127 -0
- data/lib/semgrep_web_app/models/autofix.rb +98 -0
- data/lib/semgrep_web_app/models/autotriage.rb +98 -0
- data/lib/semgrep_web_app/models/autotriage_verdict.rb +36 -0
- data/lib/semgrep_web_app/models/autotriage_verdict2.rb +38 -0
- data/lib/semgrep_web_app/models/base_model.rb +110 -0
- data/lib/semgrep_web_app/models/bulk_triage_request.rb +393 -0
- data/lib/semgrep_web_app/models/bulk_triage_response.rb +83 -0
- data/lib/semgrep_web_app/models/click_to_fix_failure.rb +95 -0
- data/lib/semgrep_web_app/models/click_to_fix_pr.rb +95 -0
- data/lib/semgrep_web_app/models/click_to_fix_pr_state.rb +38 -0
- data/lib/semgrep_web_app/models/component.rb +95 -0
- data/lib/semgrep_web_app/models/confidence.rb +42 -0
- data/lib/semgrep_web_app/models/confidence1.rb +40 -0
- data/lib/semgrep_web_app/models/confidence2.rb +40 -0
- data/lib/semgrep_web_app/models/confidence3.rb +40 -0
- data/lib/semgrep_web_app/models/confidence7.rb +41 -0
- data/lib/semgrep_web_app/models/confidence8.rb +42 -0
- data/lib/semgrep_web_app/models/create_sbom_export_request.rb +176 -0
- data/lib/semgrep_web_app/models/create_sbom_export_response.rb +74 -0
- data/lib/semgrep_web_app/models/create_ticket_request.rb +393 -0
- data/lib/semgrep_web_app/models/cyclonedx_version.rb +48 -0
- data/lib/semgrep_web_app/models/delete_project_response.rb +74 -0
- data/lib/semgrep_web_app/models/delete_project_tags_response.rb +73 -0
- data/lib/semgrep_web_app/models/deployment.rb +102 -0
- data/lib/semgrep_web_app/models/ecosystem.rb +91 -0
- data/lib/semgrep_web_app/models/ecosystem1.rb +92 -0
- data/lib/semgrep_web_app/models/ecosystem2.rb +76 -0
- data/lib/semgrep_web_app/models/endpoint_reference.rb +72 -0
- data/lib/semgrep_web_app/models/epss_probability.rb +45 -0
- data/lib/semgrep_web_app/models/epss_score.rb +95 -0
- data/lib/semgrep_web_app/models/exposures.rb +50 -0
- data/lib/semgrep_web_app/models/exposures2.rb +51 -0
- data/lib/semgrep_web_app/models/external_ticket.rb +116 -0
- data/lib/semgrep_web_app/models/finding_location.rb +126 -0
- data/lib/semgrep_web_app/models/finding_repository.rb +95 -0
- data/lib/semgrep_web_app/models/finding_rule.rb +158 -0
- data/lib/semgrep_web_app/models/fix_recommendation.rb +95 -0
- data/lib/semgrep_web_app/models/float_range.rb +85 -0
- data/lib/semgrep_web_app/models/format.rb +27 -0
- data/lib/semgrep_web_app/models/found_dependency.rb +128 -0
- data/lib/semgrep_web_app/models/get_project_response.rb +73 -0
- data/lib/semgrep_web_app/models/get_sbom_export_response.rb +100 -0
- data/lib/semgrep_web_app/models/guidance.rb +98 -0
- data/lib/semgrep_web_app/models/issue_type.rb +40 -0
- data/lib/semgrep_web_app/models/issue_type1.rb +40 -0
- data/lib/semgrep_web_app/models/issue_type2.rb +42 -0
- data/lib/semgrep_web_app/models/license_policy_settings.rb +42 -0
- data/lib/semgrep_web_app/models/link_ticket_request.rb +93 -0
- data/lib/semgrep_web_app/models/list_dependencies_request.rb +108 -0
- data/lib/semgrep_web_app/models/list_dependencies_response.rb +102 -0
- data/lib/semgrep_web_app/models/list_findings_response.rb +100 -0
- data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_request.rb +118 -0
- data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_response.rb +103 -0
- data/lib/semgrep_web_app/models/list_project.rb +145 -0
- data/lib/semgrep_web_app/models/list_projects_response.rb +82 -0
- data/lib/semgrep_web_app/models/list_repositories_for_dependencies_request.rb +107 -0
- data/lib/semgrep_web_app/models/list_repositories_for_dependencies_response.rb +103 -0
- data/lib/semgrep_web_app/models/managed_scan_config.rb +85 -0
- data/lib/semgrep_web_app/models/metadata_component_type.rb +101 -0
- data/lib/semgrep_web_app/models/mode.rb +48 -0
- data/lib/semgrep_web_app/models/new_triage_reason.rb +48 -0
- data/lib/semgrep_web_app/models/new_triage_state.rb +48 -0
- data/lib/semgrep_web_app/models/policy.rb +118 -0
- data/lib/semgrep_web_app/models/policy_mode.rb +48 -0
- data/lib/semgrep_web_app/models/policy_mode1.rb +40 -0
- data/lib/semgrep_web_app/models/policy_mode3.rb +51 -0
- data/lib/semgrep_web_app/models/policy_reference.rb +105 -0
- data/lib/semgrep_web_app/models/product_type.rb +38 -0
- data/lib/semgrep_web_app/models/products.rb +46 -0
- data/lib/semgrep_web_app/models/project.rb +157 -0
- data/lib/semgrep_web_app/models/protos_ai_v1_autotriage.rb +154 -0
- data/lib/semgrep_web_app/models/protos_ai_v1_autotriage_feedback.rb +98 -0
- data/lib/semgrep_web_app/models/protos_common_v1_review_comment.rb +90 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response.rb +123 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_failed.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_skipped.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_success.rb +106 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_delete_ticket_response.rb +76 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_diff_scan.rb +75 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_full_scan.rb +75 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_bootstrap_sms_vpc_response.rb +130 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response.rb +168 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response_scan_meta.rb +256 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_link_ticket_response.rb +119 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_deployments_response.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_policies_response.rb +84 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_policy_rules_response.rb +104 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_secrets_path_response.rb +104 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_search_scans_response.rb +94 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_unlink_ticket_response.rb +77 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_update_policy_response.rb +88 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_code_location.rb +144 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_dependency.rb +87 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_dependency_filter.rb +199 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_found_dependency.rb +174 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_lockfile_dependency_summary.rb +87 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_package_filter.rb +124 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_repository_dependency_summary.rb +111 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_format_version.rb +109 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_contact.rb +95 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_supplier.rb +95 -0
- data/lib/semgrep_web_app/models/protos_scan_v1_scan_findings_counts.rb +105 -0
- data/lib/semgrep_web_app/models/protos_scan_v1_scan_public.rb +228 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_historical_info.rb +116 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding.rb +320 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding_repository.rb +121 -0
- data/lib/semgrep_web_app/models/protos_ticketing_v1_external_ticket.rb +106 -0
- data/lib/semgrep_web_app/models/rating.rb +38 -0
- data/lib/semgrep_web_app/models/reachability.rb +48 -0
- data/lib/semgrep_web_app/models/repository_visibility.rb +40 -0
- data/lib/semgrep_web_app/models/review_comment.rb +100 -0
- data/lib/semgrep_web_app/models/risk.rb +40 -0
- data/lib/semgrep_web_app/models/rule.rb +292 -0
- data/lib/semgrep_web_app/models/rule_explanation.rb +98 -0
- data/lib/semgrep_web_app/models/sast_finding.rb +426 -0
- data/lib/semgrep_web_app/models/sast_findings.rb +84 -0
- data/lib/semgrep_web_app/models/sbom_output_format.rb +37 -0
- data/lib/semgrep_web_app/models/sca_finding.rb +458 -0
- data/lib/semgrep_web_app/models/sca_findings.rb +85 -0
- data/lib/semgrep_web_app/models/scm_type.rb +70 -0
- data/lib/semgrep_web_app/models/search_scans_request.rb +202 -0
- data/lib/semgrep_web_app/models/severities.rb +44 -0
- data/lib/semgrep_web_app/models/severities2.rb +45 -0
- data/lib/semgrep_web_app/models/severity.rb +46 -0
- data/lib/semgrep_web_app/models/severity1.rb +45 -0
- data/lib/semgrep_web_app/models/severity4.rb +46 -0
- data/lib/semgrep_web_app/models/severity5.rb +48 -0
- data/lib/semgrep_web_app/models/source.rb +42 -0
- data/lib/semgrep_web_app/models/state.rb +42 -0
- data/lib/semgrep_web_app/models/status.rb +55 -0
- data/lib/semgrep_web_app/models/status1.rb +52 -0
- data/lib/semgrep_web_app/models/status3.rb +44 -0
- data/lib/semgrep_web_app/models/status6.rb +55 -0
- data/lib/semgrep_web_app/models/status7.rb +59 -0
- data/lib/semgrep_web_app/models/status8.rb +61 -0
- data/lib/semgrep_web_app/models/status9.rb +55 -0
- data/lib/semgrep_web_app/models/statuses.rb +63 -0
- data/lib/semgrep_web_app/models/toggle_project_managed_scan_request.rb +108 -0
- data/lib/semgrep_web_app/models/toggle_project_managed_scan_response.rb +73 -0
- data/lib/semgrep_web_app/models/transitivities.rb +40 -0
- data/lib/semgrep_web_app/models/transitivities2.rb +42 -0
- data/lib/semgrep_web_app/models/transitivity.rb +41 -0
- data/lib/semgrep_web_app/models/transitivity1.rb +42 -0
- data/lib/semgrep_web_app/models/transitivity2.rb +40 -0
- data/lib/semgrep_web_app/models/triage_reason.rb +48 -0
- data/lib/semgrep_web_app/models/triage_reasons.rb +48 -0
- data/lib/semgrep_web_app/models/triage_reasons2.rb +50 -0
- data/lib/semgrep_web_app/models/triage_state.rb +54 -0
- data/lib/semgrep_web_app/models/unlink_ticket_request.rb +83 -0
- data/lib/semgrep_web_app/models/update_policy_request.rb +113 -0
- data/lib/semgrep_web_app/models/update_project_request.rb +121 -0
- data/lib/semgrep_web_app/models/update_project_response.rb +73 -0
- data/lib/semgrep_web_app/models/usage.rb +99 -0
- data/lib/semgrep_web_app/models/validation_state.rb +45 -0
- data/lib/semgrep_web_app/models/validation_state2.rb +47 -0
- data/lib/semgrep_web_app/models/validation_state3.rb +48 -0
- data/lib/semgrep_web_app/models/verdict.rb +41 -0
- data/lib/semgrep_web_app/models/verdict1.rb +38 -0
- data/lib/semgrep_web_app/models/visibility.rb +42 -0
- data/lib/semgrep_web_app/utilities/date_time_helper.rb +11 -0
- data/lib/semgrep_web_app/utilities/file_wrapper.rb +28 -0
- data/lib/semgrep_web_app/utilities/union_type_lookup.rb +34 -0
- data/lib/semgrep_web_app.rb +245 -0
- metadata +283 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# Location of the record in a file, as reported by Semgrep. If null, then the
|
|
8
|
+
# information does not exist or lacks integrity (older or broken scans)
|
|
9
|
+
class FindingLocation < BaseModel
|
|
10
|
+
SKIP = Object.new
|
|
11
|
+
private_constant :SKIP
|
|
12
|
+
|
|
13
|
+
# Column at which the target starts
|
|
14
|
+
# @return [Integer]
|
|
15
|
+
attr_accessor :column
|
|
16
|
+
|
|
17
|
+
# Column at which the target ends
|
|
18
|
+
# @return [Integer]
|
|
19
|
+
attr_accessor :end_column
|
|
20
|
+
|
|
21
|
+
# Line at which the target ends
|
|
22
|
+
# @return [Integer]
|
|
23
|
+
attr_accessor :end_line
|
|
24
|
+
|
|
25
|
+
# File path of the relevant line and column numbers
|
|
26
|
+
# @return [String]
|
|
27
|
+
attr_accessor :file_path
|
|
28
|
+
|
|
29
|
+
# Line at which the target starts
|
|
30
|
+
# @return [Integer]
|
|
31
|
+
attr_accessor :line
|
|
32
|
+
|
|
33
|
+
# A mapping from model property names to API property names.
|
|
34
|
+
def self.names
|
|
35
|
+
@_hash = {} if @_hash.nil?
|
|
36
|
+
@_hash['column'] = 'column'
|
|
37
|
+
@_hash['end_column'] = 'end_column'
|
|
38
|
+
@_hash['end_line'] = 'end_line'
|
|
39
|
+
@_hash['file_path'] = 'file_path'
|
|
40
|
+
@_hash['line'] = 'line'
|
|
41
|
+
@_hash
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# An array for optional fields
|
|
45
|
+
def self.optionals
|
|
46
|
+
%w[
|
|
47
|
+
column
|
|
48
|
+
end_column
|
|
49
|
+
end_line
|
|
50
|
+
file_path
|
|
51
|
+
line
|
|
52
|
+
]
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# An array for nullable fields
|
|
56
|
+
def self.nullables
|
|
57
|
+
[]
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def initialize(column: SKIP, end_column: SKIP, end_line: SKIP,
|
|
61
|
+
file_path: SKIP, line: SKIP, additional_properties: nil)
|
|
62
|
+
# Add additional model properties to the instance
|
|
63
|
+
additional_properties = {} if additional_properties.nil?
|
|
64
|
+
|
|
65
|
+
@column = column unless column == SKIP
|
|
66
|
+
@end_column = end_column unless end_column == SKIP
|
|
67
|
+
@end_line = end_line unless end_line == SKIP
|
|
68
|
+
@file_path = file_path unless file_path == SKIP
|
|
69
|
+
@line = line unless line == SKIP
|
|
70
|
+
@additional_properties = additional_properties
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Creates an instance of the object from a hash.
|
|
74
|
+
def self.from_hash(hash)
|
|
75
|
+
return nil unless hash
|
|
76
|
+
|
|
77
|
+
# Extract variables from the hash.
|
|
78
|
+
column = hash.key?('column') ? hash['column'] : SKIP
|
|
79
|
+
end_column = hash.key?('end_column') ? hash['end_column'] : SKIP
|
|
80
|
+
end_line = hash.key?('end_line') ? hash['end_line'] : SKIP
|
|
81
|
+
file_path = hash.key?('file_path') ? hash['file_path'] : SKIP
|
|
82
|
+
line = hash.key?('line') ? hash['line'] : SKIP
|
|
83
|
+
|
|
84
|
+
# Create a new hash for additional properties, removing known properties.
|
|
85
|
+
new_hash = hash.reject { |k, _| names.value?(k) }
|
|
86
|
+
|
|
87
|
+
additional_properties = APIHelper.get_additional_properties(
|
|
88
|
+
new_hash, proc { |value| value }
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Create object from extracted values.
|
|
92
|
+
FindingLocation.new(column: column,
|
|
93
|
+
end_column: end_column,
|
|
94
|
+
end_line: end_line,
|
|
95
|
+
file_path: file_path,
|
|
96
|
+
line: line,
|
|
97
|
+
additional_properties: additional_properties)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Validates an instance of the object from a given value.
|
|
101
|
+
# @param [FindingLocation | Hash] The value against the validation is performed.
|
|
102
|
+
def self.validate(value)
|
|
103
|
+
return true if value.instance_of? self
|
|
104
|
+
|
|
105
|
+
return false unless value.instance_of? Hash
|
|
106
|
+
|
|
107
|
+
true
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Provides a human-readable string representation of the object.
|
|
111
|
+
def to_s
|
|
112
|
+
class_name = self.class.name.split('::').last
|
|
113
|
+
"<#{class_name} column: #{@column}, end_column: #{@end_column}, end_line: #{@end_line},"\
|
|
114
|
+
" file_path: #{@file_path}, line: #{@line}, additional_properties:"\
|
|
115
|
+
" #{@additional_properties}>"
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
119
|
+
def inspect
|
|
120
|
+
class_name = self.class.name.split('::').last
|
|
121
|
+
"<#{class_name} column: #{@column.inspect}, end_column: #{@end_column.inspect}, end_line:"\
|
|
122
|
+
" #{@end_line.inspect}, file_path: #{@file_path.inspect}, line: #{@line.inspect},"\
|
|
123
|
+
" additional_properties: #{@additional_properties}>"
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# Which repository this finding was identified in
|
|
8
|
+
class FindingRepository < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# The repository or named project that the finding is associated with
|
|
13
|
+
# @return [String]
|
|
14
|
+
attr_accessor :name
|
|
15
|
+
|
|
16
|
+
# The source URL from which this repository last scanned
|
|
17
|
+
# @return [String]
|
|
18
|
+
attr_accessor :url
|
|
19
|
+
|
|
20
|
+
# A mapping from model property names to API property names.
|
|
21
|
+
def self.names
|
|
22
|
+
@_hash = {} if @_hash.nil?
|
|
23
|
+
@_hash['name'] = 'name'
|
|
24
|
+
@_hash['url'] = 'url'
|
|
25
|
+
@_hash
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# An array for optional fields
|
|
29
|
+
def self.optionals
|
|
30
|
+
%w[
|
|
31
|
+
name
|
|
32
|
+
url
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for nullable fields
|
|
37
|
+
def self.nullables
|
|
38
|
+
[]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def initialize(name: SKIP, url: SKIP, additional_properties: nil)
|
|
42
|
+
# Add additional model properties to the instance
|
|
43
|
+
additional_properties = {} if additional_properties.nil?
|
|
44
|
+
|
|
45
|
+
@name = name unless name == SKIP
|
|
46
|
+
@url = url unless url == SKIP
|
|
47
|
+
@additional_properties = additional_properties
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Creates an instance of the object from a hash.
|
|
51
|
+
def self.from_hash(hash)
|
|
52
|
+
return nil unless hash
|
|
53
|
+
|
|
54
|
+
# Extract variables from the hash.
|
|
55
|
+
name = hash.key?('name') ? hash['name'] : SKIP
|
|
56
|
+
url = hash.key?('url') ? hash['url'] : SKIP
|
|
57
|
+
|
|
58
|
+
# Create a new hash for additional properties, removing known properties.
|
|
59
|
+
new_hash = hash.reject { |k, _| names.value?(k) }
|
|
60
|
+
|
|
61
|
+
additional_properties = APIHelper.get_additional_properties(
|
|
62
|
+
new_hash, proc { |value| value }
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Create object from extracted values.
|
|
66
|
+
FindingRepository.new(name: name,
|
|
67
|
+
url: url,
|
|
68
|
+
additional_properties: additional_properties)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Validates an instance of the object from a given value.
|
|
72
|
+
# @param [FindingRepository | Hash] The value against the validation is performed.
|
|
73
|
+
def self.validate(value)
|
|
74
|
+
return true if value.instance_of? self
|
|
75
|
+
|
|
76
|
+
return false unless value.instance_of? Hash
|
|
77
|
+
|
|
78
|
+
true
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Provides a human-readable string representation of the object.
|
|
82
|
+
def to_s
|
|
83
|
+
class_name = self.class.name.split('::').last
|
|
84
|
+
"<#{class_name} name: #{@name}, url: #{@url}, additional_properties:"\
|
|
85
|
+
" #{@additional_properties}>"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
89
|
+
def inspect
|
|
90
|
+
class_name = self.class.name.split('::').last
|
|
91
|
+
"<#{class_name} name: #{@name.inspect}, url: #{@url.inspect}, additional_properties:"\
|
|
92
|
+
" #{@additional_properties}>"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# Rule that applies to this finding
|
|
8
|
+
class FindingRule < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# Category the rule is associated with
|
|
13
|
+
# @return [String]
|
|
14
|
+
attr_accessor :category
|
|
15
|
+
|
|
16
|
+
# Confidence level of the rule
|
|
17
|
+
# @return [Confidence2]
|
|
18
|
+
attr_accessor :confidence
|
|
19
|
+
|
|
20
|
+
# CWE names associated with the rule
|
|
21
|
+
# @return [Array[String]]
|
|
22
|
+
attr_accessor :cwe_names
|
|
23
|
+
|
|
24
|
+
# Rule message
|
|
25
|
+
# @return [String]
|
|
26
|
+
attr_accessor :message
|
|
27
|
+
|
|
28
|
+
# Name of the rule
|
|
29
|
+
# @return [String]
|
|
30
|
+
attr_accessor :name
|
|
31
|
+
|
|
32
|
+
# OWASP names associated with the rule
|
|
33
|
+
# @return [Array[String]]
|
|
34
|
+
attr_accessor :owasp_names
|
|
35
|
+
|
|
36
|
+
# Subcategories of the rule
|
|
37
|
+
# @return [Array[String]]
|
|
38
|
+
attr_accessor :subcategories
|
|
39
|
+
|
|
40
|
+
# Vulnerability classes the rule is associated with
|
|
41
|
+
# @return [Array[String]]
|
|
42
|
+
attr_accessor :vulnerability_classes
|
|
43
|
+
|
|
44
|
+
# A mapping from model property names to API property names.
|
|
45
|
+
def self.names
|
|
46
|
+
@_hash = {} if @_hash.nil?
|
|
47
|
+
@_hash['category'] = 'category'
|
|
48
|
+
@_hash['confidence'] = 'confidence'
|
|
49
|
+
@_hash['cwe_names'] = 'cwe_names'
|
|
50
|
+
@_hash['message'] = 'message'
|
|
51
|
+
@_hash['name'] = 'name'
|
|
52
|
+
@_hash['owasp_names'] = 'owasp_names'
|
|
53
|
+
@_hash['subcategories'] = 'subcategories'
|
|
54
|
+
@_hash['vulnerability_classes'] = 'vulnerability_classes'
|
|
55
|
+
@_hash
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# An array for optional fields
|
|
59
|
+
def self.optionals
|
|
60
|
+
%w[
|
|
61
|
+
category
|
|
62
|
+
confidence
|
|
63
|
+
cwe_names
|
|
64
|
+
message
|
|
65
|
+
name
|
|
66
|
+
owasp_names
|
|
67
|
+
subcategories
|
|
68
|
+
vulnerability_classes
|
|
69
|
+
]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# An array for nullable fields
|
|
73
|
+
def self.nullables
|
|
74
|
+
[]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def initialize(category: SKIP, confidence: SKIP, cwe_names: SKIP,
|
|
78
|
+
message: SKIP, name: SKIP, owasp_names: SKIP,
|
|
79
|
+
subcategories: SKIP, vulnerability_classes: SKIP,
|
|
80
|
+
additional_properties: nil)
|
|
81
|
+
# Add additional model properties to the instance
|
|
82
|
+
additional_properties = {} if additional_properties.nil?
|
|
83
|
+
|
|
84
|
+
@category = category unless category == SKIP
|
|
85
|
+
@confidence = confidence unless confidence == SKIP
|
|
86
|
+
@cwe_names = cwe_names unless cwe_names == SKIP
|
|
87
|
+
@message = message unless message == SKIP
|
|
88
|
+
@name = name unless name == SKIP
|
|
89
|
+
@owasp_names = owasp_names unless owasp_names == SKIP
|
|
90
|
+
@subcategories = subcategories unless subcategories == SKIP
|
|
91
|
+
@vulnerability_classes = vulnerability_classes unless vulnerability_classes == SKIP
|
|
92
|
+
@additional_properties = additional_properties
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Creates an instance of the object from a hash.
|
|
96
|
+
def self.from_hash(hash)
|
|
97
|
+
return nil unless hash
|
|
98
|
+
|
|
99
|
+
# Extract variables from the hash.
|
|
100
|
+
category = hash.key?('category') ? hash['category'] : SKIP
|
|
101
|
+
confidence = hash.key?('confidence') ? hash['confidence'] : SKIP
|
|
102
|
+
cwe_names = hash.key?('cwe_names') ? hash['cwe_names'] : SKIP
|
|
103
|
+
message = hash.key?('message') ? hash['message'] : SKIP
|
|
104
|
+
name = hash.key?('name') ? hash['name'] : SKIP
|
|
105
|
+
owasp_names = hash.key?('owasp_names') ? hash['owasp_names'] : SKIP
|
|
106
|
+
subcategories = hash.key?('subcategories') ? hash['subcategories'] : SKIP
|
|
107
|
+
vulnerability_classes =
|
|
108
|
+
hash.key?('vulnerability_classes') ? hash['vulnerability_classes'] : SKIP
|
|
109
|
+
|
|
110
|
+
# Create a new hash for additional properties, removing known properties.
|
|
111
|
+
new_hash = hash.reject { |k, _| names.value?(k) }
|
|
112
|
+
|
|
113
|
+
additional_properties = APIHelper.get_additional_properties(
|
|
114
|
+
new_hash, proc { |value| value }
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# Create object from extracted values.
|
|
118
|
+
FindingRule.new(category: category,
|
|
119
|
+
confidence: confidence,
|
|
120
|
+
cwe_names: cwe_names,
|
|
121
|
+
message: message,
|
|
122
|
+
name: name,
|
|
123
|
+
owasp_names: owasp_names,
|
|
124
|
+
subcategories: subcategories,
|
|
125
|
+
vulnerability_classes: vulnerability_classes,
|
|
126
|
+
additional_properties: additional_properties)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# Validates an instance of the object from a given value.
|
|
130
|
+
# @param [FindingRule | Hash] The value against the validation is performed.
|
|
131
|
+
def self.validate(value)
|
|
132
|
+
return true if value.instance_of? self
|
|
133
|
+
|
|
134
|
+
return false unless value.instance_of? Hash
|
|
135
|
+
|
|
136
|
+
true
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Provides a human-readable string representation of the object.
|
|
140
|
+
def to_s
|
|
141
|
+
class_name = self.class.name.split('::').last
|
|
142
|
+
"<#{class_name} category: #{@category}, confidence: #{@confidence}, cwe_names:"\
|
|
143
|
+
" #{@cwe_names}, message: #{@message}, name: #{@name}, owasp_names: #{@owasp_names},"\
|
|
144
|
+
" subcategories: #{@subcategories}, vulnerability_classes: #{@vulnerability_classes},"\
|
|
145
|
+
" additional_properties: #{@additional_properties}>"
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
149
|
+
def inspect
|
|
150
|
+
class_name = self.class.name.split('::').last
|
|
151
|
+
"<#{class_name} category: #{@category.inspect}, confidence: #{@confidence.inspect},"\
|
|
152
|
+
" cwe_names: #{@cwe_names.inspect}, message: #{@message.inspect}, name: #{@name.inspect},"\
|
|
153
|
+
" owasp_names: #{@owasp_names.inspect}, subcategories: #{@subcategories.inspect},"\
|
|
154
|
+
" vulnerability_classes: #{@vulnerability_classes.inspect}, additional_properties:"\
|
|
155
|
+
" #{@additional_properties}>"
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# Recommendation for fixing the vulnerability
|
|
8
|
+
class FixRecommendation < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# The package for which a fix is recommended
|
|
13
|
+
# @return [String]
|
|
14
|
+
attr_accessor :package
|
|
15
|
+
|
|
16
|
+
# The recommended version of the package
|
|
17
|
+
# @return [String]
|
|
18
|
+
attr_accessor :version
|
|
19
|
+
|
|
20
|
+
# A mapping from model property names to API property names.
|
|
21
|
+
def self.names
|
|
22
|
+
@_hash = {} if @_hash.nil?
|
|
23
|
+
@_hash['package'] = 'package'
|
|
24
|
+
@_hash['version'] = 'version'
|
|
25
|
+
@_hash
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# An array for optional fields
|
|
29
|
+
def self.optionals
|
|
30
|
+
%w[
|
|
31
|
+
package
|
|
32
|
+
version
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for nullable fields
|
|
37
|
+
def self.nullables
|
|
38
|
+
[]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def initialize(package: SKIP, version: SKIP, additional_properties: nil)
|
|
42
|
+
# Add additional model properties to the instance
|
|
43
|
+
additional_properties = {} if additional_properties.nil?
|
|
44
|
+
|
|
45
|
+
@package = package unless package == SKIP
|
|
46
|
+
@version = version unless version == SKIP
|
|
47
|
+
@additional_properties = additional_properties
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Creates an instance of the object from a hash.
|
|
51
|
+
def self.from_hash(hash)
|
|
52
|
+
return nil unless hash
|
|
53
|
+
|
|
54
|
+
# Extract variables from the hash.
|
|
55
|
+
package = hash.key?('package') ? hash['package'] : SKIP
|
|
56
|
+
version = hash.key?('version') ? hash['version'] : SKIP
|
|
57
|
+
|
|
58
|
+
# Create a new hash for additional properties, removing known properties.
|
|
59
|
+
new_hash = hash.reject { |k, _| names.value?(k) }
|
|
60
|
+
|
|
61
|
+
additional_properties = APIHelper.get_additional_properties(
|
|
62
|
+
new_hash, proc { |value| value }
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Create object from extracted values.
|
|
66
|
+
FixRecommendation.new(package: package,
|
|
67
|
+
version: version,
|
|
68
|
+
additional_properties: additional_properties)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Validates an instance of the object from a given value.
|
|
72
|
+
# @param [FixRecommendation | Hash] The value against the validation is performed.
|
|
73
|
+
def self.validate(value)
|
|
74
|
+
return true if value.instance_of? self
|
|
75
|
+
|
|
76
|
+
return false unless value.instance_of? Hash
|
|
77
|
+
|
|
78
|
+
true
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Provides a human-readable string representation of the object.
|
|
82
|
+
def to_s
|
|
83
|
+
class_name = self.class.name.split('::').last
|
|
84
|
+
"<#{class_name} package: #{@package}, version: #{@version}, additional_properties:"\
|
|
85
|
+
" #{@additional_properties}>"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
89
|
+
def inspect
|
|
90
|
+
class_name = self.class.name.split('::').last
|
|
91
|
+
"<#{class_name} package: #{@package.inspect}, version: #{@version.inspect},"\
|
|
92
|
+
" additional_properties: #{@additional_properties}>"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# FloatRange Model.
|
|
8
|
+
class FloatRange < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# End of the range
|
|
13
|
+
# @return [Float]
|
|
14
|
+
attr_accessor :max
|
|
15
|
+
|
|
16
|
+
# Start of the range
|
|
17
|
+
# @return [Float]
|
|
18
|
+
attr_accessor :min
|
|
19
|
+
|
|
20
|
+
# A mapping from model property names to API property names.
|
|
21
|
+
def self.names
|
|
22
|
+
@_hash = {} if @_hash.nil?
|
|
23
|
+
@_hash['max'] = 'max'
|
|
24
|
+
@_hash['min'] = 'min'
|
|
25
|
+
@_hash
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# An array for optional fields
|
|
29
|
+
def self.optionals
|
|
30
|
+
%w[
|
|
31
|
+
max
|
|
32
|
+
min
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for nullable fields
|
|
37
|
+
def self.nullables
|
|
38
|
+
[]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def initialize(max: SKIP, min: SKIP, additional_properties: nil)
|
|
42
|
+
# Add additional model properties to the instance
|
|
43
|
+
additional_properties = {} if additional_properties.nil?
|
|
44
|
+
|
|
45
|
+
@max = max unless max == SKIP
|
|
46
|
+
@min = min unless min == SKIP
|
|
47
|
+
@additional_properties = additional_properties
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Creates an instance of the object from a hash.
|
|
51
|
+
def self.from_hash(hash)
|
|
52
|
+
return nil unless hash
|
|
53
|
+
|
|
54
|
+
# Extract variables from the hash.
|
|
55
|
+
max = hash.key?('max') ? hash['max'] : SKIP
|
|
56
|
+
min = hash.key?('min') ? hash['min'] : SKIP
|
|
57
|
+
|
|
58
|
+
# Create a new hash for additional properties, removing known properties.
|
|
59
|
+
new_hash = hash.reject { |k, _| names.value?(k) }
|
|
60
|
+
|
|
61
|
+
additional_properties = APIHelper.get_additional_properties(
|
|
62
|
+
new_hash, proc { |value| value }
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Create object from extracted values.
|
|
66
|
+
FloatRange.new(max: max,
|
|
67
|
+
min: min,
|
|
68
|
+
additional_properties: additional_properties)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Provides a human-readable string representation of the object.
|
|
72
|
+
def to_s
|
|
73
|
+
class_name = self.class.name.split('::').last
|
|
74
|
+
"<#{class_name} max: #{@max}, min: #{@min}, additional_properties:"\
|
|
75
|
+
" #{@additional_properties}>"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
79
|
+
def inspect
|
|
80
|
+
class_name = self.class.name.split('::').last
|
|
81
|
+
"<#{class_name} max: #{@max.inspect}, min: #{@min.inspect}, additional_properties:"\
|
|
82
|
+
" #{@additional_properties}>"
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module SemgrepWebApp
|
|
7
|
+
# Format for the SBOM export. | value | description |
|
|
8
|
+
# |-------|---------------| | SBOM_FORMAT_CYCLONEDX | |
|
|
9
|
+
class Format
|
|
10
|
+
FORMAT = [
|
|
11
|
+
# TODO: Write general description for SBOM_FORMAT_CYCLONEDX
|
|
12
|
+
SBOM_FORMAT_CYCLONEDX = 'SBOM_FORMAT_CYCLONEDX'.freeze
|
|
13
|
+
].freeze
|
|
14
|
+
|
|
15
|
+
def self.validate(value)
|
|
16
|
+
return false if value.nil?
|
|
17
|
+
|
|
18
|
+
FORMAT.include?(value)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.from_value(value, default_value = SBOM_FORMAT_CYCLONEDX)
|
|
22
|
+
return default_value if value.nil?
|
|
23
|
+
|
|
24
|
+
default_value
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|