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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f2444f05a2feb921ab081ddb53f4f73a9e0af77a4c06be31577d76c993af2471
4
+ data.tar.gz: e397e7b7847a0b907f5aed1af2b760b28b66f70f42148046930082b33618f4d8
5
+ SHA512:
6
+ metadata.gz: 61583c9981eeca62d870e8a68dbef71fda5bec9c4dbf9b281345b34dfc873398f65689171248d3bfcb0c1481315aad07572b5d08ac964db167f2bcbbe5515eba
7
+ data.tar.gz: 8993bcf07822478d50fe25c32895e81eb173874e9845362bcc912b4d9e9b16399e954dfa5e419f8aea2c3a81392969b036c8c525fa0dd478b55f672a45a0218d
data/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ License:
2
+ ========
3
+ The MIT License (MIT)
4
+ http://opensource.org/licenses/MIT
5
+
6
+ Copyright (c) 2014 - 2026 APIMATIC Limited
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ THE SOFTWARE.
25
+
26
+ Trade Mark:
27
+ ==========
28
+ APIMATIC is a trade mark for APIMATIC Limited
data/README.md ADDED
@@ -0,0 +1,205 @@
1
+
2
+ # Getting Started with Semgrep Web App
3
+
4
+ ## Introduction
5
+
6
+ Welcome to Semgrep's portal for the Semgrep AppSec Platform web API.
7
+
8
+ ### Introduction
9
+
10
+ Semgrep is a fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor,
11
+ commit, and CI time. [Get started.](https://semgrep.dev/docs/getting-started/)
12
+
13
+ This API is documented in the **OpenAPI format**.
14
+
15
+ ### Authentication
16
+
17
+ The API supports authentication with an API token with the "Web API" permission, without limited
18
+ scopes of access.
19
+
20
+ You can provision an API token [from the Settings page](https://semgrep.dev/orgs/-/settings/tokens).
21
+
22
+ ### Terms of Use
23
+
24
+ Please note, the materials made available herein are subject to the
25
+ [Semgrep Terms of Use](https://semgrep.dev/resources/website-terms/), and your
26
+ access or use of any of the same is your acknowledgment and acceptance of the
27
+ such terms.
28
+
29
+ <br>
30
+
31
+
32
+ ___
33
+
34
+
35
+ ## Install the Package
36
+
37
+ Install the gem from the command line:
38
+
39
+ ```bash
40
+ gem install apimatic-semgrep-sdk -v 0.0.1
41
+ ```
42
+
43
+ Or add the gem to your Gemfile and run `bundle`:
44
+
45
+ ```ruby
46
+ gem 'apimatic-semgrep-sdk', '0.0.1'
47
+ ```
48
+
49
+ For additional gem details, see the [RubyGems page for the apimatic-semgrep-sdk gem](https://rubygems.org/gems/apimatic-semgrep-sdk/versions/0.0.1).
50
+
51
+ ## IRB Console Usage
52
+
53
+ You can explore the SDK interactively using IRB in two ways
54
+
55
+ ### 1. Use IRB with Installed Gem
56
+
57
+ Open your system terminal (Command Prompt, Git Bash or macOS Terminal) and type the following command to start the irb console.
58
+
59
+ ```bash
60
+ irb
61
+ ```
62
+
63
+ Now you can load the SDK in the IRB
64
+
65
+ ```ruby
66
+ require 'semgrep_web_app'
67
+ include SemgrepWebApp
68
+ ```
69
+
70
+ ### 2. Use IRB within SDK
71
+
72
+ Open your system terminal (Command Prompt, Git Bash or macOS Terminal) and navigate to the root folder of SDK.
73
+
74
+ ```
75
+ cd path/to/semgrep_web_app
76
+ ```
77
+
78
+ Now you can start the preconfigured irb console by running the following command
79
+
80
+ ```bash
81
+ ruby bin/console
82
+ ```
83
+
84
+ **_Note:_** This automatically loads the SDK from lib/
85
+
86
+ ## Initialize the API Client
87
+
88
+ **_Note:_** Documentation for the client can be found [here.](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/client.md)
89
+
90
+ The following parameters are configurable for the API Client:
91
+
92
+ | Parameter | Type | Description |
93
+ | --- | --- | --- |
94
+ | environment | [`Environment`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/README.md#environments) | The API environment. <br> **Default: `Environment.PRODUCTION`** |
95
+ | connection | `Faraday::Connection` | The Faraday connection object passed by the SDK user for making requests |
96
+ | adapter | `Faraday::Adapter` | The Faraday adapter object passed by the SDK user for performing http requests |
97
+ | timeout | `Float` | The value to use for connection timeout. <br> **Default: 30** |
98
+ | max_retries | `Integer` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
99
+ | retry_interval | `Float` | Pause in seconds between retries. <br> **Default: 1** |
100
+ | backoff_factor | `Float` | The amount to multiply each successive retry's interval amount by in order to provide backoff. <br> **Default: 2** |
101
+ | retry_statuses | `Array` | A list of HTTP statuses to retry. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
102
+ | retry_methods | `Array` | A list of HTTP methods to retry. <br> **Default: %i[get put]** |
103
+ | http_callback | `HttpCallBack` | The Http CallBack allows defining callables for pre and post API calls. |
104
+ | proxy_settings | [`ProxySettings`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/proxy-settings.md) | Optional proxy configuration to route HTTP requests through a proxy server. |
105
+ | logging_configuration | [`LoggingConfiguration`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/logging-configuration.md) | The SDK logging configuration for API calls |
106
+ | semgrep_admin_jwt_credentials | [`SemgrepAdminJwtCredentials`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/auth/oauth-2-bearer-token.md) | The credential object for OAuth 2 Bearer token |
107
+ | semgrep_jwt_credentials | [`SemgrepJwtCredentials`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/auth/oauth-2-bearer-token-1.md) | The credential object for OAuth 2 Bearer token |
108
+ | semgrep_web_token_credentials | [`SemgrepWebTokenCredentials`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/auth/oauth-2-bearer-token-2.md) | The credential object for OAuth 2 Bearer token |
109
+
110
+ The API client can be initialized as follows:
111
+
112
+ ### Code-Based Client Initialization
113
+
114
+ ```ruby
115
+ require 'semgrep_web_app'
116
+ include SemgrepWebApp
117
+
118
+ client = Client.new(
119
+ semgrep_admin_jwt_credentials: SemgrepAdminJwtCredentials.new(
120
+ access_token: 'AccessToken'
121
+ ),
122
+ semgrep_jwt_credentials: SemgrepJwtCredentials.new(
123
+ access_token: 'AccessToken'
124
+ ),
125
+ semgrep_web_token_credentials: SemgrepWebTokenCredentials.new(
126
+ access_token: 'AccessToken'
127
+ ),
128
+ environment: Environment::PRODUCTION,
129
+ logging_configuration: LoggingConfiguration.new(
130
+ log_level: Logger::INFO,
131
+ request_logging_config: RequestLoggingConfiguration.new(
132
+ log_body: true
133
+ ),
134
+ response_logging_config: ResponseLoggingConfiguration.new(
135
+ log_headers: true
136
+ )
137
+ )
138
+ )
139
+ ```
140
+
141
+ ### Environment-Based Client Initialization
142
+
143
+ ```ruby
144
+ require 'semgrep_web_app'
145
+ include SemgrepWebApp
146
+
147
+ # Create client from environment
148
+ client = Client.from_env
149
+ ```
150
+
151
+ See the [`Environment-Based Client Initialization`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/environment-based-client-initialization.md) section for details.
152
+
153
+ ## Environments
154
+
155
+ The SDK can be configured to use a different environment for making API calls. Available environments are:
156
+
157
+ ### Fields
158
+
159
+ | Name | Description |
160
+ | --- | --- |
161
+ | PRODUCTION | **Default** |
162
+
163
+ ## Authorization
164
+
165
+ This API uses the following authentication schemes.
166
+
167
+ * [`SemgrepAdminJWT (OAuth 2 Bearer token)`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/auth/oauth-2-bearer-token.md)
168
+ * [`SemgrepJWT (OAuth 2 Bearer token)`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/auth/oauth-2-bearer-token-1.md)
169
+ * [`SemgrepWebToken (OAuth 2 Bearer token)`](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/auth/oauth-2-bearer-token-2.md)
170
+
171
+ ## List of APIs
172
+
173
+ * [Deployments Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/deployments-service.md)
174
+ * [Findings Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/findings-service.md)
175
+ * [Misc Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/misc-service.md)
176
+ * [Policies Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/policies-service.md)
177
+ * [Projects Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/projects-service.md)
178
+ * [Scans Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/scans-service.md)
179
+ * [Secrets Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/secrets-service.md)
180
+ * [Supply Chain Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/supply-chain-service.md)
181
+ * [Ticketing Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/ticketing-service.md)
182
+ * [Triage Service](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/controllers/triage-service.md)
183
+
184
+ ## SDK Infrastructure
185
+
186
+ ### Configuration
187
+
188
+ * [ProxySettings](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/proxy-settings.md)
189
+ * [Environment-Based Client Initialization](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/environment-based-client-initialization.md)
190
+ * [AbstractLogger](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/abstract-logger.md)
191
+ * [LoggingConfiguration](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/logging-configuration.md)
192
+ * [RequestLoggingConfiguration](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/request-logging-configuration.md)
193
+ * [ResponseLoggingConfiguration](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/response-logging-configuration.md)
194
+
195
+ ### HTTP
196
+
197
+ * [HttpResponse](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/http-response.md)
198
+ * [HttpRequest](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/http-request.md)
199
+
200
+ ### Utilities
201
+
202
+ * [ApiResponse](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/api-response.md)
203
+ * [ApiHelper](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/api-helper.md)
204
+ * [DateTimeHelper](https://www.github.com/sdks-io/apimatic-semgrep-ruby-sdk/tree/0.0.1/doc/date-time-helper.md)
205
+
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Load the lib folder into Ruby's load path
4
+ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
5
+
6
+ # Require the gem
7
+ require 'semgrep_web_app'
8
+
9
+ puts 'SemgrepWebApp SDK loaded!'
10
+ puts 'You can now create a client with: client = SemgrepWebApp::Client.new'
11
+ puts 'Or use from_env: client = SemgrepWebApp::Client.from_env'
12
+
13
+ # Start an interactive IRB session
14
+ require 'irb'
15
+ IRB.start
@@ -0,0 +1,10 @@
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
+ # API utility class
8
+ class APIHelper < CoreLibrary::ApiHelper
9
+ end
10
+ end
@@ -0,0 +1,67 @@
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
+ # BaseApi.
8
+ class BaseApi
9
+ include CoreLibrary
10
+ attr_accessor :config, :http_call_back
11
+
12
+ def self.user_agent
13
+ 'Ruby-SDK/0.0.1 (OS: {os-info}, Engine: {engine}/{engine-version})'
14
+ end
15
+
16
+ def self.user_agent_parameters
17
+ {
18
+ '{engine}' => { 'value' => RUBY_ENGINE, 'encode' => false },
19
+ '{engine-version}' => { 'value' => RUBY_ENGINE_VERSION, 'encode' => false },
20
+ '{os-info}' => { 'value' => RUBY_PLATFORM, 'encode' => false }
21
+ }
22
+ end
23
+
24
+ GLOBAL_ERRORS = {
25
+ 'default' => ErrorCase.new
26
+ .error_message('HTTP response not OK.')
27
+ .exception_type(APIException)
28
+ }.freeze
29
+
30
+ # Initialization constructor.
31
+ # @param [GlobalConfiguration] global_configuration The instance of GlobalConfiguration.
32
+ def initialize(global_configuration)
33
+ @global_configuration = global_configuration
34
+ @config = @global_configuration.client_configuration
35
+ @http_call_back = @config.http_callback
36
+ @api_call = ApiCall.new(@global_configuration)
37
+ end
38
+
39
+ # Creates a new instance of the request builder.
40
+ # @param [String] http_method The HTTP method to use in the request.
41
+ # @param [String] path The endpoint path to use in the request.
42
+ # @param [String] server The server to extract the base uri for the request.
43
+ # @return [RequestBuilder] The instance of RequestBuilder.
44
+ def new_request_builder(http_method, path, server)
45
+ RequestBuilder.new
46
+ .http_method(http_method)
47
+ .path(path)
48
+ .server(server)
49
+ end
50
+
51
+ # Creates a new instance of the response handler.
52
+ # @return [ResponseHandler] The instance of ResponseHandler.
53
+ def new_response_handler
54
+ ResponseHandler.new
55
+ end
56
+
57
+ # Creates a new instance of the parameter.
58
+ # @param [String|optional] key The key of the parameter.
59
+ # @param [Object] value The value of the parameter.
60
+ # @return [Parameter] The instance of Parameter.
61
+ def new_parameter(value, key: nil)
62
+ Parameter.new
63
+ .key(key)
64
+ .value(value)
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,29 @@
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
+ # DeploymentsServiceApi
8
+ class DeploymentsServiceApi < BaseApi
9
+ # Request the deployments your auth can access.
10
+ # Currently available auth scope does not extend over more than one
11
+ # deployment. This endpoint returns the single deployment your token can
12
+ # access. The endpoint additionally returns links to related resources
13
+ # available on this API.
14
+ # @return [ApiResponse] Complete http response with raw body and status code.
15
+ def deployments_service_list_deployments
16
+ @api_call
17
+ .request(new_request_builder(HttpMethodEnum::GET,
18
+ '/api/v1/deployments',
19
+ Server::SEMGREP)
20
+ .header_param(new_parameter('application/json', key: 'accept'))
21
+ .auth(Single.new('SemgrepWebToken')))
22
+ .response(new_response_handler
23
+ .deserializer(APIHelper.method(:custom_type_deserializer))
24
+ .deserialize_into(ProtosOpenapiV1ListDeploymentsResponse.method(:from_hash))
25
+ .is_api_response(true))
26
+ .execute
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,107 @@
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
+ # FindingsServiceApi
8
+ class FindingsServiceApi < BaseApi
9
+ # Request the list of code, supply chain, or AI-powered scan findings in an
10
+ # organization, paginated in pages of 100 entries and limited by the `since`
11
+ # timestamp. Findings are returned by `relevant_since` descending (see
12
+ # `since` in the Query Parameters list). Examples: List SAST findings with
13
+ # pagination, List SCA findings since timestamp, List AI-powered scan
14
+ # findings, List findings with filters.
15
+ # @param [String] deployment_slug Required parameter: TODO: type description
16
+ # here
17
+ # @param [IssueType2] issue_type Optional parameter: Example:sast
18
+ # @param [Float] since Optional parameter: TODO: type description here
19
+ # @param [Integer] page Optional parameter: Example:0
20
+ # @param [TrueClass | FalseClass] dedup Optional parameter: Example:false
21
+ # @param [Integer] page_size Optional parameter: Example:100
22
+ # @param [Array[String]] repos Optional parameter: TODO: type description
23
+ # here
24
+ # @param [Array[Integer]] repository_ids Optional parameter: TODO: type
25
+ # description here
26
+ # @param [Status9] status Optional parameter: Example:
27
+ # @param [TriageReasons2] triage_reasons Optional parameter: Example:
28
+ # @param [Severities2] severities Optional parameter: Example:
29
+ # @param [String] ref Optional parameter: TODO: type description here
30
+ # @param [Array[String]] policies Optional parameter: TODO: type description
31
+ # here
32
+ # @param [Array[String]] rules Optional parameter: TODO: type description
33
+ # here
34
+ # @param [Array[String]] categories Optional parameter: TODO: type
35
+ # description here
36
+ # @param [Confidence8] confidence Optional parameter: Example:
37
+ # @param [AutotriageVerdict2] autotriage_verdict Optional parameter:
38
+ # Example:
39
+ # @param [Array[String]] component_tags Optional parameter: TODO: type
40
+ # description here
41
+ # @param [Exposures2] exposures Optional parameter: Example:
42
+ # @param [Transitivities2] transitivities Optional parameter: Example:
43
+ # @param [TrueClass | FalseClass] is_malicious Optional parameter: TODO:
44
+ # type description here
45
+ # @param [ClickToFixPrState] click_to_fix_pr_state Optional parameter:
46
+ # Example:
47
+ # @return [ApiResponse] Complete http response with raw body and status code.
48
+ def findings_service_list_findings(deployment_slug,
49
+ issue_type: IssueType2::SAST,
50
+ since: nil,
51
+ page: 0,
52
+ dedup: false,
53
+ page_size: 100,
54
+ repos: nil,
55
+ repository_ids: nil,
56
+ status: nil,
57
+ triage_reasons: nil,
58
+ severities: nil,
59
+ ref: nil,
60
+ policies: nil,
61
+ rules: nil,
62
+ categories: nil,
63
+ confidence: nil,
64
+ autotriage_verdict: nil,
65
+ component_tags: nil,
66
+ exposures: nil,
67
+ transitivities: nil,
68
+ is_malicious: nil,
69
+ click_to_fix_pr_state: nil)
70
+ @api_call
71
+ .request(new_request_builder(HttpMethodEnum::GET,
72
+ '/api/v1/deployments/{deploymentSlug}/findings',
73
+ Server::SEMGREP)
74
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
75
+ .is_required(true)
76
+ .should_encode(true))
77
+ .query_param(new_parameter(issue_type, key: 'issue_type'))
78
+ .query_param(new_parameter(since, key: 'since'))
79
+ .query_param(new_parameter(page, key: 'page'))
80
+ .query_param(new_parameter(dedup, key: 'dedup'))
81
+ .query_param(new_parameter(page_size, key: 'page_size'))
82
+ .query_param(new_parameter(repos, key: 'repos'))
83
+ .query_param(new_parameter(repository_ids, key: 'repository_ids'))
84
+ .query_param(new_parameter(status, key: 'status'))
85
+ .query_param(new_parameter(triage_reasons, key: 'triage_reasons'))
86
+ .query_param(new_parameter(severities, key: 'severities'))
87
+ .query_param(new_parameter(ref, key: 'ref'))
88
+ .query_param(new_parameter(policies, key: 'policies'))
89
+ .query_param(new_parameter(rules, key: 'rules'))
90
+ .query_param(new_parameter(categories, key: 'categories'))
91
+ .query_param(new_parameter(confidence, key: 'confidence'))
92
+ .query_param(new_parameter(autotriage_verdict, key: 'autotriage_verdict'))
93
+ .query_param(new_parameter(component_tags, key: 'component_tags'))
94
+ .query_param(new_parameter(exposures, key: 'exposures'))
95
+ .query_param(new_parameter(transitivities, key: 'transitivities'))
96
+ .query_param(new_parameter(is_malicious, key: 'is_malicious'))
97
+ .query_param(new_parameter(click_to_fix_pr_state, key: 'click_to_fix_pr_state'))
98
+ .header_param(new_parameter('application/json', key: 'accept'))
99
+ .auth(Single.new('SemgrepWebToken')))
100
+ .response(new_response_handler
101
+ .deserializer(APIHelper.method(:custom_type_deserializer))
102
+ .deserialize_into(ApiV1DeploymentsFindingsResponse.method(:from_hash))
103
+ .is_api_response(true))
104
+ .execute
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,47 @@
1
+ # semgrep_web_app
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module SemgrepWebApp
7
+ # MiscServiceApi
8
+ class MiscServiceApi < BaseApi
9
+ # VPC support for Managed Scans is in private beta.
10
+ # Returns the Managed Scans VPC Bootstrap CloudFormation template in JSON
11
+ # format for setting up cross-account infrastructure.
12
+ # This template creates IAM roles and policies needed for Semgrep Managed
13
+ # Scanning (SMS) VPC infrastructure automation,
14
+ # including the semgrep-sms-vpc-automation role and EC2 Image Builder
15
+ # distribution roles for gVisor container runtime.
16
+ # See the original AWS cloudformation template format at
17
+ # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-fo
18
+ # rmats.html
19
+ # @return [ApiResponse] Complete http response with raw body and status code.
20
+ def misc_service_get_bootstrap_sms_vpc
21
+ @api_call
22
+ .request(new_request_builder(HttpMethodEnum::GET,
23
+ '/api/v1/bootstrap-sms-vpc',
24
+ Server::SEMGREP)
25
+ .header_param(new_parameter('application/json', key: 'accept')))
26
+ .response(new_response_handler
27
+ .deserializer(APIHelper.method(:custom_type_deserializer))
28
+ .deserialize_into(ProtosOpenapiV1GetBootstrapSmsVpcResponse.method(:from_hash))
29
+ .is_api_response(true))
30
+ .execute
31
+ end
32
+
33
+ # Use to ping the server and assert liveness.
34
+ # @return [ApiResponse] Complete http response with raw body and status code.
35
+ def misc_service_ping
36
+ @api_call
37
+ .request(new_request_builder(HttpMethodEnum::GET,
38
+ '/api/v1/ping',
39
+ Server::SEMGREP)
40
+ .header_param(new_parameter('application/json', key: 'accept')))
41
+ .response(new_response_handler
42
+ .deserializer(APIHelper.method(:json_deserialize))
43
+ .is_api_response(true))
44
+ .execute
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,97 @@
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
+ # PoliciesServiceApi
8
+ class PoliciesServiceApi < BaseApi
9
+ # TODO: type endpoint description here
10
+ # @param [String] deployment_id Required parameter: TODO: type description
11
+ # here
12
+ # @return [ApiResponse] Complete http response with raw body and status code.
13
+ def policies_service_list_policies(deployment_id)
14
+ @api_call
15
+ .request(new_request_builder(HttpMethodEnum::GET,
16
+ '/api/v1/deployments/{deploymentId}/policies',
17
+ Server::SEMGREP)
18
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
19
+ .is_required(true)
20
+ .should_encode(true))
21
+ .header_param(new_parameter('application/json', key: 'accept'))
22
+ .auth(Single.new('SemgrepWebToken')))
23
+ .response(new_response_handler
24
+ .deserializer(APIHelper.method(:custom_type_deserializer))
25
+ .deserialize_into(ProtosOpenapiV1ListPoliciesResponse.method(:from_hash))
26
+ .is_api_response(true))
27
+ .execute
28
+ end
29
+
30
+ # TODO: type endpoint description here
31
+ # @param [String] deployment_id Required parameter: TODO: type description
32
+ # here
33
+ # @param [String] policy_id Required parameter: TODO: type description
34
+ # here
35
+ # @param [String] cursor Optional parameter: TODO: type description here
36
+ # @param [Integer] limit Optional parameter: TODO: type description here
37
+ # @return [ApiResponse] Complete http response with raw body and status code.
38
+ def policies_service_list_policy_rules(deployment_id,
39
+ policy_id,
40
+ cursor: nil,
41
+ limit: nil)
42
+ @api_call
43
+ .request(new_request_builder(HttpMethodEnum::GET,
44
+ '/api/v1/deployments/{deploymentId}/policies/{policyId}',
45
+ Server::SEMGREP)
46
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
47
+ .is_required(true)
48
+ .should_encode(true))
49
+ .template_param(new_parameter(policy_id, key: 'policyId')
50
+ .is_required(true)
51
+ .should_encode(true))
52
+ .query_param(new_parameter(cursor, key: 'cursor'))
53
+ .query_param(new_parameter(limit, key: 'limit'))
54
+ .header_param(new_parameter('application/json', key: 'accept'))
55
+ .auth(Single.new('SemgrepWebToken')))
56
+ .response(new_response_handler
57
+ .deserializer(APIHelper.method(:custom_type_deserializer))
58
+ .deserialize_into(ProtosOpenapiV1ListPolicyRulesResponse.method(:from_hash))
59
+ .is_api_response(true))
60
+ .execute
61
+ end
62
+
63
+ # TODO: type endpoint description here
64
+ # @param [String] deployment_id Required parameter: TODO: type description
65
+ # here
66
+ # @param [String] policy_id Required parameter: TODO: type description
67
+ # here
68
+ # @param [UpdatePolicyRequest] body Required parameter: TODO: type
69
+ # description here
70
+ # @return [ApiResponse] Complete http response with raw body and status code.
71
+ def policies_service_update_policy(deployment_id,
72
+ policy_id,
73
+ body)
74
+ @api_call
75
+ .request(new_request_builder(HttpMethodEnum::PUT,
76
+ '/api/v1/deployments/{deploymentId}/policies/{policyId}',
77
+ Server::SEMGREP)
78
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
79
+ .is_required(true)
80
+ .should_encode(true))
81
+ .template_param(new_parameter(policy_id, key: 'policyId')
82
+ .is_required(true)
83
+ .should_encode(true))
84
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
85
+ .body_param(new_parameter(body)
86
+ .is_required(true))
87
+ .header_param(new_parameter('application/json', key: 'accept'))
88
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
89
+ .auth(Single.new('SemgrepWebToken')))
90
+ .response(new_response_handler
91
+ .deserializer(APIHelper.method(:custom_type_deserializer))
92
+ .deserialize_into(ProtosOpenapiV1UpdatePolicyResponse.method(:from_hash))
93
+ .is_api_response(true))
94
+ .execute
95
+ end
96
+ end
97
+ end