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,99 @@
|
|
|
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
|
+
# Usage of the vulnerable package in the codebase. Applies to reachable
|
|
8
|
+
# findings
|
|
9
|
+
class Usage < BaseModel
|
|
10
|
+
SKIP = Object.new
|
|
11
|
+
private_constant :SKIP
|
|
12
|
+
|
|
13
|
+
# External ticket associated with finding
|
|
14
|
+
# @return [ExternalTicket]
|
|
15
|
+
attr_accessor :external_ticket
|
|
16
|
+
|
|
17
|
+
# Location of the record in a file, as reported by Semgrep. If null, then
|
|
18
|
+
# the information does not exist or lacks integrity (older or broken scans)
|
|
19
|
+
# @return [FindingLocation]
|
|
20
|
+
attr_accessor :location
|
|
21
|
+
|
|
22
|
+
# A mapping from model property names to API property names.
|
|
23
|
+
def self.names
|
|
24
|
+
@_hash = {} if @_hash.nil?
|
|
25
|
+
@_hash['external_ticket'] = 'external_ticket'
|
|
26
|
+
@_hash['location'] = 'location'
|
|
27
|
+
@_hash
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# An array for optional fields
|
|
31
|
+
def self.optionals
|
|
32
|
+
%w[
|
|
33
|
+
external_ticket
|
|
34
|
+
location
|
|
35
|
+
]
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# An array for nullable fields
|
|
39
|
+
def self.nullables
|
|
40
|
+
[]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def initialize(external_ticket: SKIP, location: SKIP,
|
|
44
|
+
additional_properties: nil)
|
|
45
|
+
# Add additional model properties to the instance
|
|
46
|
+
additional_properties = {} if additional_properties.nil?
|
|
47
|
+
|
|
48
|
+
@external_ticket = external_ticket unless external_ticket == SKIP
|
|
49
|
+
@location = location unless location == SKIP
|
|
50
|
+
@additional_properties = additional_properties
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Creates an instance of the object from a hash.
|
|
54
|
+
def self.from_hash(hash)
|
|
55
|
+
return nil unless hash
|
|
56
|
+
|
|
57
|
+
# Extract variables from the hash.
|
|
58
|
+
external_ticket = ExternalTicket.from_hash(hash['external_ticket']) if
|
|
59
|
+
hash['external_ticket']
|
|
60
|
+
location = FindingLocation.from_hash(hash['location']) if hash['location']
|
|
61
|
+
|
|
62
|
+
# Create a new hash for additional properties, removing known properties.
|
|
63
|
+
new_hash = hash.reject { |k, _| names.value?(k) }
|
|
64
|
+
|
|
65
|
+
additional_properties = APIHelper.get_additional_properties(
|
|
66
|
+
new_hash, proc { |value| value }
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# Create object from extracted values.
|
|
70
|
+
Usage.new(external_ticket: external_ticket,
|
|
71
|
+
location: location,
|
|
72
|
+
additional_properties: additional_properties)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Validates an instance of the object from a given value.
|
|
76
|
+
# @param [Usage | Hash] The value against the validation is performed.
|
|
77
|
+
def self.validate(value)
|
|
78
|
+
return true if value.instance_of? self
|
|
79
|
+
|
|
80
|
+
return false unless value.instance_of? Hash
|
|
81
|
+
|
|
82
|
+
true
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Provides a human-readable string representation of the object.
|
|
86
|
+
def to_s
|
|
87
|
+
class_name = self.class.name.split('::').last
|
|
88
|
+
"<#{class_name} external_ticket: #{@external_ticket}, location: #{@location},"\
|
|
89
|
+
" additional_properties: #{@additional_properties}>"
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
93
|
+
def inspect
|
|
94
|
+
class_name = self.class.name.split('::').last
|
|
95
|
+
"<#{class_name} external_ticket: #{@external_ticket.inspect}, location:"\
|
|
96
|
+
" #{@location.inspect}, additional_properties: #{@additional_properties}>"
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
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
|
+
# Filter by whether a secret could be validated. Only applies for secrets
|
|
8
|
+
# findings.
|
|
9
|
+
class ValidationState
|
|
10
|
+
VALIDATION_STATE = [
|
|
11
|
+
# TODO: Write general description for CONFIRMED_VALID
|
|
12
|
+
CONFIRMED_VALID = 'confirmed_valid'.freeze,
|
|
13
|
+
|
|
14
|
+
# TODO: Write general description for CONFIRMED_INVALID
|
|
15
|
+
CONFIRMED_INVALID = 'confirmed_invalid'.freeze,
|
|
16
|
+
|
|
17
|
+
# TODO: Write general description for VALIDATION_ERROR
|
|
18
|
+
VALIDATION_ERROR = 'validation_error'.freeze,
|
|
19
|
+
|
|
20
|
+
# TODO: Write general description for NO_VALIDATOR
|
|
21
|
+
NO_VALIDATOR = 'no_validator'.freeze
|
|
22
|
+
].freeze
|
|
23
|
+
|
|
24
|
+
def self.validate(value)
|
|
25
|
+
return false if value.nil?
|
|
26
|
+
|
|
27
|
+
VALIDATION_STATE.include?(value)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.from_value(value, default_value = CONFIRMED_VALID)
|
|
31
|
+
return default_value if value.nil?
|
|
32
|
+
|
|
33
|
+
str = value.to_s.strip
|
|
34
|
+
|
|
35
|
+
case str.downcase
|
|
36
|
+
when 'confirmed_valid' then CONFIRMED_VALID
|
|
37
|
+
when 'confirmed_invalid' then CONFIRMED_INVALID
|
|
38
|
+
when 'validation_error' then VALIDATION_ERROR
|
|
39
|
+
when 'no_validator' then NO_VALIDATOR
|
|
40
|
+
else
|
|
41
|
+
default_value
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
# Whether the finding was validated or not. | value | description |
|
|
8
|
+
# |-------|---------------| | VALIDATION_STATE_CONFIRMED_VALID | | |
|
|
9
|
+
# VALIDATION_STATE_CONFIRMED_INVALID | | | VALIDATION_STATE_VALIDATION_ERROR
|
|
10
|
+
# | | | VALIDATION_STATE_NO_VALIDATOR | |
|
|
11
|
+
class ValidationState2
|
|
12
|
+
VALIDATION_STATE2 = [
|
|
13
|
+
# TODO: Write general description for VALIDATION_STATE_CONFIRMED_VALID
|
|
14
|
+
VALIDATION_STATE_CONFIRMED_VALID = 'VALIDATION_STATE_CONFIRMED_VALID'.freeze,
|
|
15
|
+
|
|
16
|
+
# TODO: Write general description for VALIDATION_STATE_CONFIRMED_INVALID
|
|
17
|
+
VALIDATION_STATE_CONFIRMED_INVALID = 'VALIDATION_STATE_CONFIRMED_INVALID'.freeze,
|
|
18
|
+
|
|
19
|
+
# TODO: Write general description for VALIDATION_STATE_VALIDATION_ERROR
|
|
20
|
+
VALIDATION_STATE_VALIDATION_ERROR = 'VALIDATION_STATE_VALIDATION_ERROR'.freeze,
|
|
21
|
+
|
|
22
|
+
# TODO: Write general description for VALIDATION_STATE_NO_VALIDATOR
|
|
23
|
+
VALIDATION_STATE_NO_VALIDATOR = 'VALIDATION_STATE_NO_VALIDATOR'.freeze
|
|
24
|
+
].freeze
|
|
25
|
+
|
|
26
|
+
def self.validate(value)
|
|
27
|
+
return false if value.nil?
|
|
28
|
+
|
|
29
|
+
VALIDATION_STATE2.include?(value)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.from_value(value, default_value = VALIDATION_STATE_CONFIRMED_VALID)
|
|
33
|
+
return default_value if value.nil?
|
|
34
|
+
|
|
35
|
+
str = value.to_s.strip
|
|
36
|
+
|
|
37
|
+
case str.downcase
|
|
38
|
+
when 'validation_state_confirmed_valid' then VALIDATION_STATE_CONFIRMED_VALID
|
|
39
|
+
when 'validation_state_confirmed_invalid' then VALIDATION_STATE_CONFIRMED_INVALID
|
|
40
|
+
when 'validation_state_validation_error' then VALIDATION_STATE_VALIDATION_ERROR
|
|
41
|
+
when 'validation_state_no_validator' then VALIDATION_STATE_NO_VALIDATOR
|
|
42
|
+
else
|
|
43
|
+
default_value
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
# validationState3.
|
|
8
|
+
class ValidationState3
|
|
9
|
+
VALIDATION_STATE3 = [
|
|
10
|
+
# TODO: Write general description for VALIDATION_STATE_UNSPECIFIED
|
|
11
|
+
VALIDATION_STATE_UNSPECIFIED = 'VALIDATION_STATE_UNSPECIFIED'.freeze,
|
|
12
|
+
|
|
13
|
+
# TODO: Write general description for VALIDATION_STATE_CONFIRMED_VALID
|
|
14
|
+
VALIDATION_STATE_CONFIRMED_VALID = 'VALIDATION_STATE_CONFIRMED_VALID'.freeze,
|
|
15
|
+
|
|
16
|
+
# TODO: Write general description for VALIDATION_STATE_CONFIRMED_INVALID
|
|
17
|
+
VALIDATION_STATE_CONFIRMED_INVALID = 'VALIDATION_STATE_CONFIRMED_INVALID'.freeze,
|
|
18
|
+
|
|
19
|
+
# TODO: Write general description for VALIDATION_STATE_VALIDATION_ERROR
|
|
20
|
+
VALIDATION_STATE_VALIDATION_ERROR = 'VALIDATION_STATE_VALIDATION_ERROR'.freeze,
|
|
21
|
+
|
|
22
|
+
# TODO: Write general description for VALIDATION_STATE_NO_VALIDATOR
|
|
23
|
+
VALIDATION_STATE_NO_VALIDATOR = 'VALIDATION_STATE_NO_VALIDATOR'.freeze
|
|
24
|
+
].freeze
|
|
25
|
+
|
|
26
|
+
def self.validate(value)
|
|
27
|
+
return false if value.nil?
|
|
28
|
+
|
|
29
|
+
VALIDATION_STATE3.include?(value)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.from_value(value, default_value = VALIDATION_STATE_UNSPECIFIED)
|
|
33
|
+
return default_value if value.nil?
|
|
34
|
+
|
|
35
|
+
str = value.to_s.strip
|
|
36
|
+
|
|
37
|
+
case str.downcase
|
|
38
|
+
when 'validation_state_unspecified' then VALIDATION_STATE_UNSPECIFIED
|
|
39
|
+
when 'validation_state_confirmed_valid' then VALIDATION_STATE_CONFIRMED_VALID
|
|
40
|
+
when 'validation_state_confirmed_invalid' then VALIDATION_STATE_CONFIRMED_INVALID
|
|
41
|
+
when 'validation_state_validation_error' then VALIDATION_STATE_VALIDATION_ERROR
|
|
42
|
+
when 'validation_state_no_validator' then VALIDATION_STATE_NO_VALIDATOR
|
|
43
|
+
else
|
|
44
|
+
default_value
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
# | value | description | |-------|---------------| | VERDICT_TRUE_POSITIVE |
|
|
8
|
+
# | | VERDICT_FALSE_POSITIVE | | | VERDICT_NO_VERDICT | |
|
|
9
|
+
class Verdict
|
|
10
|
+
VERDICT = [
|
|
11
|
+
# TODO: Write general description for VERDICT_TRUE_POSITIVE
|
|
12
|
+
VERDICT_TRUE_POSITIVE = 'VERDICT_TRUE_POSITIVE'.freeze,
|
|
13
|
+
|
|
14
|
+
# TODO: Write general description for VERDICT_FALSE_POSITIVE
|
|
15
|
+
VERDICT_FALSE_POSITIVE = 'VERDICT_FALSE_POSITIVE'.freeze,
|
|
16
|
+
|
|
17
|
+
# TODO: Write general description for VERDICT_NO_VERDICT
|
|
18
|
+
VERDICT_NO_VERDICT = 'VERDICT_NO_VERDICT'.freeze
|
|
19
|
+
].freeze
|
|
20
|
+
|
|
21
|
+
def self.validate(value)
|
|
22
|
+
return false if value.nil?
|
|
23
|
+
|
|
24
|
+
VERDICT.include?(value)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.from_value(value, default_value = VERDICT_TRUE_POSITIVE)
|
|
28
|
+
return default_value if value.nil?
|
|
29
|
+
|
|
30
|
+
str = value.to_s.strip
|
|
31
|
+
|
|
32
|
+
case str.downcase
|
|
33
|
+
when 'verdict_true_positive' then VERDICT_TRUE_POSITIVE
|
|
34
|
+
when 'verdict_false_positive' then VERDICT_FALSE_POSITIVE
|
|
35
|
+
when 'verdict_no_verdict' then VERDICT_NO_VERDICT
|
|
36
|
+
else
|
|
37
|
+
default_value
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
# The verdict is `true_positive` if Assistant recommends fixing,
|
|
8
|
+
# `false_positive` if Assistant recommends ignoring this finding. AI generated
|
|
9
|
+
# decision, review carefully
|
|
10
|
+
class Verdict1
|
|
11
|
+
VERDICT1 = [
|
|
12
|
+
# TODO: Write general description for FALSE_POSITIVE
|
|
13
|
+
FALSE_POSITIVE = 'false_positive'.freeze,
|
|
14
|
+
|
|
15
|
+
# TODO: Write general description for TRUE_POSITIVE
|
|
16
|
+
TRUE_POSITIVE = 'true_positive'.freeze
|
|
17
|
+
].freeze
|
|
18
|
+
|
|
19
|
+
def self.validate(value)
|
|
20
|
+
return false if value.nil?
|
|
21
|
+
|
|
22
|
+
VERDICT1.include?(value)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.from_value(value, default_value = FALSE_POSITIVE)
|
|
26
|
+
return default_value if value.nil?
|
|
27
|
+
|
|
28
|
+
str = value.to_s.strip
|
|
29
|
+
|
|
30
|
+
case str.downcase
|
|
31
|
+
when 'false_positive' then FALSE_POSITIVE
|
|
32
|
+
when 'true_positive' then TRUE_POSITIVE
|
|
33
|
+
else
|
|
34
|
+
default_value
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
# Repository visbility (e.g. public, private, unknown). | value | description
|
|
8
|
+
# | |-------|---------------| | REPOSITORY_VISIBILITY_PUBLIC | | |
|
|
9
|
+
# REPOSITORY_VISIBILITY_PRIVATE | | | REPOSITORY_VISIBILITY_UNKNOWN | |
|
|
10
|
+
class Visibility
|
|
11
|
+
VISIBILITY = [
|
|
12
|
+
# TODO: Write general description for REPOSITORY_VISIBILITY_PUBLIC
|
|
13
|
+
REPOSITORY_VISIBILITY_PUBLIC = 'REPOSITORY_VISIBILITY_PUBLIC'.freeze,
|
|
14
|
+
|
|
15
|
+
# TODO: Write general description for REPOSITORY_VISIBILITY_PRIVATE
|
|
16
|
+
REPOSITORY_VISIBILITY_PRIVATE = 'REPOSITORY_VISIBILITY_PRIVATE'.freeze,
|
|
17
|
+
|
|
18
|
+
# TODO: Write general description for REPOSITORY_VISIBILITY_UNKNOWN
|
|
19
|
+
REPOSITORY_VISIBILITY_UNKNOWN = 'REPOSITORY_VISIBILITY_UNKNOWN'.freeze
|
|
20
|
+
].freeze
|
|
21
|
+
|
|
22
|
+
def self.validate(value)
|
|
23
|
+
return false if value.nil?
|
|
24
|
+
|
|
25
|
+
VISIBILITY.include?(value)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.from_value(value, default_value = REPOSITORY_VISIBILITY_PUBLIC)
|
|
29
|
+
return default_value if value.nil?
|
|
30
|
+
|
|
31
|
+
str = value.to_s.strip
|
|
32
|
+
|
|
33
|
+
case str.downcase
|
|
34
|
+
when 'repository_visibility_public' then REPOSITORY_VISIBILITY_PUBLIC
|
|
35
|
+
when 'repository_visibility_private' then REPOSITORY_VISIBILITY_PRIVATE
|
|
36
|
+
when 'repository_visibility_unknown' then REPOSITORY_VISIBILITY_UNKNOWN
|
|
37
|
+
else
|
|
38
|
+
default_value
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# semgrep_web_app
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
require 'date'
|
|
7
|
+
module SemgrepWebApp
|
|
8
|
+
# A utility that supports dateTime conversion to different formats
|
|
9
|
+
class DateTimeHelper < CoreLibrary::DateTimeHelper
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
# A utility to allow users to set the content-type for files
|
|
8
|
+
class FileWrapper < CoreLibrary::FileWrapper
|
|
9
|
+
# The constructor.
|
|
10
|
+
# @param [File] file The file to be sent in the request.
|
|
11
|
+
# @param [string] content_type The content type of the provided file.
|
|
12
|
+
def initialize(file, content_type: 'application/octet-stream')
|
|
13
|
+
super
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Provides a human-readable string representation of the object.
|
|
17
|
+
def to_s
|
|
18
|
+
class_name = self.class.name.split('::').last
|
|
19
|
+
"<#{class_name} file: #{@file}, content_type: #{@content_type}>"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
23
|
+
def to_inspect
|
|
24
|
+
class_name = self.class.name.split('::').last
|
|
25
|
+
"<#{class_name} file: #{@file.inspect}, content_type: #{@content_type.inspect}>"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
# The `UnionTypeLookUp` class serves as a utility class for
|
|
8
|
+
# storing and managing type combinator templates. It acts as a container for the templates
|
|
9
|
+
# used in handling various oneof/anyof instances within the sdk.
|
|
10
|
+
class UnionTypeLookUp
|
|
11
|
+
include CoreLibrary
|
|
12
|
+
# rubocop:disable Lint/RedundantCopDisableDirective, Style/HashSyntax, Layout/FirstArgumentIndentation
|
|
13
|
+
def self.union_types
|
|
14
|
+
{
|
|
15
|
+
:ApiV1DeploymentsFindingsResponseFindings => OneOf.new(
|
|
16
|
+
[
|
|
17
|
+
LeafType.new(SastFinding),
|
|
18
|
+
LeafType.new(ScaFinding),
|
|
19
|
+
LeafType.new(AiPoweredScanFinding)
|
|
20
|
+
],
|
|
21
|
+
UnionTypeContext.new(
|
|
22
|
+
is_array: true,
|
|
23
|
+
is_optional: true
|
|
24
|
+
)
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
# rubocop:enable Lint/RedundantCopDisableDirective, Style/HashSyntax, Layout/FirstArgumentIndentation
|
|
29
|
+
|
|
30
|
+
def self.get(name)
|
|
31
|
+
UnionTypeLookUp.union_types[name]
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|