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,202 @@
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
+ # SearchScansRequest Model.
9
+ class SearchScansRequest < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Only get scans from the specified branch
14
+ # @return [String]
15
+ attr_accessor :branch
16
+
17
+ # Cursor to paginate through the results
18
+ # @return [String]
19
+ attr_accessor :cursor
20
+
21
+ # Deployment ID (numeric). Example: `123`. Can be found at `/deployments`,
22
+ # or in your Settings in the web UI.
23
+ # @return [String]
24
+ attr_accessor :deployment_id
25
+
26
+ # Only get scans that are full scans (if false, only get diff scans)
27
+ # @return [Integer]
28
+ attr_accessor :is_full_scan
29
+
30
+ # Page size to paginate through the results (default is 100, max is 500)
31
+ # @return [Integer]
32
+ attr_accessor :limit
33
+
34
+ # Only get scans that have these enabled products
35
+ # | value | description |
36
+ # |-------|---------------|
37
+ # | PRODUCT_SAST | |
38
+ # | PRODUCT_SCA | |
39
+ # | PRODUCT_SECRETS | |
40
+ # | PRODUCT_AI_SAST | |
41
+ # @return [Products]
42
+ attr_accessor :products
43
+
44
+ # Only get scans for this repo
45
+ # @return [Integer]
46
+ attr_accessor :repository_id
47
+
48
+ # Only get scans created after this time. Provide time in ISO 8601 format.
49
+ # @return [DateTime]
50
+ attr_accessor :since
51
+
52
+ # Only get scans that have one of these statuses
53
+ # | value | description |
54
+ # |-------|---------------|
55
+ # | SCAN_STATUS_RUNNING | The scan is currently running |
56
+ # | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1 exit
57
+ # code) |
58
+ # | SCAN_STATUS_PENDING | The scan is queued and waiting to start |
59
+ # | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
60
+ # | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0
61
+ # or 1) |
62
+ # | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success
63
+ # after over an hour |
64
+ # @return [Statuses]
65
+ attr_accessor :statuses
66
+
67
+ # Only get scans that have one of these statuses
68
+ # | value | description |
69
+ # |-------|---------------|
70
+ # | SCAN_STATUS_RUNNING | The scan is currently running |
71
+ # | SCAN_STATUS_COMPLETED | The scan has completed successfully (0 or 1 exit
72
+ # code) |
73
+ # | SCAN_STATUS_PENDING | The scan is queued and waiting to start |
74
+ # | SCAN_STATUS_CANCELLED | The scan was cancelled before completion |
75
+ # | SCAN_STATUS_ERROR | The scan has exited with a failure (exit code not 0
76
+ # or 1) |
77
+ # | SCAN_STATUS_NEVER_FINISHED | The scan did not report an error or success
78
+ # after over an hour |
79
+ # @return [FloatRange]
80
+ attr_accessor :total_time
81
+
82
+ # A mapping from model property names to API property names.
83
+ def self.names
84
+ @_hash = {} if @_hash.nil?
85
+ @_hash['branch'] = 'branch'
86
+ @_hash['cursor'] = 'cursor'
87
+ @_hash['deployment_id'] = 'deploymentId'
88
+ @_hash['is_full_scan'] = 'is_full_scan'
89
+ @_hash['limit'] = 'limit'
90
+ @_hash['products'] = 'products'
91
+ @_hash['repository_id'] = 'repository_id'
92
+ @_hash['since'] = 'since'
93
+ @_hash['statuses'] = 'statuses'
94
+ @_hash['total_time'] = 'total_time'
95
+ @_hash
96
+ end
97
+
98
+ # An array for optional fields
99
+ def self.optionals
100
+ %w[
101
+ branch
102
+ cursor
103
+ is_full_scan
104
+ limit
105
+ products
106
+ repository_id
107
+ since
108
+ statuses
109
+ total_time
110
+ ]
111
+ end
112
+
113
+ # An array for nullable fields
114
+ def self.nullables
115
+ []
116
+ end
117
+
118
+ def initialize(deployment_id:, branch: SKIP, cursor: SKIP,
119
+ is_full_scan: SKIP, limit: SKIP, products: SKIP,
120
+ repository_id: SKIP, since: SKIP, statuses: SKIP,
121
+ total_time: SKIP, additional_properties: nil)
122
+ # Add additional model properties to the instance
123
+ additional_properties = {} if additional_properties.nil?
124
+
125
+ @branch = branch unless branch == SKIP
126
+ @cursor = cursor unless cursor == SKIP
127
+ @deployment_id = deployment_id
128
+ @is_full_scan = is_full_scan unless is_full_scan == SKIP
129
+ @limit = limit unless limit == SKIP
130
+ @products = products unless products == SKIP
131
+ @repository_id = repository_id unless repository_id == SKIP
132
+ @since = since unless since == SKIP
133
+ @statuses = statuses unless statuses == SKIP
134
+ @total_time = total_time unless total_time == SKIP
135
+ @additional_properties = additional_properties
136
+ end
137
+
138
+ # Creates an instance of the object from a hash.
139
+ def self.from_hash(hash)
140
+ return nil unless hash
141
+
142
+ # Extract variables from the hash.
143
+ deployment_id = hash.key?('deploymentId') ? hash['deploymentId'] : nil
144
+ branch = hash.key?('branch') ? hash['branch'] : SKIP
145
+ cursor = hash.key?('cursor') ? hash['cursor'] : SKIP
146
+ is_full_scan = hash.key?('is_full_scan') ? hash['is_full_scan'] : SKIP
147
+ limit = hash.key?('limit') ? hash['limit'] : SKIP
148
+ products = hash.key?('products') ? hash['products'] : SKIP
149
+ repository_id = hash.key?('repository_id') ? hash['repository_id'] : SKIP
150
+ since = if hash.key?('since')
151
+ (DateTimeHelper.from_rfc3339(hash['since']) if hash['since'])
152
+ else
153
+ SKIP
154
+ end
155
+ statuses = hash.key?('statuses') ? hash['statuses'] : SKIP
156
+ total_time = FloatRange.from_hash(hash['total_time']) if hash['total_time']
157
+
158
+ # Create a new hash for additional properties, removing known properties.
159
+ new_hash = hash.reject { |k, _| names.value?(k) }
160
+
161
+ additional_properties = APIHelper.get_additional_properties(
162
+ new_hash, proc { |value| value }
163
+ )
164
+
165
+ # Create object from extracted values.
166
+ SearchScansRequest.new(deployment_id: deployment_id,
167
+ branch: branch,
168
+ cursor: cursor,
169
+ is_full_scan: is_full_scan,
170
+ limit: limit,
171
+ products: products,
172
+ repository_id: repository_id,
173
+ since: since,
174
+ statuses: statuses,
175
+ total_time: total_time,
176
+ additional_properties: additional_properties)
177
+ end
178
+
179
+ def to_custom_since
180
+ DateTimeHelper.to_rfc3339(since)
181
+ end
182
+
183
+ # Provides a human-readable string representation of the object.
184
+ def to_s
185
+ class_name = self.class.name.split('::').last
186
+ "<#{class_name} branch: #{@branch}, cursor: #{@cursor}, deployment_id: #{@deployment_id},"\
187
+ " is_full_scan: #{@is_full_scan}, limit: #{@limit}, products: #{@products}, repository_id:"\
188
+ " #{@repository_id}, since: #{@since}, statuses: #{@statuses}, total_time: #{@total_time},"\
189
+ " additional_properties: #{@additional_properties}>"
190
+ end
191
+
192
+ # Provides a debugging-friendly string with detailed object information.
193
+ def inspect
194
+ class_name = self.class.name.split('::').last
195
+ "<#{class_name} branch: #{@branch.inspect}, cursor: #{@cursor.inspect}, deployment_id:"\
196
+ " #{@deployment_id.inspect}, is_full_scan: #{@is_full_scan.inspect}, limit:"\
197
+ " #{@limit.inspect}, products: #{@products.inspect}, repository_id:"\
198
+ " #{@repository_id.inspect}, since: #{@since.inspect}, statuses: #{@statuses.inspect},"\
199
+ " total_time: #{@total_time.inspect}, additional_properties: #{@additional_properties}>"
200
+ end
201
+ end
202
+ end
@@ -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
+ # List of severities to filter by
8
+ class Severities
9
+ SEVERITIES = [
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
+
19
+ # TODO: Write general description for CRITICAL
20
+ CRITICAL = 'critical'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ SEVERITIES.include?(value)
27
+ end
28
+
29
+ def self.from_value(value, default_value = LOW)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'low' then LOW
36
+ when 'medium' then MEDIUM
37
+ when 'high' then HIGH
38
+ when 'critical' then CRITICAL
39
+ else
40
+ default_value
41
+ end
42
+ end
43
+ end
44
+ 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
+ # What severities of issues do you want to include? If not specified, returns
8
+ # all. Valid values: low, medium, high, critical
9
+ class Severities2
10
+ SEVERITIES2 = [
11
+ # TODO: Write general description for LOW
12
+ LOW = 'low'.freeze,
13
+
14
+ # TODO: Write general description for MEDIUM
15
+ MEDIUM = 'medium'.freeze,
16
+
17
+ # TODO: Write general description for HIGH
18
+ HIGH = 'high'.freeze,
19
+
20
+ # TODO: Write general description for CRITICAL
21
+ CRITICAL = 'critical'.freeze
22
+ ].freeze
23
+
24
+ def self.validate(value)
25
+ return false if value.nil?
26
+
27
+ SEVERITIES2.include?(value)
28
+ end
29
+
30
+ def self.from_value(value, default_value = LOW)
31
+ return default_value if value.nil?
32
+
33
+ str = value.to_s.strip
34
+
35
+ case str.downcase
36
+ when 'low' then LOW
37
+ when 'medium' then MEDIUM
38
+ when 'high' then HIGH
39
+ when 'critical' then CRITICAL
40
+ else
41
+ default_value
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,46 @@
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
+ # Severity level ("seriousness" of the finding) | value | description |
8
+ # |-------|---------------| | SEVERITY_HIGH | | | SEVERITY_MEDIUM | | |
9
+ # SEVERITY_LOW | | | SEVERITY_CRITICAL | |
10
+ class Severity
11
+ SEVERITY = [
12
+ # TODO: Write general description for SEVERITY_HIGH
13
+ SEVERITY_HIGH = 'SEVERITY_HIGH'.freeze,
14
+
15
+ # TODO: Write general description for SEVERITY_MEDIUM
16
+ SEVERITY_MEDIUM = 'SEVERITY_MEDIUM'.freeze,
17
+
18
+ # TODO: Write general description for SEVERITY_LOW
19
+ SEVERITY_LOW = 'SEVERITY_LOW'.freeze,
20
+
21
+ # TODO: Write general description for SEVERITY_CRITICAL
22
+ SEVERITY_CRITICAL = 'SEVERITY_CRITICAL'.freeze
23
+ ].freeze
24
+
25
+ def self.validate(value)
26
+ return false if value.nil?
27
+
28
+ SEVERITY.include?(value)
29
+ end
30
+
31
+ def self.from_value(value, default_value = SEVERITY_HIGH)
32
+ return default_value if value.nil?
33
+
34
+ str = value.to_s.strip
35
+
36
+ case str.downcase
37
+ when 'severity_high' then SEVERITY_HIGH
38
+ when 'severity_medium' then SEVERITY_MEDIUM
39
+ when 'severity_low' then SEVERITY_LOW
40
+ when 'severity_critical' then SEVERITY_CRITICAL
41
+ else
42
+ default_value
43
+ end
44
+ end
45
+ end
46
+ 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
+ # Severity of the finding, derived from the rule that triggered it. Low is
8
+ # equivalent to INFO, Medium to WARNING, and High to ERROR
9
+ class Severity1
10
+ SEVERITY1 = [
11
+ # TODO: Write general description for LOW
12
+ LOW = 'low'.freeze,
13
+
14
+ # TODO: Write general description for MEDIUM
15
+ MEDIUM = 'medium'.freeze,
16
+
17
+ # TODO: Write general description for HIGH
18
+ HIGH = 'high'.freeze,
19
+
20
+ # TODO: Write general description for CRITICAL
21
+ CRITICAL = 'critical'.freeze
22
+ ].freeze
23
+
24
+ def self.validate(value)
25
+ return false if value.nil?
26
+
27
+ SEVERITY1.include?(value)
28
+ end
29
+
30
+ def self.from_value(value, default_value = LOW)
31
+ return default_value if value.nil?
32
+
33
+ str = value.to_s.strip
34
+
35
+ case str.downcase
36
+ when 'low' then LOW
37
+ when 'medium' then MEDIUM
38
+ when 'high' then HIGH
39
+ when 'critical' then CRITICAL
40
+ else
41
+ default_value
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,46 @@
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
+ # Severity of the finding. | value | description | |-------|---------------| |
8
+ # SEVERITY_HIGH | | | SEVERITY_MEDIUM | | | SEVERITY_LOW | | |
9
+ # SEVERITY_CRITICAL | |
10
+ class Severity4
11
+ SEVERITY4 = [
12
+ # TODO: Write general description for SEVERITY_HIGH
13
+ SEVERITY_HIGH = 'SEVERITY_HIGH'.freeze,
14
+
15
+ # TODO: Write general description for SEVERITY_MEDIUM
16
+ SEVERITY_MEDIUM = 'SEVERITY_MEDIUM'.freeze,
17
+
18
+ # TODO: Write general description for SEVERITY_LOW
19
+ SEVERITY_LOW = 'SEVERITY_LOW'.freeze,
20
+
21
+ # TODO: Write general description for SEVERITY_CRITICAL
22
+ SEVERITY_CRITICAL = 'SEVERITY_CRITICAL'.freeze
23
+ ].freeze
24
+
25
+ def self.validate(value)
26
+ return false if value.nil?
27
+
28
+ SEVERITY4.include?(value)
29
+ end
30
+
31
+ def self.from_value(value, default_value = SEVERITY_HIGH)
32
+ return default_value if value.nil?
33
+
34
+ str = value.to_s.strip
35
+
36
+ case str.downcase
37
+ when 'severity_high' then SEVERITY_HIGH
38
+ when 'severity_medium' then SEVERITY_MEDIUM
39
+ when 'severity_low' then SEVERITY_LOW
40
+ when 'severity_critical' then SEVERITY_CRITICAL
41
+ else
42
+ default_value
43
+ end
44
+ end
45
+ end
46
+ 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
+ # severity5.
8
+ class Severity5
9
+ SEVERITY5 = [
10
+ # TODO: Write general description for SEVERITY_UNSPECIFIED
11
+ SEVERITY_UNSPECIFIED = 'SEVERITY_UNSPECIFIED'.freeze,
12
+
13
+ # TODO: Write general description for SEVERITY_HIGH
14
+ SEVERITY_HIGH = 'SEVERITY_HIGH'.freeze,
15
+
16
+ # TODO: Write general description for SEVERITY_MEDIUM
17
+ SEVERITY_MEDIUM = 'SEVERITY_MEDIUM'.freeze,
18
+
19
+ # TODO: Write general description for SEVERITY_LOW
20
+ SEVERITY_LOW = 'SEVERITY_LOW'.freeze,
21
+
22
+ # TODO: Write general description for SEVERITY_CRITICAL
23
+ SEVERITY_CRITICAL = 'SEVERITY_CRITICAL'.freeze
24
+ ].freeze
25
+
26
+ def self.validate(value)
27
+ return false if value.nil?
28
+
29
+ SEVERITY5.include?(value)
30
+ end
31
+
32
+ def self.from_value(value, default_value = SEVERITY_UNSPECIFIED)
33
+ return default_value if value.nil?
34
+
35
+ str = value.to_s.strip
36
+
37
+ case str.downcase
38
+ when 'severity_unspecified' then SEVERITY_UNSPECIFIED
39
+ when 'severity_high' then SEVERITY_HIGH
40
+ when 'severity_medium' then SEVERITY_MEDIUM
41
+ when 'severity_low' then SEVERITY_LOW
42
+ when 'severity_critical' then SEVERITY_CRITICAL
43
+ else
44
+ default_value
45
+ end
46
+ end
47
+ end
48
+ 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
+ # Source of the Rule | value | description | |-------|---------------| |
8
+ # SOURCE_PRO | From Pro rules | | SOURCE_COMMUNITY | From Semgrep Community
9
+ # rules | | SOURCE_CUSTOM | From Custom rules |
10
+ class Source
11
+ SOURCE = [
12
+ # TODO: Write general description for SOURCE_PRO
13
+ SOURCE_PRO = 'SOURCE_PRO'.freeze,
14
+
15
+ # TODO: Write general description for SOURCE_COMMUNITY
16
+ SOURCE_COMMUNITY = 'SOURCE_COMMUNITY'.freeze,
17
+
18
+ # TODO: Write general description for SOURCE_CUSTOM
19
+ SOURCE_CUSTOM = 'SOURCE_CUSTOM'.freeze
20
+ ].freeze
21
+
22
+ def self.validate(value)
23
+ return false if value.nil?
24
+
25
+ SOURCE.include?(value)
26
+ end
27
+
28
+ def self.from_value(value, default_value = SOURCE_PRO)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'source_pro' then SOURCE_PRO
35
+ when 'source_community' then SOURCE_COMMUNITY
36
+ when 'source_custom' then SOURCE_CUSTOM
37
+ else
38
+ default_value
39
+ end
40
+ end
41
+ end
42
+ 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
+ # The finding's resolution state. Managed only by changes detected at scan
8
+ # time, the `state` is combined with `triage_state` to ultimately determine a
9
+ # final `status` which is exposed in the UI and API
10
+ class State
11
+ STATE = [
12
+ # TODO: Write general description for FIXED
13
+ FIXED = 'fixed'.freeze,
14
+
15
+ # TODO: Write general description for MUTED
16
+ MUTED = 'muted'.freeze,
17
+
18
+ # TODO: Write general description for UNRESOLVED
19
+ UNRESOLVED = 'unresolved'.freeze
20
+ ].freeze
21
+
22
+ def self.validate(value)
23
+ return false if value.nil?
24
+
25
+ STATE.include?(value)
26
+ end
27
+
28
+ def self.from_value(value, default_value = FIXED)
29
+ return default_value if value.nil?
30
+
31
+ str = value.to_s.strip
32
+
33
+ case str.downcase
34
+ when 'fixed' then FIXED
35
+ when 'muted' then MUTED
36
+ when 'unresolved' then UNRESOLVED
37
+ else
38
+ default_value
39
+ end
40
+ end
41
+ end
42
+ 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
+ # The finding's status as exposed in the UI. Status is a derived property
8
+ # combining information from the finding `state` and `triage_state`. The
9
+ # `triage_state` can be used to override the scan state if the finding is
10
+ # still detected
11
+ class Status
12
+ STATUS = [
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
+ STATUS.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,52 @@
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 status to filter by
8
+ class Status1
9
+ STATUS1 = [
10
+ # TODO: Write general description for OPEN
11
+ OPEN = 'open'.freeze,
12
+
13
+ # TODO: Write general description for FIXED
14
+ FIXED = 'fixed'.freeze,
15
+
16
+ # TODO: Write general description for IGNORED
17
+ IGNORED = 'ignored'.freeze,
18
+
19
+ # TODO: Write general description for REVIEWING
20
+ REVIEWING = 'reviewing'.freeze,
21
+
22
+ # TODO: Write general description for FIXING
23
+ FIXING = 'fixing'.freeze,
24
+
25
+ # TODO: Write general description for PROVISIONALLY_IGNORED
26
+ PROVISIONALLY_IGNORED = 'provisionally_ignored'.freeze
27
+ ].freeze
28
+
29
+ def self.validate(value)
30
+ return false if value.nil?
31
+
32
+ STATUS1.include?(value)
33
+ end
34
+
35
+ def self.from_value(value, default_value = OPEN)
36
+ return default_value if value.nil?
37
+
38
+ str = value.to_s.strip
39
+
40
+ case str.downcase
41
+ when 'open' then OPEN
42
+ when 'fixed' then FIXED
43
+ when 'ignored' then IGNORED
44
+ when 'reviewing' then REVIEWING
45
+ when 'fixing' then FIXING
46
+ when 'provisionally_ignored' then PROVISIONALLY_IGNORED
47
+ else
48
+ default_value
49
+ end
50
+ end
51
+ end
52
+ end