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,238 @@
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
+ # ProjectsServiceApi
8
+ class ProjectsServiceApi < BaseApi
9
+ # Request the list of projects that have been scanned or onboarded to
10
+ # Managed Scans. Does not return archived repositories. Returns 100 projects
11
+ # per page by default.
12
+ # @param [String] deployment_slug Required parameter: TODO: type description
13
+ # here
14
+ # @param [Integer] page Optional parameter: TODO: type description here
15
+ # @param [Integer] page_size Optional parameter: Example:100
16
+ # @return [ApiResponse] Complete http response with raw body and status code.
17
+ def projects_service_list_projects(deployment_slug,
18
+ page: nil,
19
+ page_size: 100)
20
+ @api_call
21
+ .request(new_request_builder(HttpMethodEnum::GET,
22
+ '/api/v1/deployments/{deploymentSlug}/projects',
23
+ Server::SEMGREP)
24
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
25
+ .is_required(true)
26
+ .should_encode(true))
27
+ .query_param(new_parameter(page, key: 'page'))
28
+ .query_param(new_parameter(page_size, key: 'page_size'))
29
+ .header_param(new_parameter('application/json', key: 'accept'))
30
+ .auth(Single.new('SemgrepWebToken')))
31
+ .response(new_response_handler
32
+ .deserializer(APIHelper.method(:custom_type_deserializer))
33
+ .deserialize_into(ListProjectsResponse.method(:from_hash))
34
+ .is_api_response(true))
35
+ .execute
36
+ end
37
+
38
+ # Delete a project for a deployment you have access to. This will also
39
+ # delete all of the associated findings.
40
+ # @param [String] deployment_slug Required parameter: TODO: type description
41
+ # here
42
+ # @param [String] project_name Required parameter: TODO: type description
43
+ # here
44
+ # @return [ApiResponse] Complete http response with raw body and status code.
45
+ def projects_service_delete_project(deployment_slug,
46
+ project_name)
47
+ @api_call
48
+ .request(new_request_builder(HttpMethodEnum::DELETE,
49
+ '/api/v1/deployments/{deploymentSlug}/projects/{projectName}',
50
+ Server::SEMGREP)
51
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
52
+ .is_required(true)
53
+ .should_encode(true))
54
+ .template_param(new_parameter(project_name, key: 'projectName')
55
+ .is_required(true)
56
+ .should_encode(true))
57
+ .header_param(new_parameter('application/json', key: 'accept'))
58
+ .auth(Single.new('SemgrepWebToken')))
59
+ .response(new_response_handler
60
+ .deserializer(APIHelper.method(:custom_type_deserializer))
61
+ .deserialize_into(DeleteProjectResponse.method(:from_hash))
62
+ .is_api_response(true))
63
+ .execute
64
+ end
65
+
66
+ # Retrieve details for a single project associated with a deployment that
67
+ # you have access to.
68
+ # @param [String] deployment_slug Required parameter: TODO: type description
69
+ # here
70
+ # @param [String] project_name Required parameter: TODO: type description
71
+ # here
72
+ # @return [ApiResponse] Complete http response with raw body and status code.
73
+ def projects_service_get_project(deployment_slug,
74
+ project_name)
75
+ @api_call
76
+ .request(new_request_builder(HttpMethodEnum::GET,
77
+ '/api/v1/deployments/{deploymentSlug}/projects/{projectName}',
78
+ Server::SEMGREP)
79
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
80
+ .is_required(true)
81
+ .should_encode(true))
82
+ .template_param(new_parameter(project_name, key: 'projectName')
83
+ .is_required(true)
84
+ .should_encode(true))
85
+ .header_param(new_parameter('application/json', key: 'accept'))
86
+ .auth(Single.new('SemgrepWebToken')))
87
+ .response(new_response_handler
88
+ .deserializer(APIHelper.method(:custom_type_deserializer))
89
+ .deserialize_into(GetProjectResponse.method(:from_hash))
90
+ .is_api_response(true))
91
+ .execute
92
+ end
93
+
94
+ # Update attributes for the project using the value passed in to the request
95
+ # body.
96
+ # Note: The only attribute that is supported as of January 2023 is `tags`.
97
+ # @param [String] deployment_slug Required parameter: TODO: type description
98
+ # here
99
+ # @param [String] project_name Required parameter: TODO: type description
100
+ # here
101
+ # @param [UpdateProjectRequest] body Required parameter: TODO: type
102
+ # description here
103
+ # @return [ApiResponse] Complete http response with raw body and status code.
104
+ def projects_service_update_project(deployment_slug,
105
+ project_name,
106
+ body)
107
+ @api_call
108
+ .request(new_request_builder(HttpMethodEnum::PATCH,
109
+ '/api/v1/deployments/{deploymentSlug}/projects/{projectName}',
110
+ Server::SEMGREP)
111
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
112
+ .is_required(true)
113
+ .should_encode(true))
114
+ .template_param(new_parameter(project_name, key: 'projectName')
115
+ .is_required(true)
116
+ .should_encode(true))
117
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
118
+ .body_param(new_parameter(body)
119
+ .is_required(true))
120
+ .header_param(new_parameter('application/json', key: 'accept'))
121
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
122
+ .auth(Single.new('SemgrepWebToken')))
123
+ .response(new_response_handler
124
+ .deserializer(APIHelper.method(:custom_type_deserializer))
125
+ .deserialize_into(UpdateProjectResponse.method(:from_hash))
126
+ .is_api_response(true))
127
+ .execute
128
+ end
129
+
130
+ # Enable or disable
131
+ # [Semgrep Managed Scans](/docs/deployment/managed-scanning/overview)
132
+ # for a project.
133
+ # @param [String] deployment_slug Required parameter: TODO: type description
134
+ # here
135
+ # @param [String] project_name Required parameter: TODO: type description
136
+ # here
137
+ # @param [ToggleProjectManagedScanRequest] body Required parameter: TODO:
138
+ # type description here
139
+ # @return [ApiResponse] Complete http response with raw body and status code.
140
+ def projects_service_toggle_project_managed_scan(deployment_slug,
141
+ project_name,
142
+ body)
143
+ @api_call
144
+ .request(new_request_builder(HttpMethodEnum::PATCH,
145
+ '/api/v1/deployments/{deploymentSlug}/projects/{projectName}/managed-scan',
146
+ Server::SEMGREP)
147
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
148
+ .is_required(true)
149
+ .should_encode(true))
150
+ .template_param(new_parameter(project_name, key: 'projectName')
151
+ .is_required(true)
152
+ .should_encode(true))
153
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
154
+ .body_param(new_parameter(body)
155
+ .is_required(true))
156
+ .header_param(new_parameter('application/json', key: 'accept'))
157
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
158
+ .auth(Single.new('SemgrepWebToken')))
159
+ .response(new_response_handler
160
+ .deserializer(APIHelper.method(:custom_type_deserializer))
161
+ .deserialize_into(ToggleProjectManagedScanResponse.method(:from_hash))
162
+ .is_api_response(true))
163
+ .execute
164
+ end
165
+
166
+ # Remove tags from a project for a deployment you have access to.
167
+ # This request will not delete project tags from the deployment and will
168
+ # only remove
169
+ # them from the requested project. Any other projects associated with the
170
+ # requested
171
+ # tag will remain unaffected.
172
+ # @param [String] deployment_slug Required parameter: TODO: type description
173
+ # here
174
+ # @param [String] project_name Required parameter: TODO: type description
175
+ # here
176
+ # @param [Array[String]] tags Optional parameter: TODO: type description
177
+ # here
178
+ # @return [ApiResponse] Complete http response with raw body and status code.
179
+ def projects_service_delete_project_tags(deployment_slug,
180
+ project_name,
181
+ tags: nil)
182
+ @api_call
183
+ .request(new_request_builder(HttpMethodEnum::DELETE,
184
+ '/api/v1/deployments/{deploymentSlug}/projects/{projectName}/tags',
185
+ Server::SEMGREP)
186
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
187
+ .is_required(true)
188
+ .should_encode(true))
189
+ .template_param(new_parameter(project_name, key: 'projectName')
190
+ .is_required(true)
191
+ .should_encode(true))
192
+ .query_param(new_parameter(tags, key: 'tags'))
193
+ .header_param(new_parameter('application/json', key: 'accept'))
194
+ .auth(Single.new('SemgrepWebToken')))
195
+ .response(new_response_handler
196
+ .deserializer(APIHelper.method(:custom_type_deserializer))
197
+ .deserialize_into(DeleteProjectTagsResponse.method(:from_hash))
198
+ .is_api_response(true))
199
+ .execute
200
+ end
201
+
202
+ # Add tags to a project for a deployment you have access to.
203
+ # Any project tags that do not already exist for the deployment will be
204
+ # created automatically and associated with the project.
205
+ # @param [String] deployment_slug Required parameter: TODO: type description
206
+ # here
207
+ # @param [String] project_name Required parameter: TODO: type description
208
+ # here
209
+ # @param [AddProjectTagsRequest] body Required parameter: TODO: type
210
+ # description here
211
+ # @return [ApiResponse] Complete http response with raw body and status code.
212
+ def projects_service_add_project_tags(deployment_slug,
213
+ project_name,
214
+ body)
215
+ @api_call
216
+ .request(new_request_builder(HttpMethodEnum::PUT,
217
+ '/api/v1/deployments/{deploymentSlug}/projects/{projectName}/tags',
218
+ Server::SEMGREP)
219
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
220
+ .is_required(true)
221
+ .should_encode(true))
222
+ .template_param(new_parameter(project_name, key: 'projectName')
223
+ .is_required(true)
224
+ .should_encode(true))
225
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
226
+ .body_param(new_parameter(body)
227
+ .is_required(true))
228
+ .header_param(new_parameter('application/json', key: 'accept'))
229
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
230
+ .auth(Single.new('SemgrepWebToken')))
231
+ .response(new_response_handler
232
+ .deserializer(APIHelper.method(:custom_type_deserializer))
233
+ .deserialize_into(AddProjectTagsResponse.method(:from_hash))
234
+ .is_api_response(true))
235
+ .execute
236
+ end
237
+ end
238
+ end
@@ -0,0 +1,65 @@
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
+ # ScansServiceApi
8
+ class ScansServiceApi < BaseApi
9
+ # Request the details of a scan including the associated deployment,
10
+ # repository, and commit information.
11
+ # @param [String] deployment_id Required parameter: TODO: type description
12
+ # here
13
+ # @param [String] scan_id Required parameter: TODO: type description here
14
+ # @return [ApiResponse] Complete http response with raw body and status code.
15
+ def scans_service_get_scan(deployment_id,
16
+ scan_id)
17
+ @api_call
18
+ .request(new_request_builder(HttpMethodEnum::GET,
19
+ '/api/v1/deployments/{deploymentId}/scan/{scanId}',
20
+ Server::SEMGREP)
21
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
22
+ .is_required(true)
23
+ .should_encode(true))
24
+ .template_param(new_parameter(scan_id, key: 'scanId')
25
+ .is_required(true)
26
+ .should_encode(true))
27
+ .header_param(new_parameter('application/json', key: 'accept'))
28
+ .auth(Single.new('SemgrepWebToken')))
29
+ .response(new_response_handler
30
+ .deserializer(APIHelper.method(:custom_type_deserializer))
31
+ .deserialize_into(ProtosOpenapiV1GetScanResponse.method(:from_hash))
32
+ .is_api_response(true))
33
+ .execute
34
+ end
35
+
36
+ # List the scans associated with a particular repository over the past 30
37
+ # days.
38
+ # @param [String] deployment_id Required parameter: TODO: type description
39
+ # here
40
+ # @param [SearchScansRequest] body Required parameter: TODO: type
41
+ # description here
42
+ # @return [ApiResponse] Complete http response with raw body and status code.
43
+ def scans_service_search_scans(deployment_id,
44
+ body)
45
+ @api_call
46
+ .request(new_request_builder(HttpMethodEnum::POST,
47
+ '/api/v1/deployments/{deploymentId}/scans/search',
48
+ Server::SEMGREP)
49
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
50
+ .is_required(true)
51
+ .should_encode(true))
52
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
53
+ .body_param(new_parameter(body)
54
+ .is_required(true))
55
+ .header_param(new_parameter('application/json', key: 'accept'))
56
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
57
+ .auth(Single.new('SemgrepWebToken')))
58
+ .response(new_response_handler
59
+ .deserializer(APIHelper.method(:custom_type_deserializer))
60
+ .deserialize_into(ProtosOpenapiV1SearchScansResponse.method(:from_hash))
61
+ .is_api_response(true))
62
+ .execute
63
+ end
64
+ end
65
+ 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
+ # SecretsServiceApi
8
+ class SecretsServiceApi < BaseApi
9
+ # TODO: type endpoint description here
10
+ # @param [String] deployment_id Required parameter: TODO: type description
11
+ # here
12
+ # @param [String] cursor Optional parameter: TODO: type description here
13
+ # @param [Integer] limit Optional parameter: TODO: type description here
14
+ # @param [DateTime] since Optional parameter: TODO: type description here
15
+ # @param [Array[ValidationState3]] validation_state Optional parameter:
16
+ # TODO: type description here
17
+ # @param [Status8] status Optional parameter:
18
+ # Example:FINDING_STATUS_UNSPECIFIED
19
+ # @param [Array[Severity5]] severity Optional parameter: TODO: type
20
+ # description here
21
+ # @param [Array[String]] repo Optional parameter: TODO: type description
22
+ # here
23
+ # @return [ApiResponse] Complete http response with raw body and status code.
24
+ def secrets_service_list_secrets_path(deployment_id,
25
+ cursor: nil,
26
+ limit: nil,
27
+ since: nil,
28
+ validation_state: nil,
29
+ status: Status8::FINDING_STATUS_UNSPECIFIED,
30
+ severity: nil,
31
+ repo: nil)
32
+ @api_call
33
+ .request(new_request_builder(HttpMethodEnum::GET,
34
+ '/api/v1/deployments/{deploymentId}/secrets',
35
+ Server::SEMGREP)
36
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
37
+ .is_required(true)
38
+ .should_encode(true))
39
+ .query_param(new_parameter(cursor, key: 'cursor'))
40
+ .query_param(new_parameter(limit, key: 'limit'))
41
+ .query_param(new_parameter(since, key: 'since'))
42
+ .query_param(new_parameter(validation_state, key: 'validationState'))
43
+ .query_param(new_parameter(status, key: 'status'))
44
+ .query_param(new_parameter(severity, key: 'severity'))
45
+ .query_param(new_parameter(repo, key: 'repo'))
46
+ .header_param(new_parameter('application/json', key: 'accept'))
47
+ .auth(Single.new('SemgrepWebToken')))
48
+ .response(new_response_handler
49
+ .deserializer(APIHelper.method(:custom_type_deserializer))
50
+ .deserialize_into(ProtosOpenapiV1ListSecretsPathResponse.method(:from_hash))
51
+ .is_api_response(true))
52
+ .execute
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,154 @@
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
+ # SupplyChainServiceApi
8
+ class SupplyChainServiceApi < BaseApi
9
+ # TODO: type endpoint description here
10
+ # @param [String] deployment_id Required parameter: TODO: type description
11
+ # here
12
+ # @param [ListDependenciesRequest] body Required parameter: TODO: type
13
+ # description here
14
+ # @return [ApiResponse] Complete http response with raw body and status code.
15
+ def supply_chain_service_list_dependencies(deployment_id,
16
+ body)
17
+ @api_call
18
+ .request(new_request_builder(HttpMethodEnum::POST,
19
+ '/api/v1/deployments/{deploymentId}/dependencies',
20
+ Server::SEMGREP)
21
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
22
+ .is_required(true)
23
+ .should_encode(true))
24
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
25
+ .body_param(new_parameter(body)
26
+ .is_required(true))
27
+ .header_param(new_parameter('application/json', key: 'accept'))
28
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
29
+ .auth(Single.new('SemgrepWebToken')))
30
+ .response(new_response_handler
31
+ .deserializer(APIHelper.method(:custom_type_deserializer))
32
+ .deserialize_into(ListDependenciesResponse.method(:from_hash))
33
+ .is_api_response(true))
34
+ .execute
35
+ end
36
+
37
+ # TODO: type endpoint description here
38
+ # @param [String] deployment_id Required parameter: TODO: type description
39
+ # here
40
+ # @param [ListRepositoriesForDependenciesRequest] body Required parameter:
41
+ # TODO: type description here
42
+ # @return [ApiResponse] Complete http response with raw body and status code.
43
+ def supply_chain_service_list_repositories_for_dependencies(deployment_id,
44
+ body)
45
+ @api_call
46
+ .request(new_request_builder(HttpMethodEnum::POST,
47
+ '/api/v1/deployments/{deploymentId}/dependencies/repositories',
48
+ Server::SEMGREP)
49
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
50
+ .is_required(true)
51
+ .should_encode(true))
52
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
53
+ .body_param(new_parameter(body)
54
+ .is_required(true))
55
+ .header_param(new_parameter('application/json', key: 'accept'))
56
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
57
+ .auth(Single.new('SemgrepWebToken')))
58
+ .response(new_response_handler
59
+ .deserializer(APIHelper.method(:custom_type_deserializer))
60
+ .deserialize_into(ListRepositoriesForDependenciesResponse.method(:from_hash))
61
+ .is_api_response(true))
62
+ .execute
63
+ end
64
+
65
+ # TODO: type endpoint description here
66
+ # @param [String] deployment_id Required parameter: TODO: type description
67
+ # here
68
+ # @param [String] repository_id Required parameter: TODO: type description
69
+ # here
70
+ # @param [ListLockfilesForDependenciesRequest] body Required parameter:
71
+ # TODO: type description here
72
+ # @return [ApiResponse] Complete http response with raw body and status code.
73
+ def supply_chain_service_list_lockfiles_for_dependencies(deployment_id,
74
+ repository_id,
75
+ body)
76
+ @api_call
77
+ .request(new_request_builder(HttpMethodEnum::POST,
78
+ '/api/v1/deployments/{deploymentId}/dependencies/repositories/{repositoryId}/lockfiles',
79
+ Server::SEMGREP)
80
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
81
+ .is_required(true)
82
+ .should_encode(true))
83
+ .template_param(new_parameter(repository_id, key: 'repositoryId')
84
+ .is_required(true)
85
+ .should_encode(true))
86
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
87
+ .body_param(new_parameter(body)
88
+ .is_required(true))
89
+ .header_param(new_parameter('application/json', key: 'accept'))
90
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
91
+ .auth(Single.new('SemgrepWebToken')))
92
+ .response(new_response_handler
93
+ .deserializer(APIHelper.method(:custom_type_deserializer))
94
+ .deserialize_into(ListLockfilesForDependenciesResponse.method(:from_hash))
95
+ .is_api_response(true))
96
+ .execute
97
+ end
98
+
99
+ # TODO: type endpoint description here
100
+ # @param [String] deployment_id Required parameter: TODO: type description
101
+ # here
102
+ # @param [CreateSbomExportRequest] body Required parameter: TODO: type
103
+ # description here
104
+ # @return [ApiResponse] Complete http response with raw body and status code.
105
+ def supply_chain_service_create_sbom_export(deployment_id,
106
+ body)
107
+ @api_call
108
+ .request(new_request_builder(HttpMethodEnum::POST,
109
+ '/api/v1/deployments/{deploymentId}/sbom/export',
110
+ Server::SEMGREP)
111
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
112
+ .is_required(true)
113
+ .should_encode(true))
114
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
115
+ .body_param(new_parameter(body)
116
+ .is_required(true))
117
+ .header_param(new_parameter('application/json', key: 'accept'))
118
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
119
+ .auth(Single.new('SemgrepWebToken')))
120
+ .response(new_response_handler
121
+ .deserializer(APIHelper.method(:custom_type_deserializer))
122
+ .deserialize_into(CreateSbomExportResponse.method(:from_hash))
123
+ .is_api_response(true))
124
+ .execute
125
+ end
126
+
127
+ # TODO: type endpoint description here
128
+ # @param [String] deployment_id Required parameter: TODO: type description
129
+ # here
130
+ # @param [String] task_token Required parameter: TODO: type description
131
+ # here
132
+ # @return [ApiResponse] Complete http response with raw body and status code.
133
+ def supply_chain_service_get_sbom_export(deployment_id,
134
+ task_token)
135
+ @api_call
136
+ .request(new_request_builder(HttpMethodEnum::GET,
137
+ '/api/v1/deployments/{deploymentId}/sbom/export/{taskToken}',
138
+ Server::SEMGREP)
139
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
140
+ .is_required(true)
141
+ .should_encode(true))
142
+ .template_param(new_parameter(task_token, key: 'taskToken')
143
+ .is_required(true)
144
+ .should_encode(true))
145
+ .header_param(new_parameter('application/json', key: 'accept'))
146
+ .auth(Single.new('SemgrepWebToken')))
147
+ .response(new_response_handler
148
+ .deserializer(APIHelper.method(:custom_type_deserializer))
149
+ .deserialize_into(GetSbomExportResponse.method(:from_hash))
150
+ .is_api_response(true))
151
+ .execute
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,144 @@
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
+ # TicketingServiceApi
8
+ class TicketingServiceApi < BaseApi
9
+ # Unlink a Jira ticket by its ID
10
+ # @param [String] deployment_id Required parameter: TODO: type description
11
+ # here
12
+ # @param [Integer] external_ticket_id Required parameter: TODO: type
13
+ # description here
14
+ # @return [ApiResponse] Complete http response with raw body and status code.
15
+ def ticketing_service_delete_ticket(deployment_id,
16
+ external_ticket_id)
17
+ @api_call
18
+ .request(new_request_builder(HttpMethodEnum::DELETE,
19
+ '/api/v1/deployments/{deploymentId}/ticketing/v2/tickets/{externalTicketId}',
20
+ Server::SEMGREP)
21
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
22
+ .is_required(true)
23
+ .should_encode(true))
24
+ .template_param(new_parameter(external_ticket_id, key: 'externalTicketId')
25
+ .is_required(true)
26
+ .should_encode(true))
27
+ .header_param(new_parameter('application/json', key: 'accept'))
28
+ .auth(Single.new('SemgrepWebToken')))
29
+ .response(new_response_handler
30
+ .deserializer(APIHelper.method(:custom_type_deserializer))
31
+ .deserialize_into(ProtosOpenapiV1DeleteTicketResponse.method(:from_hash))
32
+ .is_api_response(true))
33
+ .execute
34
+ end
35
+
36
+ # Link an existing external ticket (e.g. Jira) to one or more Semgrep
37
+ # findings by providing the ticket URL and a list of finding IDs. This does
38
+ # not create a ticket in your issue tracker — it only records the
39
+ # association in Semgrep. If a finding is already linked to a different
40
+ # ticket, the existing link is replaced. Requires a configured ticketing
41
+ # integration.
42
+ # @param [String] deployment_id Required parameter: TODO: type description
43
+ # here
44
+ # @param [LinkTicketRequest] body Required parameter: TODO: type description
45
+ # here
46
+ # @return [ApiResponse] Complete http response with raw body and status code.
47
+ def ticketing_service_link_ticket(deployment_id,
48
+ body)
49
+ @api_call
50
+ .request(new_request_builder(HttpMethodEnum::POST,
51
+ '/api/v1/deployments/{deploymentId}/tickets/link',
52
+ Server::SEMGREP)
53
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
54
+ .is_required(true)
55
+ .should_encode(true))
56
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
57
+ .body_param(new_parameter(body)
58
+ .is_required(true))
59
+ .header_param(new_parameter('application/json', key: 'accept'))
60
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
61
+ .auth(Single.new('SemgrepWebToken')))
62
+ .response(new_response_handler
63
+ .deserializer(APIHelper.method(:custom_type_deserializer))
64
+ .deserialize_into(ProtosOpenapiV1LinkTicketResponse.method(:from_hash))
65
+ .is_api_response(true))
66
+ .execute
67
+ end
68
+
69
+ # Remove the ticket association from one or more Semgrep findings by
70
+ # providing a list of finding IDs. This does not delete the ticket in your
71
+ # issue tracker — it only removes the association in Semgrep.
72
+ # @param [String] deployment_id Required parameter: TODO: type description
73
+ # here
74
+ # @param [UnlinkTicketRequest] body Required parameter: TODO: type
75
+ # description here
76
+ # @return [ApiResponse] Complete http response with raw body and status code.
77
+ def ticketing_service_unlink_ticket(deployment_id,
78
+ body)
79
+ @api_call
80
+ .request(new_request_builder(HttpMethodEnum::POST,
81
+ '/api/v1/deployments/{deploymentId}/tickets/unlink',
82
+ Server::SEMGREP)
83
+ .template_param(new_parameter(deployment_id, key: 'deploymentId')
84
+ .is_required(true)
85
+ .should_encode(true))
86
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
87
+ .body_param(new_parameter(body)
88
+ .is_required(true))
89
+ .header_param(new_parameter('application/json', key: 'accept'))
90
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
91
+ .auth(Single.new('SemgrepWebToken')))
92
+ .response(new_response_handler
93
+ .deserializer(APIHelper.method(:custom_type_deserializer))
94
+ .deserialize_into(ProtosOpenapiV1UnlinkTicketResponse.method(:from_hash))
95
+ .is_api_response(true))
96
+ .execute
97
+ end
98
+
99
+ # Create Jira tickets for your findings. You can create tickets by passing
100
+ # in a list of issue_ids or by passing in filter query parameters to
101
+ # dynamically select findings. If passing in filters, Semgrep will skip
102
+ # already ticketed findings. This endpoint is synchronous, so it may take
103
+ # some time for your request to resolve. Unlike creating tickets in-app, if
104
+ # ticket creation fails we won't automatically retry. This endpoint accepts
105
+ # a limit parameter (defaulting to 20) to limit the number of tickets
106
+ # created per request. If you specify a list of issue_ids greater than this
107
+ # limit, or your selected filters match on a number of issues greater than
108
+ # this limit, issues that were not ticketed are included in the Failed part
109
+ # of the response object. You can send another request to create tickets for
110
+ # these skipped issues. By default, findings belonging to the same
111
+ # repository and the same rule will be grouped together into a single Jira
112
+ # ticket. You can override this using the group_issues query parameter. Up
113
+ # to 50 issues can be grouped into a single ticket. You can optionally
114
+ # override the Jira project you create tickets in by passing in a Jira
115
+ # project ID as jira_project_id (the numeric ID rather than the project
116
+ # key). You can fetch this ID using the Jira API.
117
+ # @param [String] deployment_slug Required parameter: TODO: type description
118
+ # here
119
+ # @param [CreateTicketRequest] body Required parameter: TODO: type
120
+ # description here
121
+ # @return [ApiResponse] Complete http response with raw body and status code.
122
+ def ticketing_service_create_ticket(deployment_slug,
123
+ body)
124
+ @api_call
125
+ .request(new_request_builder(HttpMethodEnum::POST,
126
+ '/api/v1/deployments/{deploymentSlug}/tickets',
127
+ Server::SEMGREP)
128
+ .template_param(new_parameter(deployment_slug, key: 'deploymentSlug')
129
+ .is_required(true)
130
+ .should_encode(true))
131
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
132
+ .body_param(new_parameter(body)
133
+ .is_required(true))
134
+ .header_param(new_parameter('application/json', key: 'accept'))
135
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
136
+ .auth(Single.new('SemgrepWebToken')))
137
+ .response(new_response_handler
138
+ .deserializer(APIHelper.method(:custom_type_deserializer))
139
+ .deserialize_into(ProtosOpenapiV1CreateTicketResponse.method(:from_hash))
140
+ .is_api_response(true))
141
+ .execute
142
+ end
143
+ end
144
+ end