google-cloud-container_analysis-v1 0.4.7 → 0.5.0
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 +4 -4
- data/lib/google/cloud/container_analysis/v1/container_analysis/client.rb +8 -2
- data/lib/google/cloud/container_analysis/v1/version.rb +1 -1
- data/lib/google/cloud/container_analysis/v1.rb +2 -0
- data/lib/google/devtools/containeranalysis/v1/containeranalysis_pb.rb +0 -3
- data/proto_docs/google/iam/v1/iam_policy.rb +8 -1
- data/proto_docs/google/iam/v1/options.rb +14 -4
- data/proto_docs/google/iam/v1/policy.rb +208 -38
- metadata +6 -33
- data/proto_docs/google/protobuf/any.rb +0 -141
- data/proto_docs/google/protobuf/empty.rb +0 -36
- data/proto_docs/google/protobuf/timestamp.rb +0 -129
- data/proto_docs/google/rpc/status.rb +0 -46
- data/proto_docs/grafeas/v1/attestation.rb +0 -98
- data/proto_docs/grafeas/v1/build.rb +0 -64
- data/proto_docs/grafeas/v1/common.rb +0 -147
- data/proto_docs/grafeas/v1/compliance.rb +0 -98
- data/proto_docs/grafeas/v1/cvss.rb +0 -216
- data/proto_docs/grafeas/v1/deployment.rb +0 -74
- data/proto_docs/grafeas/v1/discovery.rb +0 -95
- data/proto_docs/grafeas/v1/dsse_attestation.rb +0 -59
- data/proto_docs/grafeas/v1/grafeas.rb +0 -419
- data/proto_docs/grafeas/v1/image.rb +0 -95
- data/proto_docs/grafeas/v1/intoto_provenance.rb +0 -134
- data/proto_docs/grafeas/v1/intoto_statement.rb +0 -65
- data/proto_docs/grafeas/v1/package.rb +0 -152
- data/proto_docs/grafeas/v1/provenance.rb +0 -318
- data/proto_docs/grafeas/v1/slsa_provenance.rb +0 -152
- data/proto_docs/grafeas/v1/upgrade.rb +0 -148
- data/proto_docs/grafeas/v1/vulnerability.rb +0 -249
@@ -1,216 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright 2020 Google LLC
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
18
|
-
|
19
|
-
|
20
|
-
module Grafeas
|
21
|
-
module V1
|
22
|
-
# Common Vulnerability Scoring System version 3.
|
23
|
-
# For details, see https://www.first.org/cvss/specification-document
|
24
|
-
# @!attribute [rw] base_score
|
25
|
-
# @return [::Float]
|
26
|
-
# The base score is a function of the base metric scores.
|
27
|
-
# @!attribute [rw] exploitability_score
|
28
|
-
# @return [::Float]
|
29
|
-
# @!attribute [rw] impact_score
|
30
|
-
# @return [::Float]
|
31
|
-
# @!attribute [rw] attack_vector
|
32
|
-
# @return [::Grafeas::V1::CVSSv3::AttackVector]
|
33
|
-
# Base Metrics
|
34
|
-
# Represents the intrinsic characteristics of a vulnerability that are
|
35
|
-
# constant over time and across user environments.
|
36
|
-
# @!attribute [rw] attack_complexity
|
37
|
-
# @return [::Grafeas::V1::CVSSv3::AttackComplexity]
|
38
|
-
# @!attribute [rw] privileges_required
|
39
|
-
# @return [::Grafeas::V1::CVSSv3::PrivilegesRequired]
|
40
|
-
# @!attribute [rw] user_interaction
|
41
|
-
# @return [::Grafeas::V1::CVSSv3::UserInteraction]
|
42
|
-
# @!attribute [rw] scope
|
43
|
-
# @return [::Grafeas::V1::CVSSv3::Scope]
|
44
|
-
# @!attribute [rw] confidentiality_impact
|
45
|
-
# @return [::Grafeas::V1::CVSSv3::Impact]
|
46
|
-
# @!attribute [rw] integrity_impact
|
47
|
-
# @return [::Grafeas::V1::CVSSv3::Impact]
|
48
|
-
# @!attribute [rw] availability_impact
|
49
|
-
# @return [::Grafeas::V1::CVSSv3::Impact]
|
50
|
-
class CVSSv3
|
51
|
-
include ::Google::Protobuf::MessageExts
|
52
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
53
|
-
|
54
|
-
module AttackVector
|
55
|
-
ATTACK_VECTOR_UNSPECIFIED = 0
|
56
|
-
|
57
|
-
ATTACK_VECTOR_NETWORK = 1
|
58
|
-
|
59
|
-
ATTACK_VECTOR_ADJACENT = 2
|
60
|
-
|
61
|
-
ATTACK_VECTOR_LOCAL = 3
|
62
|
-
|
63
|
-
ATTACK_VECTOR_PHYSICAL = 4
|
64
|
-
end
|
65
|
-
|
66
|
-
module AttackComplexity
|
67
|
-
ATTACK_COMPLEXITY_UNSPECIFIED = 0
|
68
|
-
|
69
|
-
ATTACK_COMPLEXITY_LOW = 1
|
70
|
-
|
71
|
-
ATTACK_COMPLEXITY_HIGH = 2
|
72
|
-
end
|
73
|
-
|
74
|
-
module PrivilegesRequired
|
75
|
-
PRIVILEGES_REQUIRED_UNSPECIFIED = 0
|
76
|
-
|
77
|
-
PRIVILEGES_REQUIRED_NONE = 1
|
78
|
-
|
79
|
-
PRIVILEGES_REQUIRED_LOW = 2
|
80
|
-
|
81
|
-
PRIVILEGES_REQUIRED_HIGH = 3
|
82
|
-
end
|
83
|
-
|
84
|
-
module UserInteraction
|
85
|
-
USER_INTERACTION_UNSPECIFIED = 0
|
86
|
-
|
87
|
-
USER_INTERACTION_NONE = 1
|
88
|
-
|
89
|
-
USER_INTERACTION_REQUIRED = 2
|
90
|
-
end
|
91
|
-
|
92
|
-
module Scope
|
93
|
-
SCOPE_UNSPECIFIED = 0
|
94
|
-
|
95
|
-
SCOPE_UNCHANGED = 1
|
96
|
-
|
97
|
-
SCOPE_CHANGED = 2
|
98
|
-
end
|
99
|
-
|
100
|
-
module Impact
|
101
|
-
IMPACT_UNSPECIFIED = 0
|
102
|
-
|
103
|
-
IMPACT_HIGH = 1
|
104
|
-
|
105
|
-
IMPACT_LOW = 2
|
106
|
-
|
107
|
-
IMPACT_NONE = 3
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
# Common Vulnerability Scoring System.
|
112
|
-
# For details, see https://www.first.org/cvss/specification-document
|
113
|
-
# This is a message we will try to use for storing multiple versions of
|
114
|
-
# CVSS. The intention is that as new versions of CVSS scores get added, we
|
115
|
-
# will be able to modify this message rather than adding new protos for each
|
116
|
-
# new version of the score.
|
117
|
-
# @!attribute [rw] base_score
|
118
|
-
# @return [::Float]
|
119
|
-
# The base score is a function of the base metric scores.
|
120
|
-
# @!attribute [rw] exploitability_score
|
121
|
-
# @return [::Float]
|
122
|
-
# @!attribute [rw] impact_score
|
123
|
-
# @return [::Float]
|
124
|
-
# @!attribute [rw] attack_vector
|
125
|
-
# @return [::Grafeas::V1::CVSS::AttackVector]
|
126
|
-
# Base Metrics
|
127
|
-
# Represents the intrinsic characteristics of a vulnerability that are
|
128
|
-
# constant over time and across user environments.
|
129
|
-
# @!attribute [rw] attack_complexity
|
130
|
-
# @return [::Grafeas::V1::CVSS::AttackComplexity]
|
131
|
-
# @!attribute [rw] authentication
|
132
|
-
# @return [::Grafeas::V1::CVSS::Authentication]
|
133
|
-
# @!attribute [rw] privileges_required
|
134
|
-
# @return [::Grafeas::V1::CVSS::PrivilegesRequired]
|
135
|
-
# @!attribute [rw] user_interaction
|
136
|
-
# @return [::Grafeas::V1::CVSS::UserInteraction]
|
137
|
-
# @!attribute [rw] scope
|
138
|
-
# @return [::Grafeas::V1::CVSS::Scope]
|
139
|
-
# @!attribute [rw] confidentiality_impact
|
140
|
-
# @return [::Grafeas::V1::CVSS::Impact]
|
141
|
-
# @!attribute [rw] integrity_impact
|
142
|
-
# @return [::Grafeas::V1::CVSS::Impact]
|
143
|
-
# @!attribute [rw] availability_impact
|
144
|
-
# @return [::Grafeas::V1::CVSS::Impact]
|
145
|
-
class CVSS
|
146
|
-
include ::Google::Protobuf::MessageExts
|
147
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
148
|
-
|
149
|
-
module AttackVector
|
150
|
-
ATTACK_VECTOR_UNSPECIFIED = 0
|
151
|
-
|
152
|
-
ATTACK_VECTOR_NETWORK = 1
|
153
|
-
|
154
|
-
ATTACK_VECTOR_ADJACENT = 2
|
155
|
-
|
156
|
-
ATTACK_VECTOR_LOCAL = 3
|
157
|
-
|
158
|
-
ATTACK_VECTOR_PHYSICAL = 4
|
159
|
-
end
|
160
|
-
|
161
|
-
module AttackComplexity
|
162
|
-
ATTACK_COMPLEXITY_UNSPECIFIED = 0
|
163
|
-
|
164
|
-
ATTACK_COMPLEXITY_LOW = 1
|
165
|
-
|
166
|
-
ATTACK_COMPLEXITY_HIGH = 2
|
167
|
-
end
|
168
|
-
|
169
|
-
module Authentication
|
170
|
-
AUTHENTICATION_UNSPECIFIED = 0
|
171
|
-
|
172
|
-
AUTHENTICATION_MULTIPLE = 1
|
173
|
-
|
174
|
-
AUTHENTICATION_SINGLE = 2
|
175
|
-
|
176
|
-
AUTHENTICATION_NONE = 3
|
177
|
-
end
|
178
|
-
|
179
|
-
module PrivilegesRequired
|
180
|
-
PRIVILEGES_REQUIRED_UNSPECIFIED = 0
|
181
|
-
|
182
|
-
PRIVILEGES_REQUIRED_NONE = 1
|
183
|
-
|
184
|
-
PRIVILEGES_REQUIRED_LOW = 2
|
185
|
-
|
186
|
-
PRIVILEGES_REQUIRED_HIGH = 3
|
187
|
-
end
|
188
|
-
|
189
|
-
module UserInteraction
|
190
|
-
USER_INTERACTION_UNSPECIFIED = 0
|
191
|
-
|
192
|
-
USER_INTERACTION_NONE = 1
|
193
|
-
|
194
|
-
USER_INTERACTION_REQUIRED = 2
|
195
|
-
end
|
196
|
-
|
197
|
-
module Scope
|
198
|
-
SCOPE_UNSPECIFIED = 0
|
199
|
-
|
200
|
-
SCOPE_UNCHANGED = 1
|
201
|
-
|
202
|
-
SCOPE_CHANGED = 2
|
203
|
-
end
|
204
|
-
|
205
|
-
module Impact
|
206
|
-
IMPACT_UNSPECIFIED = 0
|
207
|
-
|
208
|
-
IMPACT_HIGH = 1
|
209
|
-
|
210
|
-
IMPACT_LOW = 2
|
211
|
-
|
212
|
-
IMPACT_NONE = 3
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|
216
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright 2022 Google LLC
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
18
|
-
|
19
|
-
|
20
|
-
module Grafeas
|
21
|
-
module V1
|
22
|
-
# An artifact that can be deployed in some runtime.
|
23
|
-
# @!attribute [rw] resource_uri
|
24
|
-
# @return [::Array<::String>]
|
25
|
-
# Required. Resource URI for the artifact being deployed.
|
26
|
-
class DeploymentNote
|
27
|
-
include ::Google::Protobuf::MessageExts
|
28
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
29
|
-
end
|
30
|
-
|
31
|
-
# The period during which some deployable was active in a runtime.
|
32
|
-
# @!attribute [rw] user_email
|
33
|
-
# @return [::String]
|
34
|
-
# Identity of the user that triggered this deployment.
|
35
|
-
# @!attribute [rw] deploy_time
|
36
|
-
# @return [::Google::Protobuf::Timestamp]
|
37
|
-
# Required. Beginning of the lifetime of this deployment.
|
38
|
-
# @!attribute [rw] undeploy_time
|
39
|
-
# @return [::Google::Protobuf::Timestamp]
|
40
|
-
# End of the lifetime of this deployment.
|
41
|
-
# @!attribute [rw] config
|
42
|
-
# @return [::String]
|
43
|
-
# Configuration used to create this deployment.
|
44
|
-
# @!attribute [rw] address
|
45
|
-
# @return [::String]
|
46
|
-
# Address of the runtime element hosting this deployment.
|
47
|
-
# @!attribute [rw] resource_uri
|
48
|
-
# @return [::Array<::String>]
|
49
|
-
# Output only. Resource URI for the artifact being deployed taken from
|
50
|
-
# the deployable field with the same name.
|
51
|
-
# @!attribute [rw] platform
|
52
|
-
# @return [::Grafeas::V1::DeploymentOccurrence::Platform]
|
53
|
-
# Platform hosting this deployment.
|
54
|
-
class DeploymentOccurrence
|
55
|
-
include ::Google::Protobuf::MessageExts
|
56
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
57
|
-
|
58
|
-
# Types of platforms.
|
59
|
-
module Platform
|
60
|
-
# Unknown.
|
61
|
-
PLATFORM_UNSPECIFIED = 0
|
62
|
-
|
63
|
-
# Google Container Engine.
|
64
|
-
GKE = 1
|
65
|
-
|
66
|
-
# Google App Engine: Flexible Environment.
|
67
|
-
FLEX = 2
|
68
|
-
|
69
|
-
# Custom user-defined platform.
|
70
|
-
CUSTOM = 3
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright 2022 Google LLC
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
18
|
-
|
19
|
-
|
20
|
-
module Grafeas
|
21
|
-
module V1
|
22
|
-
# A note that indicates a type of analysis a provider would perform. This note
|
23
|
-
# exists in a provider's project. A `Discovery` occurrence is created in a
|
24
|
-
# consumer's project at the start of analysis.
|
25
|
-
# @!attribute [rw] analysis_kind
|
26
|
-
# @return [::Grafeas::V1::NoteKind]
|
27
|
-
# Required. Immutable. The kind of analysis that is handled by this
|
28
|
-
# discovery.
|
29
|
-
class DiscoveryNote
|
30
|
-
include ::Google::Protobuf::MessageExts
|
31
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
32
|
-
end
|
33
|
-
|
34
|
-
# Provides information about the analysis status of a discovered resource.
|
35
|
-
# @!attribute [rw] continuous_analysis
|
36
|
-
# @return [::Grafeas::V1::DiscoveryOccurrence::ContinuousAnalysis]
|
37
|
-
# Whether the resource is continuously analyzed.
|
38
|
-
# @!attribute [rw] analysis_status
|
39
|
-
# @return [::Grafeas::V1::DiscoveryOccurrence::AnalysisStatus]
|
40
|
-
# The status of discovery for the resource.
|
41
|
-
# @!attribute [rw] analysis_status_error
|
42
|
-
# @return [::Google::Rpc::Status]
|
43
|
-
# When an error is encountered this will contain a LocalizedMessage under
|
44
|
-
# details to show to the user. The LocalizedMessage is output only and
|
45
|
-
# populated by the API.
|
46
|
-
# @!attribute [rw] cpe
|
47
|
-
# @return [::String]
|
48
|
-
# The CPE of the resource being scanned.
|
49
|
-
# @!attribute [rw] last_scan_time
|
50
|
-
# @return [::Google::Protobuf::Timestamp]
|
51
|
-
# The last time this resource was scanned.
|
52
|
-
# @!attribute [r] archive_time
|
53
|
-
# @return [::Google::Protobuf::Timestamp]
|
54
|
-
# The time occurrences related to this discovery occurrence were archived.
|
55
|
-
class DiscoveryOccurrence
|
56
|
-
include ::Google::Protobuf::MessageExts
|
57
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
58
|
-
|
59
|
-
# Whether the resource is continuously analyzed.
|
60
|
-
module ContinuousAnalysis
|
61
|
-
# Unknown.
|
62
|
-
CONTINUOUS_ANALYSIS_UNSPECIFIED = 0
|
63
|
-
|
64
|
-
# The resource is continuously analyzed.
|
65
|
-
ACTIVE = 1
|
66
|
-
|
67
|
-
# The resource is ignored for continuous analysis.
|
68
|
-
INACTIVE = 2
|
69
|
-
end
|
70
|
-
|
71
|
-
# Analysis status for a resource. Currently for initial analysis only (not
|
72
|
-
# updated in continuous analysis).
|
73
|
-
module AnalysisStatus
|
74
|
-
# Unknown.
|
75
|
-
ANALYSIS_STATUS_UNSPECIFIED = 0
|
76
|
-
|
77
|
-
# Resource is known but no action has been taken yet.
|
78
|
-
PENDING = 1
|
79
|
-
|
80
|
-
# Resource is being analyzed.
|
81
|
-
SCANNING = 2
|
82
|
-
|
83
|
-
# Analysis has finished successfully.
|
84
|
-
FINISHED_SUCCESS = 3
|
85
|
-
|
86
|
-
# Analysis has finished unsuccessfully, the analysis itself is in a bad
|
87
|
-
# state.
|
88
|
-
FINISHED_FAILED = 4
|
89
|
-
|
90
|
-
# The resource is known not to be supported
|
91
|
-
FINISHED_UNSUPPORTED = 5
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Copyright 2022 Google LLC
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
|
17
|
-
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
|
18
|
-
|
19
|
-
|
20
|
-
module Grafeas
|
21
|
-
module V1
|
22
|
-
# @!attribute [rw] hint
|
23
|
-
# @return [::Grafeas::V1::DSSEAttestationNote::DSSEHint]
|
24
|
-
# DSSEHint hints at the purpose of the attestation authority.
|
25
|
-
class DSSEAttestationNote
|
26
|
-
include ::Google::Protobuf::MessageExts
|
27
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
28
|
-
|
29
|
-
# This submessage provides human-readable hints about the purpose of the
|
30
|
-
# authority. Because the name of a note acts as its resource reference, it is
|
31
|
-
# important to disambiguate the canonical name of the Note (which might be a
|
32
|
-
# UUID for security purposes) from "readable" names more suitable for debug
|
33
|
-
# output. Note that these hints should not be used to look up authorities in
|
34
|
-
# security sensitive contexts, such as when looking up attestations to
|
35
|
-
# verify.
|
36
|
-
# @!attribute [rw] human_readable_name
|
37
|
-
# @return [::String]
|
38
|
-
# Required. The human readable name of this attestation authority, for
|
39
|
-
# example "cloudbuild-prod".
|
40
|
-
class DSSEHint
|
41
|
-
include ::Google::Protobuf::MessageExts
|
42
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Deprecated. Prefer to use a regular Occurrence, and populate the
|
47
|
-
# Envelope at the top level of the Occurrence.
|
48
|
-
# @!attribute [rw] envelope
|
49
|
-
# @return [::Grafeas::V1::Envelope]
|
50
|
-
# If doing something security critical, make sure to verify the signatures in
|
51
|
-
# this metadata.
|
52
|
-
# @!attribute [rw] statement
|
53
|
-
# @return [::Grafeas::V1::InTotoStatement]
|
54
|
-
class DSSEAttestationOccurrence
|
55
|
-
include ::Google::Protobuf::MessageExts
|
56
|
-
extend ::Google::Protobuf::MessageExts::ClassMethods
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|