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,393 @@
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
+ # Create ticket request
8
+ class CreateTicketRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The autotriage verdict to filter by
13
+ # @return [AutotriageVerdict]
14
+ attr_accessor :autotriage_verdict
15
+
16
+ # List of categories to filter by
17
+ # @return [Array[String]]
18
+ attr_accessor :categories
19
+
20
+ # List of component tags to filter by
21
+ # @return [Array[String]]
22
+ attr_accessor :component_tags
23
+
24
+ # List of confidence levels to filter by
25
+ # @return [Confidence3]
26
+ attr_accessor :confidence
27
+
28
+ # Filter by dependency name. Only applies for sca findings.
29
+ # @return [Array[String]]
30
+ attr_accessor :dependencies
31
+
32
+ # Deployment slug. Can be found at `/deployments`, or in your Settings in
33
+ # the web UI.
34
+ # @return [String]
35
+ attr_accessor :deployment_slug
36
+
37
+ # Filter by EPSS probability (likelihood of exploit). Only applies for sca
38
+ # findings.
39
+ # @return [EpssProbability]
40
+ attr_accessor :epss_probability
41
+
42
+ # Filter by exposure (reachability type). Only applies for sca findings.
43
+ # Reachability is the ability of an attacker to access a vulnerability in a
44
+ # system.
45
+ # @return [Exposures]
46
+ attr_accessor :exposures
47
+
48
+ # Whether or not to group findings from the same rule and repository into a
49
+ # single ticket. Defaults to true.
50
+ # @return [TrueClass | FalseClass]
51
+ attr_accessor :group_issues
52
+
53
+ # Whether to include historical findings. Only applies for secrets findings.
54
+ # Defaults to true.
55
+ # @return [TrueClass | FalseClass]
56
+ attr_accessor :include_historical
57
+
58
+ # An array of issue IDs to act on. If this is not provided, an issue filter
59
+ # should be provided.
60
+ # @return [Array[String]]
61
+ attr_accessor :issue_ids
62
+
63
+ # Type of findings to create tickets for.
64
+ # @return [IssueType1]
65
+ attr_accessor :issue_type
66
+
67
+ # Optional numeric Jira project ID to associate with the created tickets. If
68
+ # not specified, defaults to the project configured in your integration
69
+ # settings. You can fetch this ID using the Jira API.
70
+ # @return [String]
71
+ attr_accessor :jira_project_id
72
+
73
+ # Max number of tickets to create. Must be an integer between 1 and 20.
74
+ # Defaults to 20
75
+ # @return [Integer]
76
+ attr_accessor :limit
77
+
78
+ # List of policy modes to filter by
79
+ # @return [Array[String]]
80
+ attr_accessor :policies
81
+
82
+ # List of policy modes to filter by
83
+ # @return [PolicyMode1]
84
+ attr_accessor :policy_mode
85
+
86
+ # Filter by whether a finding is only available with Semgrep Pro features.
87
+ # Only applies for sast findings.
88
+ # @return [TrueClass | FalseClass]
89
+ attr_accessor :pro_only
90
+
91
+ # List of project tags to filter by
92
+ # @return [Array[String]]
93
+ attr_accessor :project_tags
94
+
95
+ # Branch reference to filter by
96
+ # @return [String]
97
+ attr_accessor :ref
98
+
99
+ # List of repository names to filter by
100
+ # @return [Array[String]]
101
+ attr_accessor :repos
102
+
103
+ # Filter by repository visibility. Only applies for secrets findings.
104
+ # @return [RepositoryVisibility]
105
+ attr_accessor :repository_visibility
106
+
107
+ # List of rule names to filter by
108
+ # @return [Array[String]]
109
+ attr_accessor :rules
110
+
111
+ # List of Semgrep Registry rulesets to filter by
112
+ # @return [Array[String]]
113
+ attr_accessor :ruleset
114
+
115
+ # Filter by type of secret (typically provider-related). Only applies for
116
+ # secrets findings.
117
+ # @return [Array[String]]
118
+ attr_accessor :secret_types
119
+
120
+ # List of severities to filter by
121
+ # @return [Severities]
122
+ attr_accessor :severities
123
+
124
+ # Epoch timestamp in seconds. Filters using the relevant_since field: the
125
+ # timestamp when this finding was detected by Semgrep (the first time, or
126
+ # when reintroduced).
127
+ # @return [String]
128
+ attr_accessor :since
129
+
130
+ # The status to filter by
131
+ # @return [Status1]
132
+ attr_accessor :status
133
+
134
+ # Filter by transitivity of a dependency. Only applies for sca findings.
135
+ # @return [Transitivities]
136
+ attr_accessor :transitivities
137
+
138
+ # List of triage reasons to filter by
139
+ # @return [TriageReasons]
140
+ attr_accessor :triage_reasons
141
+
142
+ # Filter by whether a secret could be validated. Only applies for secrets
143
+ # findings.
144
+ # @return [ValidationState]
145
+ attr_accessor :validation_state
146
+
147
+ # A mapping from model property names to API property names.
148
+ def self.names
149
+ @_hash = {} if @_hash.nil?
150
+ @_hash['autotriage_verdict'] = 'autotriage_verdict'
151
+ @_hash['categories'] = 'categories'
152
+ @_hash['component_tags'] = 'component_tags'
153
+ @_hash['confidence'] = 'confidence'
154
+ @_hash['dependencies'] = 'dependencies'
155
+ @_hash['deployment_slug'] = 'deploymentSlug'
156
+ @_hash['epss_probability'] = 'epss_probability'
157
+ @_hash['exposures'] = 'exposures'
158
+ @_hash['group_issues'] = 'group_issues'
159
+ @_hash['include_historical'] = 'include_historical'
160
+ @_hash['issue_ids'] = 'issue_ids'
161
+ @_hash['issue_type'] = 'issue_type'
162
+ @_hash['jira_project_id'] = 'jira_project_id'
163
+ @_hash['limit'] = 'limit'
164
+ @_hash['policies'] = 'policies'
165
+ @_hash['policy_mode'] = 'policy_mode'
166
+ @_hash['pro_only'] = 'pro_only'
167
+ @_hash['project_tags'] = 'project_tags'
168
+ @_hash['ref'] = 'ref'
169
+ @_hash['repos'] = 'repos'
170
+ @_hash['repository_visibility'] = 'repository_visibility'
171
+ @_hash['rules'] = 'rules'
172
+ @_hash['ruleset'] = 'ruleset'
173
+ @_hash['secret_types'] = 'secret_types'
174
+ @_hash['severities'] = 'severities'
175
+ @_hash['since'] = 'since'
176
+ @_hash['status'] = 'status'
177
+ @_hash['transitivities'] = 'transitivities'
178
+ @_hash['triage_reasons'] = 'triage_reasons'
179
+ @_hash['validation_state'] = 'validation_state'
180
+ @_hash
181
+ end
182
+
183
+ # An array for optional fields
184
+ def self.optionals
185
+ %w[
186
+ autotriage_verdict
187
+ categories
188
+ component_tags
189
+ confidence
190
+ dependencies
191
+ epss_probability
192
+ exposures
193
+ group_issues
194
+ include_historical
195
+ issue_ids
196
+ jira_project_id
197
+ limit
198
+ policies
199
+ policy_mode
200
+ pro_only
201
+ project_tags
202
+ ref
203
+ repos
204
+ repository_visibility
205
+ rules
206
+ ruleset
207
+ secret_types
208
+ severities
209
+ since
210
+ status
211
+ transitivities
212
+ triage_reasons
213
+ validation_state
214
+ ]
215
+ end
216
+
217
+ # An array for nullable fields
218
+ def self.nullables
219
+ []
220
+ end
221
+
222
+ def initialize(deployment_slug:, issue_type:, autotriage_verdict: SKIP,
223
+ categories: SKIP, component_tags: SKIP, confidence: SKIP,
224
+ dependencies: SKIP, epss_probability: SKIP, exposures: SKIP,
225
+ group_issues: true, include_historical: SKIP,
226
+ issue_ids: SKIP, jira_project_id: SKIP, limit: 20,
227
+ policies: SKIP, policy_mode: SKIP, pro_only: SKIP,
228
+ project_tags: SKIP, ref: SKIP, repos: SKIP,
229
+ repository_visibility: SKIP, rules: SKIP, ruleset: SKIP,
230
+ secret_types: SKIP, severities: SKIP, since: SKIP,
231
+ status: SKIP, transitivities: SKIP, triage_reasons: SKIP,
232
+ validation_state: SKIP, additional_properties: nil)
233
+ # Add additional model properties to the instance
234
+ additional_properties = {} if additional_properties.nil?
235
+
236
+ @autotriage_verdict = autotriage_verdict unless autotriage_verdict == SKIP
237
+ @categories = categories unless categories == SKIP
238
+ @component_tags = component_tags unless component_tags == SKIP
239
+ @confidence = confidence unless confidence == SKIP
240
+ @dependencies = dependencies unless dependencies == SKIP
241
+ @deployment_slug = deployment_slug
242
+ @epss_probability = epss_probability unless epss_probability == SKIP
243
+ @exposures = exposures unless exposures == SKIP
244
+ @group_issues = group_issues unless group_issues == SKIP
245
+ @include_historical = include_historical unless include_historical == SKIP
246
+ @issue_ids = issue_ids unless issue_ids == SKIP
247
+ @issue_type = issue_type
248
+ @jira_project_id = jira_project_id unless jira_project_id == SKIP
249
+ @limit = limit unless limit == SKIP
250
+ @policies = policies unless policies == SKIP
251
+ @policy_mode = policy_mode unless policy_mode == SKIP
252
+ @pro_only = pro_only unless pro_only == SKIP
253
+ @project_tags = project_tags unless project_tags == SKIP
254
+ @ref = ref unless ref == SKIP
255
+ @repos = repos unless repos == SKIP
256
+ @repository_visibility = repository_visibility unless repository_visibility == SKIP
257
+ @rules = rules unless rules == SKIP
258
+ @ruleset = ruleset unless ruleset == SKIP
259
+ @secret_types = secret_types unless secret_types == SKIP
260
+ @severities = severities unless severities == SKIP
261
+ @since = since unless since == SKIP
262
+ @status = status unless status == SKIP
263
+ @transitivities = transitivities unless transitivities == SKIP
264
+ @triage_reasons = triage_reasons unless triage_reasons == SKIP
265
+ @validation_state = validation_state unless validation_state == SKIP
266
+ @additional_properties = additional_properties
267
+ end
268
+
269
+ # Creates an instance of the object from a hash.
270
+ def self.from_hash(hash)
271
+ return nil unless hash
272
+
273
+ # Extract variables from the hash.
274
+ deployment_slug =
275
+ hash.key?('deploymentSlug') ? hash['deploymentSlug'] : nil
276
+ issue_type = hash.key?('issue_type') ? hash['issue_type'] : nil
277
+ autotriage_verdict =
278
+ hash.key?('autotriage_verdict') ? hash['autotriage_verdict'] : SKIP
279
+ categories = hash.key?('categories') ? hash['categories'] : SKIP
280
+ component_tags =
281
+ hash.key?('component_tags') ? hash['component_tags'] : SKIP
282
+ confidence = hash.key?('confidence') ? hash['confidence'] : SKIP
283
+ dependencies = hash.key?('dependencies') ? hash['dependencies'] : SKIP
284
+ epss_probability =
285
+ hash.key?('epss_probability') ? hash['epss_probability'] : SKIP
286
+ exposures = hash.key?('exposures') ? hash['exposures'] : SKIP
287
+ group_issues = hash['group_issues'] ||= true
288
+ include_historical =
289
+ hash.key?('include_historical') ? hash['include_historical'] : SKIP
290
+ issue_ids = hash.key?('issue_ids') ? hash['issue_ids'] : SKIP
291
+ jira_project_id =
292
+ hash.key?('jira_project_id') ? hash['jira_project_id'] : SKIP
293
+ limit = hash['limit'] ||= 20
294
+ policies = hash.key?('policies') ? hash['policies'] : SKIP
295
+ policy_mode = hash.key?('policy_mode') ? hash['policy_mode'] : SKIP
296
+ pro_only = hash.key?('pro_only') ? hash['pro_only'] : SKIP
297
+ project_tags = hash.key?('project_tags') ? hash['project_tags'] : SKIP
298
+ ref = hash.key?('ref') ? hash['ref'] : SKIP
299
+ repos = hash.key?('repos') ? hash['repos'] : SKIP
300
+ repository_visibility =
301
+ hash.key?('repository_visibility') ? hash['repository_visibility'] : SKIP
302
+ rules = hash.key?('rules') ? hash['rules'] : SKIP
303
+ ruleset = hash.key?('ruleset') ? hash['ruleset'] : SKIP
304
+ secret_types = hash.key?('secret_types') ? hash['secret_types'] : SKIP
305
+ severities = hash.key?('severities') ? hash['severities'] : SKIP
306
+ since = hash.key?('since') ? hash['since'] : SKIP
307
+ status = hash.key?('status') ? hash['status'] : SKIP
308
+ transitivities =
309
+ hash.key?('transitivities') ? hash['transitivities'] : SKIP
310
+ triage_reasons =
311
+ hash.key?('triage_reasons') ? hash['triage_reasons'] : SKIP
312
+ validation_state =
313
+ hash.key?('validation_state') ? hash['validation_state'] : SKIP
314
+
315
+ # Create a new hash for additional properties, removing known properties.
316
+ new_hash = hash.reject { |k, _| names.value?(k) }
317
+
318
+ additional_properties = APIHelper.get_additional_properties(
319
+ new_hash, proc { |value| value }
320
+ )
321
+
322
+ # Create object from extracted values.
323
+ CreateTicketRequest.new(deployment_slug: deployment_slug,
324
+ issue_type: issue_type,
325
+ autotriage_verdict: autotriage_verdict,
326
+ categories: categories,
327
+ component_tags: component_tags,
328
+ confidence: confidence,
329
+ dependencies: dependencies,
330
+ epss_probability: epss_probability,
331
+ exposures: exposures,
332
+ group_issues: group_issues,
333
+ include_historical: include_historical,
334
+ issue_ids: issue_ids,
335
+ jira_project_id: jira_project_id,
336
+ limit: limit,
337
+ policies: policies,
338
+ policy_mode: policy_mode,
339
+ pro_only: pro_only,
340
+ project_tags: project_tags,
341
+ ref: ref,
342
+ repos: repos,
343
+ repository_visibility: repository_visibility,
344
+ rules: rules,
345
+ ruleset: ruleset,
346
+ secret_types: secret_types,
347
+ severities: severities,
348
+ since: since,
349
+ status: status,
350
+ transitivities: transitivities,
351
+ triage_reasons: triage_reasons,
352
+ validation_state: validation_state,
353
+ additional_properties: additional_properties)
354
+ end
355
+
356
+ # Provides a human-readable string representation of the object.
357
+ def to_s
358
+ class_name = self.class.name.split('::').last
359
+ "<#{class_name} autotriage_verdict: #{@autotriage_verdict}, categories: #{@categories},"\
360
+ " component_tags: #{@component_tags}, confidence: #{@confidence}, dependencies:"\
361
+ " #{@dependencies}, deployment_slug: #{@deployment_slug}, epss_probability:"\
362
+ " #{@epss_probability}, exposures: #{@exposures}, group_issues: #{@group_issues},"\
363
+ " include_historical: #{@include_historical}, issue_ids: #{@issue_ids}, issue_type:"\
364
+ " #{@issue_type}, jira_project_id: #{@jira_project_id}, limit: #{@limit}, policies:"\
365
+ " #{@policies}, policy_mode: #{@policy_mode}, pro_only: #{@pro_only}, project_tags:"\
366
+ " #{@project_tags}, ref: #{@ref}, repos: #{@repos}, repository_visibility:"\
367
+ " #{@repository_visibility}, rules: #{@rules}, ruleset: #{@ruleset}, secret_types:"\
368
+ " #{@secret_types}, severities: #{@severities}, since: #{@since}, status: #{@status},"\
369
+ " transitivities: #{@transitivities}, triage_reasons: #{@triage_reasons}, validation_state:"\
370
+ " #{@validation_state}, additional_properties: #{@additional_properties}>"
371
+ end
372
+
373
+ # Provides a debugging-friendly string with detailed object information.
374
+ def inspect
375
+ class_name = self.class.name.split('::').last
376
+ "<#{class_name} autotriage_verdict: #{@autotriage_verdict.inspect}, categories:"\
377
+ " #{@categories.inspect}, component_tags: #{@component_tags.inspect}, confidence:"\
378
+ " #{@confidence.inspect}, dependencies: #{@dependencies.inspect}, deployment_slug:"\
379
+ " #{@deployment_slug.inspect}, epss_probability: #{@epss_probability.inspect}, exposures:"\
380
+ " #{@exposures.inspect}, group_issues: #{@group_issues.inspect}, include_historical:"\
381
+ " #{@include_historical.inspect}, issue_ids: #{@issue_ids.inspect}, issue_type:"\
382
+ " #{@issue_type.inspect}, jira_project_id: #{@jira_project_id.inspect}, limit:"\
383
+ " #{@limit.inspect}, policies: #{@policies.inspect}, policy_mode: #{@policy_mode.inspect},"\
384
+ " pro_only: #{@pro_only.inspect}, project_tags: #{@project_tags.inspect}, ref:"\
385
+ " #{@ref.inspect}, repos: #{@repos.inspect}, repository_visibility:"\
386
+ " #{@repository_visibility.inspect}, rules: #{@rules.inspect}, ruleset: #{@ruleset.inspect},"\
387
+ " secret_types: #{@secret_types.inspect}, severities: #{@severities.inspect}, since:"\
388
+ " #{@since.inspect}, status: #{@status.inspect}, transitivities: #{@transitivities.inspect},"\
389
+ " triage_reasons: #{@triage_reasons.inspect}, validation_state:"\
390
+ " #{@validation_state.inspect}, additional_properties: #{@additional_properties}>"
391
+ end
392
+ end
393
+ 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
+ # CycloneDX schema version for the SBOM export. Supported: 1.4, 1.5, 1.6, 1.7.
8
+ # Defaults to 1.4 when unset. | value | description |
9
+ # |-------|---------------| | SBOM_CYCLONE_DX_VERSION_V1_4 | | |
10
+ # SBOM_CYCLONE_DX_VERSION_V1_5 | | | SBOM_CYCLONE_DX_VERSION_V1_6 | | |
11
+ # SBOM_CYCLONE_DX_VERSION_V1_7 | |
12
+ class CyclonedxVersion
13
+ CYCLONEDX_VERSION = [
14
+ # TODO: Write general description for SBOM_CYCLONE_DX_VERSION_V1_4
15
+ SBOM_CYCLONE_DX_VERSION_V1_4 = 'SBOM_CYCLONE_DX_VERSION_V1_4'.freeze,
16
+
17
+ # TODO: Write general description for SBOM_CYCLONE_DX_VERSION_V1_5
18
+ SBOM_CYCLONE_DX_VERSION_V1_5 = 'SBOM_CYCLONE_DX_VERSION_V1_5'.freeze,
19
+
20
+ # TODO: Write general description for SBOM_CYCLONE_DX_VERSION_V1_6
21
+ SBOM_CYCLONE_DX_VERSION_V1_6 = 'SBOM_CYCLONE_DX_VERSION_V1_6'.freeze,
22
+
23
+ # TODO: Write general description for SBOM_CYCLONE_DX_VERSION_V1_7
24
+ SBOM_CYCLONE_DX_VERSION_V1_7 = 'SBOM_CYCLONE_DX_VERSION_V1_7'.freeze
25
+ ].freeze
26
+
27
+ def self.validate(value)
28
+ return false if value.nil?
29
+
30
+ CYCLONEDX_VERSION.include?(value)
31
+ end
32
+
33
+ def self.from_value(value, default_value = SBOM_CYCLONE_DX_VERSION_V1_4)
34
+ return default_value if value.nil?
35
+
36
+ str = value.to_s.strip
37
+
38
+ case str.downcase
39
+ when 'sbom_cyclone_dx_version_v1_4' then SBOM_CYCLONE_DX_VERSION_V1_4
40
+ when 'sbom_cyclone_dx_version_v1_5' then SBOM_CYCLONE_DX_VERSION_V1_5
41
+ when 'sbom_cyclone_dx_version_v1_6' then SBOM_CYCLONE_DX_VERSION_V1_6
42
+ when 'sbom_cyclone_dx_version_v1_7' then SBOM_CYCLONE_DX_VERSION_V1_7
43
+ else
44
+ default_value
45
+ end
46
+ end
47
+ end
48
+ 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
+ # Successfully deleted the project.
8
+ class DeleteProjectResponse < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # The name of the deleted project.
13
+ # @return [String]
14
+ attr_accessor :project_name
15
+
16
+ # A mapping from model property names to API property names.
17
+ def self.names
18
+ @_hash = {} if @_hash.nil?
19
+ @_hash['project_name'] = 'project_name'
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_name:, additional_properties: nil)
34
+ # Add additional model properties to the instance
35
+ additional_properties = {} if additional_properties.nil?
36
+
37
+ @project_name = project_name
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_name = hash.key?('project_name') ? hash['project_name'] : 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
+ DeleteProjectResponse.new(project_name: project_name,
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_name: #{@project_name}, 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} project_name: #{@project_name.inspect}, additional_properties:"\
71
+ " #{@additional_properties}>"
72
+ end
73
+ end
74
+ 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 removed tags from project.
8
+ class DeleteProjectTagsResponse < 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
+ DeleteProjectTagsResponse.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,102 @@
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
+ # Deployment record, with relevant meta-data and further accesses.
8
+ class Deployment < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # TODO: Write general description for this method
13
+ # @return [EndpointReference]
14
+ attr_accessor :findings
15
+
16
+ # Unique numerical identifier of the deployment.
17
+ # @return [Integer]
18
+ attr_accessor :id
19
+
20
+ # Human readable name.
21
+ # @return [String]
22
+ attr_accessor :name
23
+
24
+ # Sanitized machine-readable name. Used as primary identifier through the
25
+ # web API.
26
+ # @return [String]
27
+ attr_accessor :slug
28
+
29
+ # A mapping from model property names to API property names.
30
+ def self.names
31
+ @_hash = {} if @_hash.nil?
32
+ @_hash['findings'] = 'findings'
33
+ @_hash['id'] = 'id'
34
+ @_hash['name'] = 'name'
35
+ @_hash['slug'] = 'slug'
36
+ @_hash
37
+ end
38
+
39
+ # An array for optional fields
40
+ def self.optionals
41
+ %w[
42
+ findings
43
+ ]
44
+ end
45
+
46
+ # An array for nullable fields
47
+ def self.nullables
48
+ []
49
+ end
50
+
51
+ def initialize(id:, name:, slug:, findings: SKIP,
52
+ additional_properties: nil)
53
+ # Add additional model properties to the instance
54
+ additional_properties = {} if additional_properties.nil?
55
+
56
+ @findings = findings unless findings == SKIP
57
+ @id = id
58
+ @name = name
59
+ @slug = slug
60
+ @additional_properties = additional_properties
61
+ end
62
+
63
+ # Creates an instance of the object from a hash.
64
+ def self.from_hash(hash)
65
+ return nil unless hash
66
+
67
+ # Extract variables from the hash.
68
+ id = hash.key?('id') ? hash['id'] : nil
69
+ name = hash.key?('name') ? hash['name'] : nil
70
+ slug = hash.key?('slug') ? hash['slug'] : nil
71
+ findings = EndpointReference.from_hash(hash['findings']) if hash['findings']
72
+
73
+ # Create a new hash for additional properties, removing known properties.
74
+ new_hash = hash.reject { |k, _| names.value?(k) }
75
+
76
+ additional_properties = APIHelper.get_additional_properties(
77
+ new_hash, proc { |value| value }
78
+ )
79
+
80
+ # Create object from extracted values.
81
+ Deployment.new(id: id,
82
+ name: name,
83
+ slug: slug,
84
+ findings: findings,
85
+ additional_properties: additional_properties)
86
+ end
87
+
88
+ # Provides a human-readable string representation of the object.
89
+ def to_s
90
+ class_name = self.class.name.split('::').last
91
+ "<#{class_name} findings: #{@findings}, id: #{@id}, name: #{@name}, slug: #{@slug},"\
92
+ " additional_properties: #{@additional_properties}>"
93
+ end
94
+
95
+ # Provides a debugging-friendly string with detailed object information.
96
+ def inspect
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} findings: #{@findings.inspect}, id: #{@id.inspect}, name: #{@name.inspect},"\
99
+ " slug: #{@slug.inspect}, additional_properties: #{@additional_properties}>"
100
+ end
101
+ end
102
+ end