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.
Files changed (200) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +205 -0
  4. data/bin/console +15 -0
  5. data/lib/semgrep_web_app/api_helper.rb +10 -0
  6. data/lib/semgrep_web_app/apis/base_api.rb +67 -0
  7. data/lib/semgrep_web_app/apis/deployments_service_api.rb +29 -0
  8. data/lib/semgrep_web_app/apis/findings_service_api.rb +107 -0
  9. data/lib/semgrep_web_app/apis/misc_service_api.rb +47 -0
  10. data/lib/semgrep_web_app/apis/policies_service_api.rb +97 -0
  11. data/lib/semgrep_web_app/apis/projects_service_api.rb +238 -0
  12. data/lib/semgrep_web_app/apis/scans_service_api.rb +65 -0
  13. data/lib/semgrep_web_app/apis/secrets_service_api.rb +55 -0
  14. data/lib/semgrep_web_app/apis/supply_chain_service_api.rb +154 -0
  15. data/lib/semgrep_web_app/apis/ticketing_service_api.rb +144 -0
  16. data/lib/semgrep_web_app/apis/triage_service_api.rb +43 -0
  17. data/lib/semgrep_web_app/client.rb +136 -0
  18. data/lib/semgrep_web_app/configuration.rb +178 -0
  19. data/lib/semgrep_web_app/exceptions/api_exception.rb +21 -0
  20. data/lib/semgrep_web_app/http/api_response.rb +19 -0
  21. data/lib/semgrep_web_app/http/auth/semgrep_admin_jwt.rb +53 -0
  22. data/lib/semgrep_web_app/http/auth/semgrep_jwt.rb +53 -0
  23. data/lib/semgrep_web_app/http/auth/semgrep_web_token.rb +53 -0
  24. data/lib/semgrep_web_app/http/http_call_back.rb +10 -0
  25. data/lib/semgrep_web_app/http/http_method_enum.rb +10 -0
  26. data/lib/semgrep_web_app/http/http_request.rb +10 -0
  27. data/lib/semgrep_web_app/http/http_response.rb +10 -0
  28. data/lib/semgrep_web_app/http/proxy_settings.rb +22 -0
  29. data/lib/semgrep_web_app/logging/configuration/api_logging_configuration.rb +186 -0
  30. data/lib/semgrep_web_app/logging/sdk_logger.rb +17 -0
  31. data/lib/semgrep_web_app/models/add_project_tags_request.rb +96 -0
  32. data/lib/semgrep_web_app/models/add_project_tags_response.rb +73 -0
  33. data/lib/semgrep_web_app/models/ai_powered_scan_finding.rb +426 -0
  34. data/lib/semgrep_web_app/models/ai_sast_findings.rb +85 -0
  35. data/lib/semgrep_web_app/models/api_v1_deployments_findings_response.rb +87 -0
  36. data/lib/semgrep_web_app/models/assistant.rb +127 -0
  37. data/lib/semgrep_web_app/models/autofix.rb +98 -0
  38. data/lib/semgrep_web_app/models/autotriage.rb +98 -0
  39. data/lib/semgrep_web_app/models/autotriage_verdict.rb +36 -0
  40. data/lib/semgrep_web_app/models/autotriage_verdict2.rb +38 -0
  41. data/lib/semgrep_web_app/models/base_model.rb +110 -0
  42. data/lib/semgrep_web_app/models/bulk_triage_request.rb +393 -0
  43. data/lib/semgrep_web_app/models/bulk_triage_response.rb +83 -0
  44. data/lib/semgrep_web_app/models/click_to_fix_failure.rb +95 -0
  45. data/lib/semgrep_web_app/models/click_to_fix_pr.rb +95 -0
  46. data/lib/semgrep_web_app/models/click_to_fix_pr_state.rb +38 -0
  47. data/lib/semgrep_web_app/models/component.rb +95 -0
  48. data/lib/semgrep_web_app/models/confidence.rb +42 -0
  49. data/lib/semgrep_web_app/models/confidence1.rb +40 -0
  50. data/lib/semgrep_web_app/models/confidence2.rb +40 -0
  51. data/lib/semgrep_web_app/models/confidence3.rb +40 -0
  52. data/lib/semgrep_web_app/models/confidence7.rb +41 -0
  53. data/lib/semgrep_web_app/models/confidence8.rb +42 -0
  54. data/lib/semgrep_web_app/models/create_sbom_export_request.rb +176 -0
  55. data/lib/semgrep_web_app/models/create_sbom_export_response.rb +74 -0
  56. data/lib/semgrep_web_app/models/create_ticket_request.rb +393 -0
  57. data/lib/semgrep_web_app/models/cyclonedx_version.rb +48 -0
  58. data/lib/semgrep_web_app/models/delete_project_response.rb +74 -0
  59. data/lib/semgrep_web_app/models/delete_project_tags_response.rb +73 -0
  60. data/lib/semgrep_web_app/models/deployment.rb +102 -0
  61. data/lib/semgrep_web_app/models/ecosystem.rb +91 -0
  62. data/lib/semgrep_web_app/models/ecosystem1.rb +92 -0
  63. data/lib/semgrep_web_app/models/ecosystem2.rb +76 -0
  64. data/lib/semgrep_web_app/models/endpoint_reference.rb +72 -0
  65. data/lib/semgrep_web_app/models/epss_probability.rb +45 -0
  66. data/lib/semgrep_web_app/models/epss_score.rb +95 -0
  67. data/lib/semgrep_web_app/models/exposures.rb +50 -0
  68. data/lib/semgrep_web_app/models/exposures2.rb +51 -0
  69. data/lib/semgrep_web_app/models/external_ticket.rb +116 -0
  70. data/lib/semgrep_web_app/models/finding_location.rb +126 -0
  71. data/lib/semgrep_web_app/models/finding_repository.rb +95 -0
  72. data/lib/semgrep_web_app/models/finding_rule.rb +158 -0
  73. data/lib/semgrep_web_app/models/fix_recommendation.rb +95 -0
  74. data/lib/semgrep_web_app/models/float_range.rb +85 -0
  75. data/lib/semgrep_web_app/models/format.rb +27 -0
  76. data/lib/semgrep_web_app/models/found_dependency.rb +128 -0
  77. data/lib/semgrep_web_app/models/get_project_response.rb +73 -0
  78. data/lib/semgrep_web_app/models/get_sbom_export_response.rb +100 -0
  79. data/lib/semgrep_web_app/models/guidance.rb +98 -0
  80. data/lib/semgrep_web_app/models/issue_type.rb +40 -0
  81. data/lib/semgrep_web_app/models/issue_type1.rb +40 -0
  82. data/lib/semgrep_web_app/models/issue_type2.rb +42 -0
  83. data/lib/semgrep_web_app/models/license_policy_settings.rb +42 -0
  84. data/lib/semgrep_web_app/models/link_ticket_request.rb +93 -0
  85. data/lib/semgrep_web_app/models/list_dependencies_request.rb +108 -0
  86. data/lib/semgrep_web_app/models/list_dependencies_response.rb +102 -0
  87. data/lib/semgrep_web_app/models/list_findings_response.rb +100 -0
  88. data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_request.rb +118 -0
  89. data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_response.rb +103 -0
  90. data/lib/semgrep_web_app/models/list_project.rb +145 -0
  91. data/lib/semgrep_web_app/models/list_projects_response.rb +82 -0
  92. data/lib/semgrep_web_app/models/list_repositories_for_dependencies_request.rb +107 -0
  93. data/lib/semgrep_web_app/models/list_repositories_for_dependencies_response.rb +103 -0
  94. data/lib/semgrep_web_app/models/managed_scan_config.rb +85 -0
  95. data/lib/semgrep_web_app/models/metadata_component_type.rb +101 -0
  96. data/lib/semgrep_web_app/models/mode.rb +48 -0
  97. data/lib/semgrep_web_app/models/new_triage_reason.rb +48 -0
  98. data/lib/semgrep_web_app/models/new_triage_state.rb +48 -0
  99. data/lib/semgrep_web_app/models/policy.rb +118 -0
  100. data/lib/semgrep_web_app/models/policy_mode.rb +48 -0
  101. data/lib/semgrep_web_app/models/policy_mode1.rb +40 -0
  102. data/lib/semgrep_web_app/models/policy_mode3.rb +51 -0
  103. data/lib/semgrep_web_app/models/policy_reference.rb +105 -0
  104. data/lib/semgrep_web_app/models/product_type.rb +38 -0
  105. data/lib/semgrep_web_app/models/products.rb +46 -0
  106. data/lib/semgrep_web_app/models/project.rb +157 -0
  107. data/lib/semgrep_web_app/models/protos_ai_v1_autotriage.rb +154 -0
  108. data/lib/semgrep_web_app/models/protos_ai_v1_autotriage_feedback.rb +98 -0
  109. data/lib/semgrep_web_app/models/protos_common_v1_review_comment.rb +90 -0
  110. data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response.rb +123 -0
  111. data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_failed.rb +85 -0
  112. data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_skipped.rb +85 -0
  113. data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_success.rb +106 -0
  114. data/lib/semgrep_web_app/models/protos_openapi_v1_delete_ticket_response.rb +76 -0
  115. data/lib/semgrep_web_app/models/protos_openapi_v1_diff_scan.rb +75 -0
  116. data/lib/semgrep_web_app/models/protos_openapi_v1_full_scan.rb +75 -0
  117. data/lib/semgrep_web_app/models/protos_openapi_v1_get_bootstrap_sms_vpc_response.rb +130 -0
  118. data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response.rb +168 -0
  119. data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response_scan_meta.rb +256 -0
  120. data/lib/semgrep_web_app/models/protos_openapi_v1_link_ticket_response.rb +119 -0
  121. data/lib/semgrep_web_app/models/protos_openapi_v1_list_deployments_response.rb +85 -0
  122. data/lib/semgrep_web_app/models/protos_openapi_v1_list_policies_response.rb +84 -0
  123. data/lib/semgrep_web_app/models/protos_openapi_v1_list_policy_rules_response.rb +104 -0
  124. data/lib/semgrep_web_app/models/protos_openapi_v1_list_secrets_path_response.rb +104 -0
  125. data/lib/semgrep_web_app/models/protos_openapi_v1_search_scans_response.rb +94 -0
  126. data/lib/semgrep_web_app/models/protos_openapi_v1_unlink_ticket_response.rb +77 -0
  127. data/lib/semgrep_web_app/models/protos_openapi_v1_update_policy_response.rb +88 -0
  128. data/lib/semgrep_web_app/models/protos_sca_v1_code_location.rb +144 -0
  129. data/lib/semgrep_web_app/models/protos_sca_v1_dependency.rb +87 -0
  130. data/lib/semgrep_web_app/models/protos_sca_v1_dependency_filter.rb +199 -0
  131. data/lib/semgrep_web_app/models/protos_sca_v1_found_dependency.rb +174 -0
  132. data/lib/semgrep_web_app/models/protos_sca_v1_lockfile_dependency_summary.rb +87 -0
  133. data/lib/semgrep_web_app/models/protos_sca_v1_package_filter.rb +124 -0
  134. data/lib/semgrep_web_app/models/protos_sca_v1_repository_dependency_summary.rb +111 -0
  135. data/lib/semgrep_web_app/models/protos_sca_v1_sbom_format_version.rb +109 -0
  136. data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_contact.rb +95 -0
  137. data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_supplier.rb +95 -0
  138. data/lib/semgrep_web_app/models/protos_scan_v1_scan_findings_counts.rb +105 -0
  139. data/lib/semgrep_web_app/models/protos_scan_v1_scan_public.rb +228 -0
  140. data/lib/semgrep_web_app/models/protos_secrets_v1_historical_info.rb +116 -0
  141. data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding.rb +320 -0
  142. data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding_repository.rb +121 -0
  143. data/lib/semgrep_web_app/models/protos_ticketing_v1_external_ticket.rb +106 -0
  144. data/lib/semgrep_web_app/models/rating.rb +38 -0
  145. data/lib/semgrep_web_app/models/reachability.rb +48 -0
  146. data/lib/semgrep_web_app/models/repository_visibility.rb +40 -0
  147. data/lib/semgrep_web_app/models/review_comment.rb +100 -0
  148. data/lib/semgrep_web_app/models/risk.rb +40 -0
  149. data/lib/semgrep_web_app/models/rule.rb +292 -0
  150. data/lib/semgrep_web_app/models/rule_explanation.rb +98 -0
  151. data/lib/semgrep_web_app/models/sast_finding.rb +426 -0
  152. data/lib/semgrep_web_app/models/sast_findings.rb +84 -0
  153. data/lib/semgrep_web_app/models/sbom_output_format.rb +37 -0
  154. data/lib/semgrep_web_app/models/sca_finding.rb +458 -0
  155. data/lib/semgrep_web_app/models/sca_findings.rb +85 -0
  156. data/lib/semgrep_web_app/models/scm_type.rb +70 -0
  157. data/lib/semgrep_web_app/models/search_scans_request.rb +202 -0
  158. data/lib/semgrep_web_app/models/severities.rb +44 -0
  159. data/lib/semgrep_web_app/models/severities2.rb +45 -0
  160. data/lib/semgrep_web_app/models/severity.rb +46 -0
  161. data/lib/semgrep_web_app/models/severity1.rb +45 -0
  162. data/lib/semgrep_web_app/models/severity4.rb +46 -0
  163. data/lib/semgrep_web_app/models/severity5.rb +48 -0
  164. data/lib/semgrep_web_app/models/source.rb +42 -0
  165. data/lib/semgrep_web_app/models/state.rb +42 -0
  166. data/lib/semgrep_web_app/models/status.rb +55 -0
  167. data/lib/semgrep_web_app/models/status1.rb +52 -0
  168. data/lib/semgrep_web_app/models/status3.rb +44 -0
  169. data/lib/semgrep_web_app/models/status6.rb +55 -0
  170. data/lib/semgrep_web_app/models/status7.rb +59 -0
  171. data/lib/semgrep_web_app/models/status8.rb +61 -0
  172. data/lib/semgrep_web_app/models/status9.rb +55 -0
  173. data/lib/semgrep_web_app/models/statuses.rb +63 -0
  174. data/lib/semgrep_web_app/models/toggle_project_managed_scan_request.rb +108 -0
  175. data/lib/semgrep_web_app/models/toggle_project_managed_scan_response.rb +73 -0
  176. data/lib/semgrep_web_app/models/transitivities.rb +40 -0
  177. data/lib/semgrep_web_app/models/transitivities2.rb +42 -0
  178. data/lib/semgrep_web_app/models/transitivity.rb +41 -0
  179. data/lib/semgrep_web_app/models/transitivity1.rb +42 -0
  180. data/lib/semgrep_web_app/models/transitivity2.rb +40 -0
  181. data/lib/semgrep_web_app/models/triage_reason.rb +48 -0
  182. data/lib/semgrep_web_app/models/triage_reasons.rb +48 -0
  183. data/lib/semgrep_web_app/models/triage_reasons2.rb +50 -0
  184. data/lib/semgrep_web_app/models/triage_state.rb +54 -0
  185. data/lib/semgrep_web_app/models/unlink_ticket_request.rb +83 -0
  186. data/lib/semgrep_web_app/models/update_policy_request.rb +113 -0
  187. data/lib/semgrep_web_app/models/update_project_request.rb +121 -0
  188. data/lib/semgrep_web_app/models/update_project_response.rb +73 -0
  189. data/lib/semgrep_web_app/models/usage.rb +99 -0
  190. data/lib/semgrep_web_app/models/validation_state.rb +45 -0
  191. data/lib/semgrep_web_app/models/validation_state2.rb +47 -0
  192. data/lib/semgrep_web_app/models/validation_state3.rb +48 -0
  193. data/lib/semgrep_web_app/models/verdict.rb +41 -0
  194. data/lib/semgrep_web_app/models/verdict1.rb +38 -0
  195. data/lib/semgrep_web_app/models/visibility.rb +42 -0
  196. data/lib/semgrep_web_app/utilities/date_time_helper.rb +11 -0
  197. data/lib/semgrep_web_app/utilities/file_wrapper.rb +28 -0
  198. data/lib/semgrep_web_app/utilities/union_type_lookup.rb +34 -0
  199. data/lib/semgrep_web_app.rb +245 -0
  200. metadata +283 -0
@@ -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
+ # Filter findings by Click-to-Fix PR state. If not specified, returns all
8
+ # findings regardless of autofix PR status. This filter applies to both sast
9
+ # and sca issue types. Valid values: open, merged
10
+ class ClickToFixPrState
11
+ CLICK_TO_FIX_PR_STATE = [
12
+ # TODO: Write general description for OPEN
13
+ OPEN = 'open'.freeze,
14
+
15
+ # TODO: Write general description for MERGED
16
+ MERGED = 'merged'.freeze
17
+ ].freeze
18
+
19
+ def self.validate(value)
20
+ return false if value.nil?
21
+
22
+ CLICK_TO_FIX_PR_STATE.include?(value)
23
+ end
24
+
25
+ def self.from_value(value, default_value = OPEN)
26
+ return default_value if value.nil?
27
+
28
+ str = value.to_s.strip
29
+
30
+ case str.downcase
31
+ when 'open' then OPEN
32
+ when 'merged' then MERGED
33
+ else
34
+ default_value
35
+ end
36
+ end
37
+ end
38
+ 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
+ # Semgrep Assistant's guess as for what the matched source code's purpose is
8
+ class Component < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Component risk level
13
+ # @return [Risk]
14
+ attr_accessor :risk
15
+
16
+ # Component tag
17
+ # @return [String]
18
+ attr_accessor :tag
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['risk'] = 'risk'
24
+ @_hash['tag'] = 'tag'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ risk
32
+ tag
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(risk: SKIP, tag: SKIP, additional_properties: nil)
42
+ # Add additional model properties to the instance
43
+ additional_properties = {} if additional_properties.nil?
44
+
45
+ @risk = risk unless risk == SKIP
46
+ @tag = tag unless tag == 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
+ risk = hash.key?('risk') ? hash['risk'] : SKIP
56
+ tag = hash.key?('tag') ? hash['tag'] : 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
+ Component.new(risk: risk,
67
+ tag: tag,
68
+ additional_properties: additional_properties)
69
+ end
70
+
71
+ # Validates an instance of the object from a given value.
72
+ # @param [Component | 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} risk: #{@risk}, tag: #{@tag}, 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} risk: #{@risk.inspect}, tag: #{@tag.inspect}, additional_properties:"\
92
+ " #{@additional_properties}>"
93
+ end
94
+ end
95
+ 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
+ # Confidence based on the Rule's false-positive rate. | value | description |
8
+ # |-------|---------------| | CONFIDENCE_HIGH | | | CONFIDENCE_MEDIUM | | |
9
+ # CONFIDENCE_LOW | |
10
+ class Confidence
11
+ CONFIDENCE = [
12
+ # TODO: Write general description for CONFIDENCE_HIGH
13
+ CONFIDENCE_HIGH = 'CONFIDENCE_HIGH'.freeze,
14
+
15
+ # TODO: Write general description for CONFIDENCE_MEDIUM
16
+ CONFIDENCE_MEDIUM = 'CONFIDENCE_MEDIUM'.freeze,
17
+
18
+ # TODO: Write general description for CONFIDENCE_LOW
19
+ CONFIDENCE_LOW = 'CONFIDENCE_LOW'.freeze
20
+ ].freeze
21
+
22
+ def self.validate(value)
23
+ return false if value.nil?
24
+
25
+ CONFIDENCE.include?(value)
26
+ end
27
+
28
+ def self.from_value(value, default_value = CONFIDENCE_HIGH)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'confidence_high' then CONFIDENCE_HIGH
35
+ when 'confidence_medium' then CONFIDENCE_MEDIUM
36
+ when 'confidence_low' then CONFIDENCE_LOW
37
+ else
38
+ default_value
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,40 @@
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
+ # Confidence of the finding, derived from the rule that triggered it
8
+ class Confidence1
9
+ CONFIDENCE1 = [
10
+ # TODO: Write general description for LOW
11
+ LOW = 'low'.freeze,
12
+
13
+ # TODO: Write general description for MEDIUM
14
+ MEDIUM = 'medium'.freeze,
15
+
16
+ # TODO: Write general description for HIGH
17
+ HIGH = 'high'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ CONFIDENCE1.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = LOW)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'low' then LOW
33
+ when 'medium' then MEDIUM
34
+ when 'high' then HIGH
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
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
+ # Confidence level of the rule
8
+ class Confidence2
9
+ CONFIDENCE2 = [
10
+ # TODO: Write general description for LOW
11
+ LOW = 'low'.freeze,
12
+
13
+ # TODO: Write general description for MEDIUM
14
+ MEDIUM = 'medium'.freeze,
15
+
16
+ # TODO: Write general description for HIGH
17
+ HIGH = 'high'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ CONFIDENCE2.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = LOW)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'low' then LOW
33
+ when 'medium' then MEDIUM
34
+ when 'high' then HIGH
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
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
+ # List of confidence levels to filter by
8
+ class Confidence3
9
+ CONFIDENCE3 = [
10
+ # TODO: Write general description for LOW
11
+ LOW = 'low'.freeze,
12
+
13
+ # TODO: Write general description for MEDIUM
14
+ MEDIUM = 'medium'.freeze,
15
+
16
+ # TODO: Write general description for HIGH
17
+ HIGH = 'high'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ CONFIDENCE3.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = LOW)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'low' then LOW
33
+ when 'medium' then MEDIUM
34
+ when 'high' then HIGH
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ 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
+ # Confidence of the finding. | value | description | |-------|---------------|
8
+ # | CONFIDENCE_HIGH | | | CONFIDENCE_MEDIUM | | | CONFIDENCE_LOW | |
9
+ class Confidence7
10
+ CONFIDENCE7 = [
11
+ # TODO: Write general description for CONFIDENCE_HIGH
12
+ CONFIDENCE_HIGH = 'CONFIDENCE_HIGH'.freeze,
13
+
14
+ # TODO: Write general description for CONFIDENCE_MEDIUM
15
+ CONFIDENCE_MEDIUM = 'CONFIDENCE_MEDIUM'.freeze,
16
+
17
+ # TODO: Write general description for CONFIDENCE_LOW
18
+ CONFIDENCE_LOW = 'CONFIDENCE_LOW'.freeze
19
+ ].freeze
20
+
21
+ def self.validate(value)
22
+ return false if value.nil?
23
+
24
+ CONFIDENCE7.include?(value)
25
+ end
26
+
27
+ def self.from_value(value, default_value = CONFIDENCE_HIGH)
28
+ return default_value if value.nil?
29
+
30
+ str = value.to_s.strip
31
+
32
+ case str.downcase
33
+ when 'confidence_high' then CONFIDENCE_HIGH
34
+ when 'confidence_medium' then CONFIDENCE_MEDIUM
35
+ when 'confidence_low' then CONFIDENCE_LOW
36
+ else
37
+ default_value
38
+ end
39
+ end
40
+ end
41
+ 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
+ # Which rule confidence level do you want to include? If not specified,
8
+ # includes all. This filter is applicable when `issue_type` is `sast` or
9
+ # unspecified. Valid values: low, medium, high
10
+ class Confidence8
11
+ CONFIDENCE8 = [
12
+ # TODO: Write general description for LOW
13
+ LOW = 'low'.freeze,
14
+
15
+ # TODO: Write general description for MEDIUM
16
+ MEDIUM = 'medium'.freeze,
17
+
18
+ # TODO: Write general description for HIGH
19
+ HIGH = 'high'.freeze
20
+ ].freeze
21
+
22
+ def self.validate(value)
23
+ return false if value.nil?
24
+
25
+ CONFIDENCE8.include?(value)
26
+ end
27
+
28
+ def self.from_value(value, default_value = LOW)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'low' then LOW
35
+ when 'medium' then MEDIUM
36
+ when 'high' then HIGH
37
+ else
38
+ default_value
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,176 @@
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
+ # CreateSbomExportRequest Model.
8
+ class CreateSbomExportRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
13
+ # or in your Settings in the web UI.
14
+ # @return [String]
15
+ attr_accessor :deployment_id
16
+
17
+ # Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
18
+ # or in your Settings in the web UI.
19
+ # @return [ProtosScaV1SbomFormatVersion]
20
+ attr_accessor :format_version
21
+
22
+ # Metadata component type for the SBOM export.
23
+ # | value | description |
24
+ # |-------|---------------|
25
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION | |
26
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FRAMEWORK | |
27
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_LIBRARY | |
28
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_CONTAINER | |
29
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_PLATFORM | |
30
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_OPERATING_SYSTEM | |
31
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE | |
32
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE_DRIVER | |
33
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FIRMWARE | |
34
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FILE | |
35
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_MACHINE_LEARNING_MODEL | |
36
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DATA | |
37
+ # @return [MetadataComponentType]
38
+ attr_accessor :metadata_component_type
39
+
40
+ # Metadata component type for the SBOM export.
41
+ # | value | description |
42
+ # |-------|---------------|
43
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION | |
44
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FRAMEWORK | |
45
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_LIBRARY | |
46
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_CONTAINER | |
47
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_PLATFORM | |
48
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_OPERATING_SYSTEM | |
49
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE | |
50
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DEVICE_DRIVER | |
51
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FIRMWARE | |
52
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_FILE | |
53
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_MACHINE_LEARNING_MODEL | |
54
+ # | SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_DATA | |
55
+ # @return [ProtosScaV1SbomMetadataSupplier]
56
+ attr_accessor :metadata_supplier
57
+
58
+ # Branch to export SBOM for (Ex. ref=`refs/pull/1234/merge`).
59
+ # @return [String]
60
+ attr_accessor :ref
61
+
62
+ # Repository ID to export SBOM for.
63
+ # @return [String]
64
+ attr_accessor :repository_id
65
+
66
+ # SBOM output format for the SBOM export.
67
+ # | value | description |
68
+ # |-------|---------------|
69
+ # | SBOM_OUTPUT_FORMAT_JSON | |
70
+ # @return [SbomOutputFormat]
71
+ attr_accessor :sbom_output_format
72
+
73
+ # A mapping from model property names to API property names.
74
+ def self.names
75
+ @_hash = {} if @_hash.nil?
76
+ @_hash['deployment_id'] = 'deploymentId'
77
+ @_hash['format_version'] = 'formatVersion'
78
+ @_hash['metadata_component_type'] = 'metadataComponentType'
79
+ @_hash['metadata_supplier'] = 'metadataSupplier'
80
+ @_hash['ref'] = 'ref'
81
+ @_hash['repository_id'] = 'repositoryId'
82
+ @_hash['sbom_output_format'] = 'sbomOutputFormat'
83
+ @_hash
84
+ end
85
+
86
+ # An array for optional fields
87
+ def self.optionals
88
+ %w[
89
+ format_version
90
+ metadata_component_type
91
+ metadata_supplier
92
+ ref
93
+ repository_id
94
+ sbom_output_format
95
+ ]
96
+ end
97
+
98
+ # An array for nullable fields
99
+ def self.nullables
100
+ []
101
+ end
102
+
103
+ def initialize(
104
+ deployment_id:, format_version: SKIP,
105
+ metadata_component_type: MetadataComponentType::SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION,
106
+ metadata_supplier: SKIP, ref: SKIP, repository_id: SKIP,
107
+ sbom_output_format: SKIP, additional_properties: nil
108
+ )
109
+ # Add additional model properties to the instance
110
+ additional_properties = {} if additional_properties.nil?
111
+
112
+ @deployment_id = deployment_id
113
+ @format_version = format_version unless format_version == SKIP
114
+ @metadata_component_type = metadata_component_type unless metadata_component_type == SKIP
115
+ @metadata_supplier = metadata_supplier unless metadata_supplier == SKIP
116
+ @ref = ref unless ref == SKIP
117
+ @repository_id = repository_id unless repository_id == SKIP
118
+ @sbom_output_format = sbom_output_format unless sbom_output_format == SKIP
119
+ @additional_properties = additional_properties
120
+ end
121
+
122
+ # Creates an instance of the object from a hash.
123
+ def self.from_hash(hash)
124
+ return nil unless hash
125
+
126
+ # Extract variables from the hash.
127
+ deployment_id = hash.key?('deploymentId') ? hash['deploymentId'] : nil
128
+ format_version = ProtosScaV1SbomFormatVersion.from_hash(hash['formatVersion']) if
129
+ hash['formatVersion']
130
+ metadata_component_type =
131
+ hash['metadataComponentType'] ||= MetadataComponentType::SBOM_METADATA_COMPONENT_TYPE_CYCLONE_DX_V15_APPLICATION
132
+ metadata_supplier = ProtosScaV1SbomMetadataSupplier.from_hash(hash['metadataSupplier']) if
133
+ hash['metadataSupplier']
134
+ ref = hash.key?('ref') ? hash['ref'] : SKIP
135
+ repository_id = hash.key?('repositoryId') ? hash['repositoryId'] : SKIP
136
+ sbom_output_format =
137
+ hash.key?('sbomOutputFormat') ? hash['sbomOutputFormat'] : SKIP
138
+
139
+ # Create a new hash for additional properties, removing known properties.
140
+ new_hash = hash.reject { |k, _| names.value?(k) }
141
+
142
+ additional_properties = APIHelper.get_additional_properties(
143
+ new_hash, proc { |value| value }
144
+ )
145
+
146
+ # Create object from extracted values.
147
+ CreateSbomExportRequest.new(deployment_id: deployment_id,
148
+ format_version: format_version,
149
+ metadata_component_type: metadata_component_type,
150
+ metadata_supplier: metadata_supplier,
151
+ ref: ref,
152
+ repository_id: repository_id,
153
+ sbom_output_format: sbom_output_format,
154
+ additional_properties: additional_properties)
155
+ end
156
+
157
+ # Provides a human-readable string representation of the object.
158
+ def to_s
159
+ class_name = self.class.name.split('::').last
160
+ "<#{class_name} deployment_id: #{@deployment_id}, format_version: #{@format_version},"\
161
+ " metadata_component_type: #{@metadata_component_type}, metadata_supplier:"\
162
+ " #{@metadata_supplier}, ref: #{@ref}, repository_id: #{@repository_id}, sbom_output_format:"\
163
+ " #{@sbom_output_format}, additional_properties: #{@additional_properties}>"
164
+ end
165
+
166
+ # Provides a debugging-friendly string with detailed object information.
167
+ def inspect
168
+ class_name = self.class.name.split('::').last
169
+ "<#{class_name} deployment_id: #{@deployment_id.inspect}, format_version:"\
170
+ " #{@format_version.inspect}, metadata_component_type: #{@metadata_component_type.inspect},"\
171
+ " metadata_supplier: #{@metadata_supplier.inspect}, ref: #{@ref.inspect}, repository_id:"\
172
+ " #{@repository_id.inspect}, sbom_output_format: #{@sbom_output_format.inspect},"\
173
+ " additional_properties: #{@additional_properties}>"
174
+ end
175
+ end
176
+ end
@@ -0,0 +1,74 @@
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
+ # CreateSbomExportResponse Model.
8
+ class CreateSbomExportResponse < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Task token for the SBOM export job.
13
+ # @return [String]
14
+ attr_accessor :task_token
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['task_token'] = 'taskToken'
20
+ @_hash
21
+ end
22
+
23
+ # An array for optional fields
24
+ def self.optionals
25
+ []
26
+ end
27
+
28
+ # An array for nullable fields
29
+ def self.nullables
30
+ []
31
+ end
32
+
33
+ def initialize(task_token:, additional_properties: nil)
34
+ # Add additional model properties to the instance
35
+ additional_properties = {} if additional_properties.nil?
36
+
37
+ @task_token = task_token
38
+ @additional_properties = additional_properties
39
+ end
40
+
41
+ # Creates an instance of the object from a hash.
42
+ def self.from_hash(hash)
43
+ return nil unless hash
44
+
45
+ # Extract variables from the hash.
46
+ task_token = hash.key?('taskToken') ? hash['taskToken'] : nil
47
+
48
+ # Create a new hash for additional properties, removing known properties.
49
+ new_hash = hash.reject { |k, _| names.value?(k) }
50
+
51
+ additional_properties = APIHelper.get_additional_properties(
52
+ new_hash, proc { |value| value }
53
+ )
54
+
55
+ # Create object from extracted values.
56
+ CreateSbomExportResponse.new(task_token: task_token,
57
+ additional_properties: additional_properties)
58
+ end
59
+
60
+ # Provides a human-readable string representation of the object.
61
+ def to_s
62
+ class_name = self.class.name.split('::').last
63
+ "<#{class_name} task_token: #{@task_token}, additional_properties:"\
64
+ " #{@additional_properties}>"
65
+ end
66
+
67
+ # Provides a debugging-friendly string with detailed object information.
68
+ def inspect
69
+ class_name = self.class.name.split('::').last
70
+ "<#{class_name} task_token: #{@task_token.inspect}, additional_properties:"\
71
+ " #{@additional_properties}>"
72
+ end
73
+ end
74
+ end