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,199 @@
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
+ # Object to provide dependency details to filter by.
8
+ class ProtosScaV1DependencyFilter < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Filter by ecosystem (e.g. npm, pypi, etc).
13
+ # | value | description |
14
+ # |-------|---------------|
15
+ # | no_package_manager | |
16
+ # | npm | |
17
+ # | pypi | |
18
+ # | gomod | |
19
+ # | cargo | |
20
+ # | maven | |
21
+ # | gem | |
22
+ # | composer | |
23
+ # | nuget | |
24
+ # | pub | |
25
+ # | swiftpm | |
26
+ # | hex | |
27
+ # | cocoapods | |
28
+ # | mix | |
29
+ # | opam | |
30
+ # @return [Ecosystem]
31
+ attr_accessor :ecosystem
32
+
33
+ # Filter by license (e.g. MIT).
34
+ # @return [Array[String]]
35
+ attr_accessor :license
36
+
37
+ # Filter by license policy setting outcome.
38
+ # | value | description |
39
+ # |-------|---------------|
40
+ # | LICENSE_POLICY_SETTING_ALLOW | |
41
+ # | LICENSE_POLICY_SETTING_COMMENT | |
42
+ # | LICENSE_POLICY_SETTING_BLOCK | |
43
+ # @return [LicensePolicySettings]
44
+ attr_accessor :license_policy_settings
45
+
46
+ # Filter by path to the lockfile (e.g. `foo/bar/package-lock.json`).
47
+ # @return [String]
48
+ attr_accessor :lockfile_path
49
+
50
+ # Deprecated - use package_filters instead. Filter by dependency name (e.g.
51
+ # lodash).
52
+ # @return [String]
53
+ attr_accessor :name
54
+
55
+ # Multiple package filters with exact name matching and version bounds.
56
+ # @return [Array[ProtosScaV1PackageFilter]]
57
+ attr_accessor :package_filters
58
+
59
+ # Repository IDs (numeric) to filter by. Omit if the endpoint has Repository
60
+ # ID as a path parameter.
61
+ # Use Projects endpoints to retrieve Repository IDs.
62
+ # @return [Array[Integer]]
63
+ attr_accessor :repository_id
64
+
65
+ # Filter by transitivity.
66
+ # | value | description |
67
+ # |-------|---------------|
68
+ # | UNKNOWN_TRANSITIVITY | |
69
+ # | TRANSITIVE | |
70
+ # | DIRECT | |
71
+ # @return [Transitivity]
72
+ attr_accessor :transitivity
73
+
74
+ # Deprecated - use package_filters instead. Filter by dependency version
75
+ # (e.g. 1.0.1).
76
+ # @return [String]
77
+ attr_accessor :version
78
+
79
+ # A mapping from model property names to API property names.
80
+ def self.names
81
+ @_hash = {} if @_hash.nil?
82
+ @_hash['ecosystem'] = 'ecosystem'
83
+ @_hash['license'] = 'license'
84
+ @_hash['license_policy_settings'] = 'licensePolicySettings'
85
+ @_hash['lockfile_path'] = 'lockfilePath'
86
+ @_hash['name'] = 'name'
87
+ @_hash['package_filters'] = 'packageFilters'
88
+ @_hash['repository_id'] = 'repositoryId'
89
+ @_hash['transitivity'] = 'transitivity'
90
+ @_hash['version'] = 'version'
91
+ @_hash
92
+ end
93
+
94
+ # An array for optional fields
95
+ def self.optionals
96
+ %w[
97
+ ecosystem
98
+ license
99
+ license_policy_settings
100
+ lockfile_path
101
+ name
102
+ package_filters
103
+ repository_id
104
+ transitivity
105
+ version
106
+ ]
107
+ end
108
+
109
+ # An array for nullable fields
110
+ def self.nullables
111
+ []
112
+ end
113
+
114
+ def initialize(ecosystem: SKIP, license: SKIP,
115
+ license_policy_settings: SKIP, lockfile_path: SKIP,
116
+ name: SKIP, package_filters: SKIP, repository_id: SKIP,
117
+ transitivity: SKIP, version: SKIP,
118
+ additional_properties: nil)
119
+ # Add additional model properties to the instance
120
+ additional_properties = {} if additional_properties.nil?
121
+
122
+ @ecosystem = ecosystem unless ecosystem == SKIP
123
+ @license = license unless license == SKIP
124
+ @license_policy_settings = license_policy_settings unless license_policy_settings == SKIP
125
+ @lockfile_path = lockfile_path unless lockfile_path == SKIP
126
+ @name = name unless name == SKIP
127
+ @package_filters = package_filters unless package_filters == SKIP
128
+ @repository_id = repository_id unless repository_id == SKIP
129
+ @transitivity = transitivity unless transitivity == SKIP
130
+ @version = version unless version == SKIP
131
+ @additional_properties = additional_properties
132
+ end
133
+
134
+ # Creates an instance of the object from a hash.
135
+ def self.from_hash(hash)
136
+ return nil unless hash
137
+
138
+ # Extract variables from the hash.
139
+ ecosystem = hash.key?('ecosystem') ? hash['ecosystem'] : SKIP
140
+ license = hash.key?('license') ? hash['license'] : SKIP
141
+ license_policy_settings =
142
+ hash.key?('licensePolicySettings') ? hash['licensePolicySettings'] : SKIP
143
+ lockfile_path = hash.key?('lockfilePath') ? hash['lockfilePath'] : SKIP
144
+ name = hash.key?('name') ? hash['name'] : SKIP
145
+ # Parameter is an array, so we need to iterate through it
146
+ package_filters = nil
147
+ unless hash['packageFilters'].nil?
148
+ package_filters = []
149
+ hash['packageFilters'].each do |structure|
150
+ package_filters << (ProtosScaV1PackageFilter.from_hash(structure) if structure)
151
+ end
152
+ end
153
+
154
+ package_filters = SKIP unless hash.key?('packageFilters')
155
+ repository_id = hash.key?('repositoryId') ? hash['repositoryId'] : SKIP
156
+ transitivity = hash.key?('transitivity') ? hash['transitivity'] : SKIP
157
+ version = hash.key?('version') ? hash['version'] : SKIP
158
+
159
+ # Create a new hash for additional properties, removing known properties.
160
+ new_hash = hash.reject { |k, _| names.value?(k) }
161
+
162
+ additional_properties = APIHelper.get_additional_properties(
163
+ new_hash, proc { |value| value }
164
+ )
165
+
166
+ # Create object from extracted values.
167
+ ProtosScaV1DependencyFilter.new(ecosystem: ecosystem,
168
+ license: license,
169
+ license_policy_settings: license_policy_settings,
170
+ lockfile_path: lockfile_path,
171
+ name: name,
172
+ package_filters: package_filters,
173
+ repository_id: repository_id,
174
+ transitivity: transitivity,
175
+ version: version,
176
+ additional_properties: additional_properties)
177
+ end
178
+
179
+ # Provides a human-readable string representation of the object.
180
+ def to_s
181
+ class_name = self.class.name.split('::').last
182
+ "<#{class_name} ecosystem: #{@ecosystem}, license: #{@license}, license_policy_settings:"\
183
+ " #{@license_policy_settings}, lockfile_path: #{@lockfile_path}, name: #{@name},"\
184
+ " package_filters: #{@package_filters}, repository_id: #{@repository_id}, transitivity:"\
185
+ " #{@transitivity}, version: #{@version}, additional_properties: #{@additional_properties}>"
186
+ end
187
+
188
+ # Provides a debugging-friendly string with detailed object information.
189
+ def inspect
190
+ class_name = self.class.name.split('::').last
191
+ "<#{class_name} ecosystem: #{@ecosystem.inspect}, license: #{@license.inspect},"\
192
+ " license_policy_settings: #{@license_policy_settings.inspect}, lockfile_path:"\
193
+ " #{@lockfile_path.inspect}, name: #{@name.inspect}, package_filters:"\
194
+ " #{@package_filters.inspect}, repository_id: #{@repository_id.inspect}, transitivity:"\
195
+ " #{@transitivity.inspect}, version: #{@version.inspect}, additional_properties:"\
196
+ " #{@additional_properties}>"
197
+ end
198
+ end
199
+ end
@@ -0,0 +1,174 @@
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
+ # ProtosScaV1FoundDependency Model.
8
+ class ProtosScaV1FoundDependency < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Path and line number dependency is declared in.
13
+ # @return [ProtosScaV1CodeLocation]
14
+ attr_accessor :defined_at
15
+
16
+ # The ecosystem the dependency is in (e.g. pypi, npm, etc).
17
+ # | value | description |
18
+ # |-------|---------------|
19
+ # | no_package_manager | |
20
+ # | npm | |
21
+ # | pypi | |
22
+ # | gomod | |
23
+ # | cargo | |
24
+ # | maven | |
25
+ # | gem | |
26
+ # | composer | |
27
+ # | nuget | |
28
+ # | pub | |
29
+ # | swiftpm | |
30
+ # | hex | |
31
+ # | cocoapods | |
32
+ # | mix | |
33
+ # | opam | |
34
+ # @return [Ecosystem1]
35
+ attr_accessor :ecosystem
36
+
37
+ # Licenses the dependency is using.
38
+ # @return [Array[String]]
39
+ attr_accessor :licenses
40
+
41
+ # Path to the manifest file that defines the subproject containing this
42
+ # dependency
43
+ # @return [ProtosScaV1CodeLocation]
44
+ attr_accessor :manifest_definition
45
+
46
+ # What the dependency is.
47
+ # @return [ProtosScaV1Dependency]
48
+ attr_accessor :package
49
+
50
+ # ID of repository dependency is found in.
51
+ # @return [String]
52
+ attr_accessor :repository_id
53
+
54
+ # The resolved URL of the dependency. Could point to a compressed source
55
+ # code directory (e.g. tarball), source code repository, or a package
56
+ # manager cache directory. May be empty if the package manager doesn't
57
+ # supply a URL.
58
+ # @return [String]
59
+ attr_accessor :resolved_url
60
+
61
+ # Whether dependency is direct or transitive.
62
+ # | value | description |
63
+ # |-------|---------------|
64
+ # | UNKNOWN_TRANSITIVITY | |
65
+ # | TRANSITIVE | |
66
+ # | DIRECT | |
67
+ # @return [Transitivity1]
68
+ attr_accessor :transitivity
69
+
70
+ # A mapping from model property names to API property names.
71
+ def self.names
72
+ @_hash = {} if @_hash.nil?
73
+ @_hash['defined_at'] = 'definedAt'
74
+ @_hash['ecosystem'] = 'ecosystem'
75
+ @_hash['licenses'] = 'licenses'
76
+ @_hash['manifest_definition'] = 'manifestDefinition'
77
+ @_hash['package'] = 'package'
78
+ @_hash['repository_id'] = 'repositoryId'
79
+ @_hash['resolved_url'] = 'resolvedUrl'
80
+ @_hash['transitivity'] = 'transitivity'
81
+ @_hash
82
+ end
83
+
84
+ # An array for optional fields
85
+ def self.optionals
86
+ %w[
87
+ defined_at
88
+ ecosystem
89
+ licenses
90
+ manifest_definition
91
+ package
92
+ repository_id
93
+ resolved_url
94
+ transitivity
95
+ ]
96
+ end
97
+
98
+ # An array for nullable fields
99
+ def self.nullables
100
+ []
101
+ end
102
+
103
+ def initialize(defined_at: SKIP, ecosystem: SKIP, licenses: SKIP,
104
+ manifest_definition: SKIP, package: SKIP,
105
+ repository_id: SKIP, resolved_url: SKIP, transitivity: SKIP,
106
+ additional_properties: nil)
107
+ # Add additional model properties to the instance
108
+ additional_properties = {} if additional_properties.nil?
109
+
110
+ @defined_at = defined_at unless defined_at == SKIP
111
+ @ecosystem = ecosystem unless ecosystem == SKIP
112
+ @licenses = licenses unless licenses == SKIP
113
+ @manifest_definition = manifest_definition unless manifest_definition == SKIP
114
+ @package = package unless package == SKIP
115
+ @repository_id = repository_id unless repository_id == SKIP
116
+ @resolved_url = resolved_url unless resolved_url == SKIP
117
+ @transitivity = transitivity unless transitivity == SKIP
118
+ @additional_properties = additional_properties
119
+ end
120
+
121
+ # Creates an instance of the object from a hash.
122
+ def self.from_hash(hash)
123
+ return nil unless hash
124
+
125
+ # Extract variables from the hash.
126
+ defined_at = ProtosScaV1CodeLocation.from_hash(hash['definedAt']) if hash['definedAt']
127
+ ecosystem = hash.key?('ecosystem') ? hash['ecosystem'] : SKIP
128
+ licenses = hash.key?('licenses') ? hash['licenses'] : SKIP
129
+ manifest_definition = ProtosScaV1CodeLocation.from_hash(hash['manifestDefinition']) if
130
+ hash['manifestDefinition']
131
+ package = ProtosScaV1Dependency.from_hash(hash['package']) if hash['package']
132
+ repository_id = hash.key?('repositoryId') ? hash['repositoryId'] : SKIP
133
+ resolved_url = hash.key?('resolvedUrl') ? hash['resolvedUrl'] : SKIP
134
+ transitivity = hash.key?('transitivity') ? hash['transitivity'] : SKIP
135
+
136
+ # Create a new hash for additional properties, removing known properties.
137
+ new_hash = hash.reject { |k, _| names.value?(k) }
138
+
139
+ additional_properties = APIHelper.get_additional_properties(
140
+ new_hash, proc { |value| value }
141
+ )
142
+
143
+ # Create object from extracted values.
144
+ ProtosScaV1FoundDependency.new(defined_at: defined_at,
145
+ ecosystem: ecosystem,
146
+ licenses: licenses,
147
+ manifest_definition: manifest_definition,
148
+ package: package,
149
+ repository_id: repository_id,
150
+ resolved_url: resolved_url,
151
+ transitivity: transitivity,
152
+ additional_properties: additional_properties)
153
+ end
154
+
155
+ # Provides a human-readable string representation of the object.
156
+ def to_s
157
+ class_name = self.class.name.split('::').last
158
+ "<#{class_name} defined_at: #{@defined_at}, ecosystem: #{@ecosystem}, licenses:"\
159
+ " #{@licenses}, manifest_definition: #{@manifest_definition}, package: #{@package},"\
160
+ " repository_id: #{@repository_id}, resolved_url: #{@resolved_url}, transitivity:"\
161
+ " #{@transitivity}, additional_properties: #{@additional_properties}>"
162
+ end
163
+
164
+ # Provides a debugging-friendly string with detailed object information.
165
+ def inspect
166
+ class_name = self.class.name.split('::').last
167
+ "<#{class_name} defined_at: #{@defined_at.inspect}, ecosystem: #{@ecosystem.inspect},"\
168
+ " licenses: #{@licenses.inspect}, manifest_definition: #{@manifest_definition.inspect},"\
169
+ " package: #{@package.inspect}, repository_id: #{@repository_id.inspect}, resolved_url:"\
170
+ " #{@resolved_url.inspect}, transitivity: #{@transitivity.inspect}, additional_properties:"\
171
+ " #{@additional_properties}>"
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,87 @@
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
+ # ProtosScaV1LockfileDependencySummary Model.
8
+ class ProtosScaV1LockfileDependencySummary < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Path to lockfile (e.g. foo/bar/package-lock.json).
13
+ # @return [String]
14
+ attr_accessor :lockfile_path
15
+
16
+ # Total number of dependencies in the lockfile.
17
+ # @return [Integer]
18
+ attr_accessor :num_dependencies
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['lockfile_path'] = 'lockfilePath'
24
+ @_hash['num_dependencies'] = 'numDependencies'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ lockfile_path
32
+ num_dependencies
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(lockfile_path: SKIP, num_dependencies: SKIP,
42
+ additional_properties: nil)
43
+ # Add additional model properties to the instance
44
+ additional_properties = {} if additional_properties.nil?
45
+
46
+ @lockfile_path = lockfile_path unless lockfile_path == SKIP
47
+ @num_dependencies = num_dependencies unless num_dependencies == SKIP
48
+ @additional_properties = additional_properties
49
+ end
50
+
51
+ # Creates an instance of the object from a hash.
52
+ def self.from_hash(hash)
53
+ return nil unless hash
54
+
55
+ # Extract variables from the hash.
56
+ lockfile_path = hash.key?('lockfilePath') ? hash['lockfilePath'] : SKIP
57
+ num_dependencies =
58
+ hash.key?('numDependencies') ? hash['numDependencies'] : SKIP
59
+
60
+ # Create a new hash for additional properties, removing known properties.
61
+ new_hash = hash.reject { |k, _| names.value?(k) }
62
+
63
+ additional_properties = APIHelper.get_additional_properties(
64
+ new_hash, proc { |value| value }
65
+ )
66
+
67
+ # Create object from extracted values.
68
+ ProtosScaV1LockfileDependencySummary.new(lockfile_path: lockfile_path,
69
+ num_dependencies: num_dependencies,
70
+ additional_properties: additional_properties)
71
+ end
72
+
73
+ # Provides a human-readable string representation of the object.
74
+ def to_s
75
+ class_name = self.class.name.split('::').last
76
+ "<#{class_name} lockfile_path: #{@lockfile_path}, num_dependencies: #{@num_dependencies},"\
77
+ " additional_properties: #{@additional_properties}>"
78
+ end
79
+
80
+ # Provides a debugging-friendly string with detailed object information.
81
+ def inspect
82
+ class_name = self.class.name.split('::').last
83
+ "<#{class_name} lockfile_path: #{@lockfile_path.inspect}, num_dependencies:"\
84
+ " #{@num_dependencies.inspect}, additional_properties: #{@additional_properties}>"
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,124 @@
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
+ # Individual package filter with optional version bounds.
8
+ class ProtosScaV1PackageFilter < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # When true, name must match exactly. When false (default), name is
13
+ # fuzzy-matched (contains).
14
+ # @return [TrueClass | FalseClass]
15
+ attr_accessor :exact_name_match
16
+
17
+ # Exact version match (e.g. "1.0.0").
18
+ # Takes precedence over version bounds if set.
19
+ # @return [String]
20
+ attr_accessor :exact_version
21
+
22
+ # Exact package name (e.g. lodash).
23
+ # @return [String]
24
+ attr_accessor :name
25
+
26
+ # Lower bound version constraint (e.g. ">=1.0.0").
27
+ # Ignored if exact_version is set.
28
+ # @return [String]
29
+ attr_accessor :version_lower_bound
30
+
31
+ # Upper bound version constraint (e.g. "<2.0.0").
32
+ # Ignored if exact_version is set.
33
+ # @return [String]
34
+ attr_accessor :version_upper_bound
35
+
36
+ # A mapping from model property names to API property names.
37
+ def self.names
38
+ @_hash = {} if @_hash.nil?
39
+ @_hash['exact_name_match'] = 'exactNameMatch'
40
+ @_hash['exact_version'] = 'exactVersion'
41
+ @_hash['name'] = 'name'
42
+ @_hash['version_lower_bound'] = 'versionLowerBound'
43
+ @_hash['version_upper_bound'] = 'versionUpperBound'
44
+ @_hash
45
+ end
46
+
47
+ # An array for optional fields
48
+ def self.optionals
49
+ %w[
50
+ exact_name_match
51
+ exact_version
52
+ name
53
+ version_lower_bound
54
+ version_upper_bound
55
+ ]
56
+ end
57
+
58
+ # An array for nullable fields
59
+ def self.nullables
60
+ []
61
+ end
62
+
63
+ def initialize(exact_name_match: SKIP, exact_version: SKIP, name: SKIP,
64
+ version_lower_bound: SKIP, version_upper_bound: SKIP,
65
+ additional_properties: nil)
66
+ # Add additional model properties to the instance
67
+ additional_properties = {} if additional_properties.nil?
68
+
69
+ @exact_name_match = exact_name_match unless exact_name_match == SKIP
70
+ @exact_version = exact_version unless exact_version == SKIP
71
+ @name = name unless name == SKIP
72
+ @version_lower_bound = version_lower_bound unless version_lower_bound == SKIP
73
+ @version_upper_bound = version_upper_bound unless version_upper_bound == SKIP
74
+ @additional_properties = additional_properties
75
+ end
76
+
77
+ # Creates an instance of the object from a hash.
78
+ def self.from_hash(hash)
79
+ return nil unless hash
80
+
81
+ # Extract variables from the hash.
82
+ exact_name_match =
83
+ hash.key?('exactNameMatch') ? hash['exactNameMatch'] : SKIP
84
+ exact_version = hash.key?('exactVersion') ? hash['exactVersion'] : SKIP
85
+ name = hash.key?('name') ? hash['name'] : SKIP
86
+ version_lower_bound =
87
+ hash.key?('versionLowerBound') ? hash['versionLowerBound'] : SKIP
88
+ version_upper_bound =
89
+ hash.key?('versionUpperBound') ? hash['versionUpperBound'] : SKIP
90
+
91
+ # Create a new hash for additional properties, removing known properties.
92
+ new_hash = hash.reject { |k, _| names.value?(k) }
93
+
94
+ additional_properties = APIHelper.get_additional_properties(
95
+ new_hash, proc { |value| value }
96
+ )
97
+
98
+ # Create object from extracted values.
99
+ ProtosScaV1PackageFilter.new(exact_name_match: exact_name_match,
100
+ exact_version: exact_version,
101
+ name: name,
102
+ version_lower_bound: version_lower_bound,
103
+ version_upper_bound: version_upper_bound,
104
+ additional_properties: additional_properties)
105
+ end
106
+
107
+ # Provides a human-readable string representation of the object.
108
+ def to_s
109
+ class_name = self.class.name.split('::').last
110
+ "<#{class_name} exact_name_match: #{@exact_name_match}, exact_version: #{@exact_version},"\
111
+ " name: #{@name}, version_lower_bound: #{@version_lower_bound}, version_upper_bound:"\
112
+ " #{@version_upper_bound}, additional_properties: #{@additional_properties}>"
113
+ end
114
+
115
+ # Provides a debugging-friendly string with detailed object information.
116
+ def inspect
117
+ class_name = self.class.name.split('::').last
118
+ "<#{class_name} exact_name_match: #{@exact_name_match.inspect}, exact_version:"\
119
+ " #{@exact_version.inspect}, name: #{@name.inspect}, version_lower_bound:"\
120
+ " #{@version_lower_bound.inspect}, version_upper_bound: #{@version_upper_bound.inspect},"\
121
+ " additional_properties: #{@additional_properties}>"
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,111 @@
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
+ # ProtosScaV1RepositoryDependencySummary Model.
8
+ class ProtosScaV1RepositoryDependencySummary < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # True if the repository has been scanned with the
13
+ # `hasPathToTransitivityInScans` feature flag
14
+ # which means it will have dependency graph data in DGraph available to
15
+ # query
16
+ # @return [TrueClass | FalseClass]
17
+ attr_accessor :has_dependency_path_scan
18
+
19
+ # ID of repository.
20
+ # @return [Integer]
21
+ attr_accessor :id
22
+
23
+ # Name of repository.
24
+ # @return [String]
25
+ attr_accessor :name
26
+
27
+ # Total number of dependencies in the repository.
28
+ # @return [Integer]
29
+ attr_accessor :num_dependencies
30
+
31
+ # A mapping from model property names to API property names.
32
+ def self.names
33
+ @_hash = {} if @_hash.nil?
34
+ @_hash['has_dependency_path_scan'] = 'hasDependencyPathScan'
35
+ @_hash['id'] = 'id'
36
+ @_hash['name'] = 'name'
37
+ @_hash['num_dependencies'] = 'numDependencies'
38
+ @_hash
39
+ end
40
+
41
+ # An array for optional fields
42
+ def self.optionals
43
+ %w[
44
+ has_dependency_path_scan
45
+ id
46
+ name
47
+ num_dependencies
48
+ ]
49
+ end
50
+
51
+ # An array for nullable fields
52
+ def self.nullables
53
+ []
54
+ end
55
+
56
+ def initialize(has_dependency_path_scan: SKIP, id: SKIP, name: SKIP,
57
+ num_dependencies: SKIP, additional_properties: nil)
58
+ # Add additional model properties to the instance
59
+ additional_properties = {} if additional_properties.nil?
60
+
61
+ @has_dependency_path_scan = has_dependency_path_scan unless has_dependency_path_scan == SKIP
62
+ @id = id unless id == SKIP
63
+ @name = name unless name == SKIP
64
+ @num_dependencies = num_dependencies unless num_dependencies == SKIP
65
+ @additional_properties = additional_properties
66
+ end
67
+
68
+ # Creates an instance of the object from a hash.
69
+ def self.from_hash(hash)
70
+ return nil unless hash
71
+
72
+ # Extract variables from the hash.
73
+ has_dependency_path_scan =
74
+ hash.key?('hasDependencyPathScan') ? hash['hasDependencyPathScan'] : SKIP
75
+ id = hash.key?('id') ? hash['id'] : SKIP
76
+ name = hash.key?('name') ? hash['name'] : SKIP
77
+ num_dependencies =
78
+ hash.key?('numDependencies') ? hash['numDependencies'] : SKIP
79
+
80
+ # Create a new hash for additional properties, removing known properties.
81
+ new_hash = hash.reject { |k, _| names.value?(k) }
82
+
83
+ additional_properties = APIHelper.get_additional_properties(
84
+ new_hash, proc { |value| value }
85
+ )
86
+
87
+ # Create object from extracted values.
88
+ ProtosScaV1RepositoryDependencySummary.new(has_dependency_path_scan: has_dependency_path_scan,
89
+ id: id,
90
+ name: name,
91
+ num_dependencies: num_dependencies,
92
+ additional_properties: additional_properties)
93
+ end
94
+
95
+ # Provides a human-readable string representation of the object.
96
+ def to_s
97
+ class_name = self.class.name.split('::').last
98
+ "<#{class_name} has_dependency_path_scan: #{@has_dependency_path_scan}, id: #{@id}, name:"\
99
+ " #{@name}, num_dependencies: #{@num_dependencies}, additional_properties:"\
100
+ " #{@additional_properties}>"
101
+ end
102
+
103
+ # Provides a debugging-friendly string with detailed object information.
104
+ def inspect
105
+ class_name = self.class.name.split('::').last
106
+ "<#{class_name} has_dependency_path_scan: #{@has_dependency_path_scan.inspect}, id:"\
107
+ " #{@id.inspect}, name: #{@name.inspect}, num_dependencies: #{@num_dependencies.inspect},"\
108
+ " additional_properties: #{@additional_properties}>"
109
+ end
110
+ end
111
+ end