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,44 @@
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
+ # Status of the SBOM export job. | value | description |
8
+ # |-------|---------------| | SBOM_EXPORT_STATUS_IN_PROGRESS | The SBOM export
9
+ # job is in progress. | | SBOM_EXPORT_STATUS_COMPLETED | The SBOM export job
10
+ # has completed. | | SBOM_EXPORT_STATUS_FAILED | The SBOM export job has
11
+ # failed. |
12
+ class Status3
13
+ STATUS3 = [
14
+ # TODO: Write general description for SBOM_EXPORT_STATUS_IN_PROGRESS
15
+ SBOM_EXPORT_STATUS_IN_PROGRESS = 'SBOM_EXPORT_STATUS_IN_PROGRESS'.freeze,
16
+
17
+ # TODO: Write general description for SBOM_EXPORT_STATUS_COMPLETED
18
+ SBOM_EXPORT_STATUS_COMPLETED = 'SBOM_EXPORT_STATUS_COMPLETED'.freeze,
19
+
20
+ # TODO: Write general description for SBOM_EXPORT_STATUS_FAILED
21
+ SBOM_EXPORT_STATUS_FAILED = 'SBOM_EXPORT_STATUS_FAILED'.freeze
22
+ ].freeze
23
+
24
+ def self.validate(value)
25
+ return false if value.nil?
26
+
27
+ STATUS3.include?(value)
28
+ end
29
+
30
+ def self.from_value(value, default_value = SBOM_EXPORT_STATUS_IN_PROGRESS)
31
+ return default_value if value.nil?
32
+
33
+ str = value.to_s.strip
34
+
35
+ case str.downcase
36
+ when 'sbom_export_status_in_progress' then SBOM_EXPORT_STATUS_IN_PROGRESS
37
+ when 'sbom_export_status_completed' then SBOM_EXPORT_STATUS_COMPLETED
38
+ when 'sbom_export_status_failed' then SBOM_EXPORT_STATUS_FAILED
39
+ else
40
+ default_value
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,55 @@
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
+ # Status of the finding. | value | description | |-------|---------------| |
8
+ # FINDING_STATUS_OPEN | | | FINDING_STATUS_IGNORED | | |
9
+ # FINDING_STATUS_FIXED | | | FINDING_STATUS_REMOVED | | |
10
+ # FINDING_STATUS_UNKNOWN | | | FINDING_STATUS_PROVISIONALLY_IGNORED | |
11
+ class Status6
12
+ STATUS6 = [
13
+ # TODO: Write general description for FINDING_STATUS_OPEN
14
+ FINDING_STATUS_OPEN = 'FINDING_STATUS_OPEN'.freeze,
15
+
16
+ # TODO: Write general description for FINDING_STATUS_IGNORED
17
+ FINDING_STATUS_IGNORED = 'FINDING_STATUS_IGNORED'.freeze,
18
+
19
+ # TODO: Write general description for FINDING_STATUS_FIXED
20
+ FINDING_STATUS_FIXED = 'FINDING_STATUS_FIXED'.freeze,
21
+
22
+ # TODO: Write general description for FINDING_STATUS_REMOVED
23
+ FINDING_STATUS_REMOVED = 'FINDING_STATUS_REMOVED'.freeze,
24
+
25
+ # TODO: Write general description for FINDING_STATUS_UNKNOWN
26
+ FINDING_STATUS_UNKNOWN = 'FINDING_STATUS_UNKNOWN'.freeze,
27
+
28
+ # TODO: Write general description for FINDING_STATUS_PROVISIONALLY_IGNORED
29
+ FINDING_STATUS_PROVISIONALLY_IGNORED = 'FINDING_STATUS_PROVISIONALLY_IGNORED'.freeze
30
+ ].freeze
31
+
32
+ def self.validate(value)
33
+ return false if value.nil?
34
+
35
+ STATUS6.include?(value)
36
+ end
37
+
38
+ def self.from_value(value, default_value = FINDING_STATUS_OPEN)
39
+ return default_value if value.nil?
40
+
41
+ str = value.to_s.strip
42
+
43
+ case str.downcase
44
+ when 'finding_status_open' then FINDING_STATUS_OPEN
45
+ when 'finding_status_ignored' then FINDING_STATUS_IGNORED
46
+ when 'finding_status_fixed' then FINDING_STATUS_FIXED
47
+ when 'finding_status_removed' then FINDING_STATUS_REMOVED
48
+ when 'finding_status_unknown' then FINDING_STATUS_UNKNOWN
49
+ when 'finding_status_provisionally_ignored' then FINDING_STATUS_PROVISIONALLY_IGNORED
50
+ else
51
+ default_value
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,59 @@
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 current status of the scan | value | description |
8
+ # |-------|---------------| | SCAN_STATUS_RUNNING | The scan is currently
9
+ # running | | SCAN_STATUS_COMPLETED | The scan has completed successfully (0
10
+ # or 1 exit code) | | SCAN_STATUS_PENDING | The scan is queued and waiting to
11
+ # start | | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
12
+ # | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0 or
13
+ # 1) | | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or
14
+ # success after over an hour |
15
+ class Status7
16
+ STATUS7 = [
17
+ # TODO: Write general description for SCAN_STATUS_RUNNING
18
+ SCAN_STATUS_RUNNING = 'SCAN_STATUS_RUNNING'.freeze,
19
+
20
+ # TODO: Write general description for SCAN_STATUS_COMPLETED
21
+ SCAN_STATUS_COMPLETED = 'SCAN_STATUS_COMPLETED'.freeze,
22
+
23
+ # TODO: Write general description for SCAN_STATUS_PENDING
24
+ SCAN_STATUS_PENDING = 'SCAN_STATUS_PENDING'.freeze,
25
+
26
+ # TODO: Write general description for SCAN_STATUS_CANCELLED
27
+ SCAN_STATUS_CANCELLED = 'SCAN_STATUS_CANCELLED'.freeze,
28
+
29
+ # TODO: Write general description for SCAN_STATUS_ERROR
30
+ SCAN_STATUS_ERROR = 'SCAN_STATUS_ERROR'.freeze,
31
+
32
+ # TODO: Write general description for SCAN_STATUS_NEVER_FINISHED
33
+ SCAN_STATUS_NEVER_FINISHED = 'SCAN_STATUS_NEVER_FINISHED'.freeze
34
+ ].freeze
35
+
36
+ def self.validate(value)
37
+ return false if value.nil?
38
+
39
+ STATUS7.include?(value)
40
+ end
41
+
42
+ def self.from_value(value, default_value = SCAN_STATUS_RUNNING)
43
+ return default_value if value.nil?
44
+
45
+ str = value.to_s.strip
46
+
47
+ case str.downcase
48
+ when 'scan_status_running' then SCAN_STATUS_RUNNING
49
+ when 'scan_status_completed' then SCAN_STATUS_COMPLETED
50
+ when 'scan_status_pending' then SCAN_STATUS_PENDING
51
+ when 'scan_status_cancelled' then SCAN_STATUS_CANCELLED
52
+ when 'scan_status_error' then SCAN_STATUS_ERROR
53
+ when 'scan_status_never_finished' then SCAN_STATUS_NEVER_FINISHED
54
+ else
55
+ default_value
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,61 @@
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
+ # Status of the finding. - FINDING_STATUS_UNSPECIFIED: Return results for all
8
+ # finding statuses (if used as a parameter). - FINDING_STATUS_OPEN: Finding
9
+ # is open and needs to be triaged - FINDING_STATUS_IGNORED: Finding has been
10
+ # triaged and is being ignored - FINDING_STATUS_FIXED: Finding has been fixed
11
+ # - FINDING_STATUS_REMOVED: Finding has been removed -
12
+ # FINDING_STATUS_UNKNOWN: Finding status is unknown
13
+ class Status8
14
+ STATUS8 = [
15
+ # TODO: Write general description for FINDING_STATUS_UNSPECIFIED
16
+ FINDING_STATUS_UNSPECIFIED = 'FINDING_STATUS_UNSPECIFIED'.freeze,
17
+
18
+ # TODO: Write general description for FINDING_STATUS_OPEN
19
+ FINDING_STATUS_OPEN = 'FINDING_STATUS_OPEN'.freeze,
20
+
21
+ # TODO: Write general description for FINDING_STATUS_IGNORED
22
+ FINDING_STATUS_IGNORED = 'FINDING_STATUS_IGNORED'.freeze,
23
+
24
+ # TODO: Write general description for FINDING_STATUS_FIXED
25
+ FINDING_STATUS_FIXED = 'FINDING_STATUS_FIXED'.freeze,
26
+
27
+ # TODO: Write general description for FINDING_STATUS_REMOVED
28
+ FINDING_STATUS_REMOVED = 'FINDING_STATUS_REMOVED'.freeze,
29
+
30
+ # TODO: Write general description for FINDING_STATUS_UNKNOWN
31
+ FINDING_STATUS_UNKNOWN = 'FINDING_STATUS_UNKNOWN'.freeze,
32
+
33
+ # TODO: Write general description for FINDING_STATUS_PROVISIONALLY_IGNORED
34
+ FINDING_STATUS_PROVISIONALLY_IGNORED = 'FINDING_STATUS_PROVISIONALLY_IGNORED'.freeze
35
+ ].freeze
36
+
37
+ def self.validate(value)
38
+ return false if value.nil?
39
+
40
+ STATUS8.include?(value)
41
+ end
42
+
43
+ def self.from_value(value, default_value = FINDING_STATUS_UNSPECIFIED)
44
+ return default_value if value.nil?
45
+
46
+ str = value.to_s.strip
47
+
48
+ case str.downcase
49
+ when 'finding_status_unspecified' then FINDING_STATUS_UNSPECIFIED
50
+ when 'finding_status_open' then FINDING_STATUS_OPEN
51
+ when 'finding_status_ignored' then FINDING_STATUS_IGNORED
52
+ when 'finding_status_fixed' then FINDING_STATUS_FIXED
53
+ when 'finding_status_removed' then FINDING_STATUS_REMOVED
54
+ when 'finding_status_unknown' then FINDING_STATUS_UNKNOWN
55
+ when 'finding_status_provisionally_ignored' then FINDING_STATUS_PROVISIONALLY_IGNORED
56
+ else
57
+ default_value
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,55 @@
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 status do you want to include? If not specified, includes all
8
+ # statuses. Findings in the `removed` state are always excluded from this
9
+ # endpoint. Valid values: open, fixed, ignored, reviewing, fixing,
10
+ # provisionally_ignored
11
+ class Status9
12
+ STATUS9 = [
13
+ # TODO: Write general description for OPEN
14
+ OPEN = 'open'.freeze,
15
+
16
+ # TODO: Write general description for FIXED
17
+ FIXED = 'fixed'.freeze,
18
+
19
+ # TODO: Write general description for IGNORED
20
+ IGNORED = 'ignored'.freeze,
21
+
22
+ # TODO: Write general description for REVIEWING
23
+ REVIEWING = 'reviewing'.freeze,
24
+
25
+ # TODO: Write general description for FIXING
26
+ FIXING = 'fixing'.freeze,
27
+
28
+ # TODO: Write general description for PROVISIONALLY_IGNORED
29
+ PROVISIONALLY_IGNORED = 'provisionally_ignored'.freeze
30
+ ].freeze
31
+
32
+ def self.validate(value)
33
+ return false if value.nil?
34
+
35
+ STATUS9.include?(value)
36
+ end
37
+
38
+ def self.from_value(value, default_value = OPEN)
39
+ return default_value if value.nil?
40
+
41
+ str = value.to_s.strip
42
+
43
+ case str.downcase
44
+ when 'open' then OPEN
45
+ when 'fixed' then FIXED
46
+ when 'ignored' then IGNORED
47
+ when 'reviewing' then REVIEWING
48
+ when 'fixing' then FIXING
49
+ when 'provisionally_ignored' then PROVISIONALLY_IGNORED
50
+ else
51
+ default_value
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,63 @@
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
+ # Only get scans that have one of these statuses | value | description |
8
+ # |-------|---------------| | SCAN_STATUS_RUNNING | The scan is currently
9
+ # running | | SCAN_STATUS_COMPLETED | The scan has completed successfully (0
10
+ # or 1 exit code) | | SCAN_STATUS_PENDING | The scan is queued and waiting to
11
+ # start | | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
12
+ # | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0 or
13
+ # 1) | | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or
14
+ # success after over an hour |
15
+ class Statuses
16
+ STATUSES = [
17
+ # TODO: Write general description for SCAN_STATUS_UNSPECIFIED
18
+ SCAN_STATUS_UNSPECIFIED = 'SCAN_STATUS_UNSPECIFIED'.freeze,
19
+
20
+ # TODO: Write general description for SCAN_STATUS_RUNNING
21
+ SCAN_STATUS_RUNNING = 'SCAN_STATUS_RUNNING'.freeze,
22
+
23
+ # TODO: Write general description for SCAN_STATUS_COMPLETED
24
+ SCAN_STATUS_COMPLETED = 'SCAN_STATUS_COMPLETED'.freeze,
25
+
26
+ # TODO: Write general description for SCAN_STATUS_PENDING
27
+ SCAN_STATUS_PENDING = 'SCAN_STATUS_PENDING'.freeze,
28
+
29
+ # TODO: Write general description for SCAN_STATUS_CANCELLED
30
+ SCAN_STATUS_CANCELLED = 'SCAN_STATUS_CANCELLED'.freeze,
31
+
32
+ # TODO: Write general description for SCAN_STATUS_ERROR
33
+ SCAN_STATUS_ERROR = 'SCAN_STATUS_ERROR'.freeze,
34
+
35
+ # TODO: Write general description for SCAN_STATUS_NEVER_FINISHED
36
+ SCAN_STATUS_NEVER_FINISHED = 'SCAN_STATUS_NEVER_FINISHED'.freeze
37
+ ].freeze
38
+
39
+ def self.validate(value)
40
+ return false if value.nil?
41
+
42
+ STATUSES.include?(value)
43
+ end
44
+
45
+ def self.from_value(value, default_value = SCAN_STATUS_UNSPECIFIED)
46
+ return default_value if value.nil?
47
+
48
+ str = value.to_s.strip
49
+
50
+ case str.downcase
51
+ when 'scan_status_unspecified' then SCAN_STATUS_UNSPECIFIED
52
+ when 'scan_status_running' then SCAN_STATUS_RUNNING
53
+ when 'scan_status_completed' then SCAN_STATUS_COMPLETED
54
+ when 'scan_status_pending' then SCAN_STATUS_PENDING
55
+ when 'scan_status_cancelled' then SCAN_STATUS_CANCELLED
56
+ when 'scan_status_error' then SCAN_STATUS_ERROR
57
+ when 'scan_status_never_finished' then SCAN_STATUS_NEVER_FINISHED
58
+ else
59
+ default_value
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,108 @@
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
+ # ToggleProjectManagedScanRequest Model.
8
+ class ToggleProjectManagedScanRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Slug of the deployment name. Can be found at `/deployments`, or in your
13
+ # Settings in the web UI.
14
+ # @return [String]
15
+ attr_accessor :deployment_slug
16
+
17
+ # Slug of the deployment name. Can be found at `/deployments`, or in your
18
+ # Settings in the web UI.
19
+ # @return [ProtosOpenapiV1DiffScan]
20
+ attr_accessor :diff_scan
21
+
22
+ # Slug of the deployment name. Can be found at `/deployments`, or in your
23
+ # Settings in the web UI.
24
+ # @return [ProtosOpenapiV1FullScan]
25
+ attr_accessor :full_scan
26
+
27
+ # Name of the project, typically the repository formatted as a path.
28
+ # @return [String]
29
+ attr_accessor :project_name
30
+
31
+ # A mapping from model property names to API property names.
32
+ def self.names
33
+ @_hash = {} if @_hash.nil?
34
+ @_hash['deployment_slug'] = 'deploymentSlug'
35
+ @_hash['diff_scan'] = 'diff_scan'
36
+ @_hash['full_scan'] = 'full_scan'
37
+ @_hash['project_name'] = 'projectName'
38
+ @_hash
39
+ end
40
+
41
+ # An array for optional fields
42
+ def self.optionals
43
+ %w[
44
+ diff_scan
45
+ full_scan
46
+ ]
47
+ end
48
+
49
+ # An array for nullable fields
50
+ def self.nullables
51
+ []
52
+ end
53
+
54
+ def initialize(deployment_slug:, project_name:, diff_scan: SKIP,
55
+ full_scan: SKIP, additional_properties: nil)
56
+ # Add additional model properties to the instance
57
+ additional_properties = {} if additional_properties.nil?
58
+
59
+ @deployment_slug = deployment_slug
60
+ @diff_scan = diff_scan unless diff_scan == SKIP
61
+ @full_scan = full_scan unless full_scan == SKIP
62
+ @project_name = project_name
63
+ @additional_properties = additional_properties
64
+ end
65
+
66
+ # Creates an instance of the object from a hash.
67
+ def self.from_hash(hash)
68
+ return nil unless hash
69
+
70
+ # Extract variables from the hash.
71
+ deployment_slug =
72
+ hash.key?('deploymentSlug') ? hash['deploymentSlug'] : nil
73
+ project_name = hash.key?('projectName') ? hash['projectName'] : nil
74
+ diff_scan = ProtosOpenapiV1DiffScan.from_hash(hash['diff_scan']) if hash['diff_scan']
75
+ full_scan = ProtosOpenapiV1FullScan.from_hash(hash['full_scan']) if hash['full_scan']
76
+
77
+ # Create a new hash for additional properties, removing known properties.
78
+ new_hash = hash.reject { |k, _| names.value?(k) }
79
+
80
+ additional_properties = APIHelper.get_additional_properties(
81
+ new_hash, proc { |value| value }
82
+ )
83
+
84
+ # Create object from extracted values.
85
+ ToggleProjectManagedScanRequest.new(deployment_slug: deployment_slug,
86
+ project_name: project_name,
87
+ diff_scan: diff_scan,
88
+ full_scan: full_scan,
89
+ additional_properties: additional_properties)
90
+ end
91
+
92
+ # Provides a human-readable string representation of the object.
93
+ def to_s
94
+ class_name = self.class.name.split('::').last
95
+ "<#{class_name} deployment_slug: #{@deployment_slug}, diff_scan: #{@diff_scan}, full_scan:"\
96
+ " #{@full_scan}, project_name: #{@project_name}, additional_properties:"\
97
+ " #{@additional_properties}>"
98
+ end
99
+
100
+ # Provides a debugging-friendly string with detailed object information.
101
+ def inspect
102
+ class_name = self.class.name.split('::').last
103
+ "<#{class_name} deployment_slug: #{@deployment_slug.inspect}, diff_scan:"\
104
+ " #{@diff_scan.inspect}, full_scan: #{@full_scan.inspect}, project_name:"\
105
+ " #{@project_name.inspect}, additional_properties: #{@additional_properties}>"
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,73 @@
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
+ # Successfully updated managed scan settings for project.
8
+ class ToggleProjectManagedScanResponse < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # A project in your organization that uses Semgrep.
13
+ # @return [Project]
14
+ attr_accessor :project
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['project'] = 'project'
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(project:, additional_properties: nil)
34
+ # Add additional model properties to the instance
35
+ additional_properties = {} if additional_properties.nil?
36
+
37
+ @project = project
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
+ project = Project.from_hash(hash['project']) if hash['project']
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
+ ToggleProjectManagedScanResponse.new(project: project,
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} project: #{@project}, additional_properties: #{@additional_properties}>"
64
+ end
65
+
66
+ # Provides a debugging-friendly string with detailed object information.
67
+ def inspect
68
+ class_name = self.class.name.split('::').last
69
+ "<#{class_name} project: #{@project.inspect}, additional_properties:"\
70
+ " #{@additional_properties}>"
71
+ end
72
+ end
73
+ 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
+ # Filter by transitivity of a dependency. Only applies for sca findings.
8
+ class Transitivities
9
+ TRANSITIVITIES = [
10
+ # TODO: Write general description for DIRECT
11
+ DIRECT = 'direct'.freeze,
12
+
13
+ # TODO: Write general description for TRANSITIVE
14
+ TRANSITIVE = 'transitive'.freeze,
15
+
16
+ # TODO: Write general description for UNKNOWN
17
+ UNKNOWN = 'unknown'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ TRANSITIVITIES.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = DIRECT)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'direct' then DIRECT
33
+ when 'transitive' then TRANSITIVE
34
+ when 'unknown' then UNKNOWN
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ 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
+ # List of transitivities to filter by. If not specified, returns all
8
+ # transitivities. This filter is applicable when `issue_type=sca` is
9
+ # specified. Valid values: direct, transitive, unknown
10
+ class Transitivities2
11
+ TRANSITIVITIES2 = [
12
+ # TODO: Write general description for DIRECT
13
+ DIRECT = 'direct'.freeze,
14
+
15
+ # TODO: Write general description for TRANSITIVE
16
+ TRANSITIVE = 'transitive'.freeze,
17
+
18
+ # TODO: Write general description for UNKNOWN
19
+ UNKNOWN = 'unknown'.freeze
20
+ ].freeze
21
+
22
+ def self.validate(value)
23
+ return false if value.nil?
24
+
25
+ TRANSITIVITIES2.include?(value)
26
+ end
27
+
28
+ def self.from_value(value, default_value = DIRECT)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'direct' then DIRECT
35
+ when 'transitive' then TRANSITIVE
36
+ when 'unknown' then UNKNOWN
37
+ else
38
+ default_value
39
+ end
40
+ end
41
+ end
42
+ 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
+ # Filter by transitivity. | value | description | |-------|---------------| |
8
+ # UNKNOWN_TRANSITIVITY | | | TRANSITIVE | | | DIRECT | |
9
+ class Transitivity
10
+ TRANSITIVITY = [
11
+ # TODO: Write general description for UNKNOWN_TRANSITIVITY
12
+ UNKNOWN_TRANSITIVITY = 'UNKNOWN_TRANSITIVITY'.freeze,
13
+
14
+ # TODO: Write general description for TRANSITIVE
15
+ TRANSITIVE = 'TRANSITIVE'.freeze,
16
+
17
+ # TODO: Write general description for DIRECT
18
+ DIRECT = 'DIRECT'.freeze
19
+ ].freeze
20
+
21
+ def self.validate(value)
22
+ return false if value.nil?
23
+
24
+ TRANSITIVITY.include?(value)
25
+ end
26
+
27
+ def self.from_value(value, default_value = UNKNOWN_TRANSITIVITY)
28
+ return default_value if value.nil?
29
+
30
+ str = value.to_s.strip
31
+
32
+ case str.downcase
33
+ when 'unknown_transitivity' then UNKNOWN_TRANSITIVITY
34
+ when 'transitive' then TRANSITIVE
35
+ when 'direct' then DIRECT
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
+ # Whether dependency is direct or transitive. | value | description |
8
+ # |-------|---------------| | UNKNOWN_TRANSITIVITY | | | TRANSITIVE | | |
9
+ # DIRECT | |
10
+ class Transitivity1
11
+ TRANSITIVITY1 = [
12
+ # TODO: Write general description for UNKNOWN_TRANSITIVITY
13
+ UNKNOWN_TRANSITIVITY = 'UNKNOWN_TRANSITIVITY'.freeze,
14
+
15
+ # TODO: Write general description for TRANSITIVE
16
+ TRANSITIVE = 'TRANSITIVE'.freeze,
17
+
18
+ # TODO: Write general description for DIRECT
19
+ DIRECT = 'DIRECT'.freeze
20
+ ].freeze
21
+
22
+ def self.validate(value)
23
+ return false if value.nil?
24
+
25
+ TRANSITIVITY1.include?(value)
26
+ end
27
+
28
+ def self.from_value(value, default_value = UNKNOWN_TRANSITIVITY)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'unknown_transitivity' then UNKNOWN_TRANSITIVITY
35
+ when 'transitive' then TRANSITIVE
36
+ when 'direct' then DIRECT
37
+ else
38
+ default_value
39
+ end
40
+ end
41
+ end
42
+ end