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.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +205 -0
- data/bin/console +15 -0
- data/lib/semgrep_web_app/api_helper.rb +10 -0
- data/lib/semgrep_web_app/apis/base_api.rb +67 -0
- data/lib/semgrep_web_app/apis/deployments_service_api.rb +29 -0
- data/lib/semgrep_web_app/apis/findings_service_api.rb +107 -0
- data/lib/semgrep_web_app/apis/misc_service_api.rb +47 -0
- data/lib/semgrep_web_app/apis/policies_service_api.rb +97 -0
- data/lib/semgrep_web_app/apis/projects_service_api.rb +238 -0
- data/lib/semgrep_web_app/apis/scans_service_api.rb +65 -0
- data/lib/semgrep_web_app/apis/secrets_service_api.rb +55 -0
- data/lib/semgrep_web_app/apis/supply_chain_service_api.rb +154 -0
- data/lib/semgrep_web_app/apis/ticketing_service_api.rb +144 -0
- data/lib/semgrep_web_app/apis/triage_service_api.rb +43 -0
- data/lib/semgrep_web_app/client.rb +136 -0
- data/lib/semgrep_web_app/configuration.rb +178 -0
- data/lib/semgrep_web_app/exceptions/api_exception.rb +21 -0
- data/lib/semgrep_web_app/http/api_response.rb +19 -0
- data/lib/semgrep_web_app/http/auth/semgrep_admin_jwt.rb +53 -0
- data/lib/semgrep_web_app/http/auth/semgrep_jwt.rb +53 -0
- data/lib/semgrep_web_app/http/auth/semgrep_web_token.rb +53 -0
- data/lib/semgrep_web_app/http/http_call_back.rb +10 -0
- data/lib/semgrep_web_app/http/http_method_enum.rb +10 -0
- data/lib/semgrep_web_app/http/http_request.rb +10 -0
- data/lib/semgrep_web_app/http/http_response.rb +10 -0
- data/lib/semgrep_web_app/http/proxy_settings.rb +22 -0
- data/lib/semgrep_web_app/logging/configuration/api_logging_configuration.rb +186 -0
- data/lib/semgrep_web_app/logging/sdk_logger.rb +17 -0
- data/lib/semgrep_web_app/models/add_project_tags_request.rb +96 -0
- data/lib/semgrep_web_app/models/add_project_tags_response.rb +73 -0
- data/lib/semgrep_web_app/models/ai_powered_scan_finding.rb +426 -0
- data/lib/semgrep_web_app/models/ai_sast_findings.rb +85 -0
- data/lib/semgrep_web_app/models/api_v1_deployments_findings_response.rb +87 -0
- data/lib/semgrep_web_app/models/assistant.rb +127 -0
- data/lib/semgrep_web_app/models/autofix.rb +98 -0
- data/lib/semgrep_web_app/models/autotriage.rb +98 -0
- data/lib/semgrep_web_app/models/autotriage_verdict.rb +36 -0
- data/lib/semgrep_web_app/models/autotriage_verdict2.rb +38 -0
- data/lib/semgrep_web_app/models/base_model.rb +110 -0
- data/lib/semgrep_web_app/models/bulk_triage_request.rb +393 -0
- data/lib/semgrep_web_app/models/bulk_triage_response.rb +83 -0
- data/lib/semgrep_web_app/models/click_to_fix_failure.rb +95 -0
- data/lib/semgrep_web_app/models/click_to_fix_pr.rb +95 -0
- data/lib/semgrep_web_app/models/click_to_fix_pr_state.rb +38 -0
- data/lib/semgrep_web_app/models/component.rb +95 -0
- data/lib/semgrep_web_app/models/confidence.rb +42 -0
- data/lib/semgrep_web_app/models/confidence1.rb +40 -0
- data/lib/semgrep_web_app/models/confidence2.rb +40 -0
- data/lib/semgrep_web_app/models/confidence3.rb +40 -0
- data/lib/semgrep_web_app/models/confidence7.rb +41 -0
- data/lib/semgrep_web_app/models/confidence8.rb +42 -0
- data/lib/semgrep_web_app/models/create_sbom_export_request.rb +176 -0
- data/lib/semgrep_web_app/models/create_sbom_export_response.rb +74 -0
- data/lib/semgrep_web_app/models/create_ticket_request.rb +393 -0
- data/lib/semgrep_web_app/models/cyclonedx_version.rb +48 -0
- data/lib/semgrep_web_app/models/delete_project_response.rb +74 -0
- data/lib/semgrep_web_app/models/delete_project_tags_response.rb +73 -0
- data/lib/semgrep_web_app/models/deployment.rb +102 -0
- data/lib/semgrep_web_app/models/ecosystem.rb +91 -0
- data/lib/semgrep_web_app/models/ecosystem1.rb +92 -0
- data/lib/semgrep_web_app/models/ecosystem2.rb +76 -0
- data/lib/semgrep_web_app/models/endpoint_reference.rb +72 -0
- data/lib/semgrep_web_app/models/epss_probability.rb +45 -0
- data/lib/semgrep_web_app/models/epss_score.rb +95 -0
- data/lib/semgrep_web_app/models/exposures.rb +50 -0
- data/lib/semgrep_web_app/models/exposures2.rb +51 -0
- data/lib/semgrep_web_app/models/external_ticket.rb +116 -0
- data/lib/semgrep_web_app/models/finding_location.rb +126 -0
- data/lib/semgrep_web_app/models/finding_repository.rb +95 -0
- data/lib/semgrep_web_app/models/finding_rule.rb +158 -0
- data/lib/semgrep_web_app/models/fix_recommendation.rb +95 -0
- data/lib/semgrep_web_app/models/float_range.rb +85 -0
- data/lib/semgrep_web_app/models/format.rb +27 -0
- data/lib/semgrep_web_app/models/found_dependency.rb +128 -0
- data/lib/semgrep_web_app/models/get_project_response.rb +73 -0
- data/lib/semgrep_web_app/models/get_sbom_export_response.rb +100 -0
- data/lib/semgrep_web_app/models/guidance.rb +98 -0
- data/lib/semgrep_web_app/models/issue_type.rb +40 -0
- data/lib/semgrep_web_app/models/issue_type1.rb +40 -0
- data/lib/semgrep_web_app/models/issue_type2.rb +42 -0
- data/lib/semgrep_web_app/models/license_policy_settings.rb +42 -0
- data/lib/semgrep_web_app/models/link_ticket_request.rb +93 -0
- data/lib/semgrep_web_app/models/list_dependencies_request.rb +108 -0
- data/lib/semgrep_web_app/models/list_dependencies_response.rb +102 -0
- data/lib/semgrep_web_app/models/list_findings_response.rb +100 -0
- data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_request.rb +118 -0
- data/lib/semgrep_web_app/models/list_lockfiles_for_dependencies_response.rb +103 -0
- data/lib/semgrep_web_app/models/list_project.rb +145 -0
- data/lib/semgrep_web_app/models/list_projects_response.rb +82 -0
- data/lib/semgrep_web_app/models/list_repositories_for_dependencies_request.rb +107 -0
- data/lib/semgrep_web_app/models/list_repositories_for_dependencies_response.rb +103 -0
- data/lib/semgrep_web_app/models/managed_scan_config.rb +85 -0
- data/lib/semgrep_web_app/models/metadata_component_type.rb +101 -0
- data/lib/semgrep_web_app/models/mode.rb +48 -0
- data/lib/semgrep_web_app/models/new_triage_reason.rb +48 -0
- data/lib/semgrep_web_app/models/new_triage_state.rb +48 -0
- data/lib/semgrep_web_app/models/policy.rb +118 -0
- data/lib/semgrep_web_app/models/policy_mode.rb +48 -0
- data/lib/semgrep_web_app/models/policy_mode1.rb +40 -0
- data/lib/semgrep_web_app/models/policy_mode3.rb +51 -0
- data/lib/semgrep_web_app/models/policy_reference.rb +105 -0
- data/lib/semgrep_web_app/models/product_type.rb +38 -0
- data/lib/semgrep_web_app/models/products.rb +46 -0
- data/lib/semgrep_web_app/models/project.rb +157 -0
- data/lib/semgrep_web_app/models/protos_ai_v1_autotriage.rb +154 -0
- data/lib/semgrep_web_app/models/protos_ai_v1_autotriage_feedback.rb +98 -0
- data/lib/semgrep_web_app/models/protos_common_v1_review_comment.rb +90 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response.rb +123 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_failed.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_skipped.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_create_ticket_response_ticket_creation_success.rb +106 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_delete_ticket_response.rb +76 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_diff_scan.rb +75 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_full_scan.rb +75 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_bootstrap_sms_vpc_response.rb +130 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response.rb +168 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_get_scan_response_scan_meta.rb +256 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_link_ticket_response.rb +119 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_deployments_response.rb +85 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_policies_response.rb +84 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_policy_rules_response.rb +104 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_list_secrets_path_response.rb +104 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_search_scans_response.rb +94 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_unlink_ticket_response.rb +77 -0
- data/lib/semgrep_web_app/models/protos_openapi_v1_update_policy_response.rb +88 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_code_location.rb +144 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_dependency.rb +87 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_dependency_filter.rb +199 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_found_dependency.rb +174 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_lockfile_dependency_summary.rb +87 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_package_filter.rb +124 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_repository_dependency_summary.rb +111 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_format_version.rb +109 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_contact.rb +95 -0
- data/lib/semgrep_web_app/models/protos_sca_v1_sbom_metadata_supplier.rb +95 -0
- data/lib/semgrep_web_app/models/protos_scan_v1_scan_findings_counts.rb +105 -0
- data/lib/semgrep_web_app/models/protos_scan_v1_scan_public.rb +228 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_historical_info.rb +116 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding.rb +320 -0
- data/lib/semgrep_web_app/models/protos_secrets_v1_secrets_finding_repository.rb +121 -0
- data/lib/semgrep_web_app/models/protos_ticketing_v1_external_ticket.rb +106 -0
- data/lib/semgrep_web_app/models/rating.rb +38 -0
- data/lib/semgrep_web_app/models/reachability.rb +48 -0
- data/lib/semgrep_web_app/models/repository_visibility.rb +40 -0
- data/lib/semgrep_web_app/models/review_comment.rb +100 -0
- data/lib/semgrep_web_app/models/risk.rb +40 -0
- data/lib/semgrep_web_app/models/rule.rb +292 -0
- data/lib/semgrep_web_app/models/rule_explanation.rb +98 -0
- data/lib/semgrep_web_app/models/sast_finding.rb +426 -0
- data/lib/semgrep_web_app/models/sast_findings.rb +84 -0
- data/lib/semgrep_web_app/models/sbom_output_format.rb +37 -0
- data/lib/semgrep_web_app/models/sca_finding.rb +458 -0
- data/lib/semgrep_web_app/models/sca_findings.rb +85 -0
- data/lib/semgrep_web_app/models/scm_type.rb +70 -0
- data/lib/semgrep_web_app/models/search_scans_request.rb +202 -0
- data/lib/semgrep_web_app/models/severities.rb +44 -0
- data/lib/semgrep_web_app/models/severities2.rb +45 -0
- data/lib/semgrep_web_app/models/severity.rb +46 -0
- data/lib/semgrep_web_app/models/severity1.rb +45 -0
- data/lib/semgrep_web_app/models/severity4.rb +46 -0
- data/lib/semgrep_web_app/models/severity5.rb +48 -0
- data/lib/semgrep_web_app/models/source.rb +42 -0
- data/lib/semgrep_web_app/models/state.rb +42 -0
- data/lib/semgrep_web_app/models/status.rb +55 -0
- data/lib/semgrep_web_app/models/status1.rb +52 -0
- data/lib/semgrep_web_app/models/status3.rb +44 -0
- data/lib/semgrep_web_app/models/status6.rb +55 -0
- data/lib/semgrep_web_app/models/status7.rb +59 -0
- data/lib/semgrep_web_app/models/status8.rb +61 -0
- data/lib/semgrep_web_app/models/status9.rb +55 -0
- data/lib/semgrep_web_app/models/statuses.rb +63 -0
- data/lib/semgrep_web_app/models/toggle_project_managed_scan_request.rb +108 -0
- data/lib/semgrep_web_app/models/toggle_project_managed_scan_response.rb +73 -0
- data/lib/semgrep_web_app/models/transitivities.rb +40 -0
- data/lib/semgrep_web_app/models/transitivities2.rb +42 -0
- data/lib/semgrep_web_app/models/transitivity.rb +41 -0
- data/lib/semgrep_web_app/models/transitivity1.rb +42 -0
- data/lib/semgrep_web_app/models/transitivity2.rb +40 -0
- data/lib/semgrep_web_app/models/triage_reason.rb +48 -0
- data/lib/semgrep_web_app/models/triage_reasons.rb +48 -0
- data/lib/semgrep_web_app/models/triage_reasons2.rb +50 -0
- data/lib/semgrep_web_app/models/triage_state.rb +54 -0
- data/lib/semgrep_web_app/models/unlink_ticket_request.rb +83 -0
- data/lib/semgrep_web_app/models/update_policy_request.rb +113 -0
- data/lib/semgrep_web_app/models/update_project_request.rb +121 -0
- data/lib/semgrep_web_app/models/update_project_response.rb +73 -0
- data/lib/semgrep_web_app/models/usage.rb +99 -0
- data/lib/semgrep_web_app/models/validation_state.rb +45 -0
- data/lib/semgrep_web_app/models/validation_state2.rb +47 -0
- data/lib/semgrep_web_app/models/validation_state3.rb +48 -0
- data/lib/semgrep_web_app/models/verdict.rb +41 -0
- data/lib/semgrep_web_app/models/verdict1.rb +38 -0
- data/lib/semgrep_web_app/models/visibility.rb +42 -0
- data/lib/semgrep_web_app/utilities/date_time_helper.rb +11 -0
- data/lib/semgrep_web_app/utilities/file_wrapper.rb +28 -0
- data/lib/semgrep_web_app/utilities/union_type_lookup.rb +34 -0
- data/lib/semgrep_web_app.rb +245 -0
- 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
|