google-api-client 0.27.2 → 0.27.3

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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  4. data/generated/google/apis/bigtableadmin_v2/classes.rb +45 -0
  5. data/generated/google/apis/bigtableadmin_v2/representations.rb +17 -0
  6. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  7. data/generated/google/apis/cloudkms_v1.rb +4 -1
  8. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  9. data/generated/google/apis/cloudtrace_v2/classes.rb +2 -2
  10. data/generated/google/apis/compute_alpha.rb +1 -1
  11. data/generated/google/apis/compute_alpha/classes.rb +1198 -13
  12. data/generated/google/apis/compute_alpha/representations.rb +406 -0
  13. data/generated/google/apis/compute_alpha/service.rb +200 -4
  14. data/generated/google/apis/compute_beta.rb +1 -1
  15. data/generated/google/apis/compute_beta/classes.rb +23 -9
  16. data/generated/google/apis/compute_beta/representations.rb +2 -0
  17. data/generated/google/apis/compute_beta/service.rb +41 -4
  18. data/generated/google/apis/compute_v1.rb +1 -1
  19. data/generated/google/apis/compute_v1/classes.rb +65 -6
  20. data/generated/google/apis/compute_v1/representations.rb +19 -0
  21. data/generated/google/apis/compute_v1/service.rb +4 -4
  22. data/generated/google/apis/container_v1.rb +1 -1
  23. data/generated/google/apis/container_v1/classes.rb +145 -0
  24. data/generated/google/apis/container_v1/representations.rb +54 -0
  25. data/generated/google/apis/container_v1/service.rb +69 -0
  26. data/generated/google/apis/container_v1beta1.rb +1 -1
  27. data/generated/google/apis/container_v1beta1/classes.rb +177 -0
  28. data/generated/google/apis/container_v1beta1/representations.rb +70 -0
  29. data/generated/google/apis/container_v1beta1/service.rb +69 -0
  30. data/generated/google/apis/containeranalysis_v1alpha1.rb +35 -0
  31. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +2780 -0
  32. data/generated/google/apis/containeranalysis_v1alpha1/representations.rb +1106 -0
  33. data/generated/google/apis/containeranalysis_v1alpha1/service.rb +1329 -0
  34. data/generated/google/apis/containeranalysis_v1beta1.rb +35 -0
  35. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +2702 -0
  36. data/generated/google/apis/containeranalysis_v1beta1/representations.rb +1152 -0
  37. data/generated/google/apis/containeranalysis_v1beta1/service.rb +932 -0
  38. data/generated/google/apis/content_v2.rb +1 -1
  39. data/generated/google/apis/content_v2/classes.rb +84 -14
  40. data/generated/google/apis/content_v2/representations.rb +24 -0
  41. data/generated/google/apis/content_v2_1.rb +1 -1
  42. data/generated/google/apis/content_v2_1/classes.rb +70 -11
  43. data/generated/google/apis/content_v2_1/representations.rb +25 -3
  44. data/generated/google/apis/dialogflow_v2.rb +1 -1
  45. data/generated/google/apis/dialogflow_v2/classes.rb +20 -20
  46. data/generated/google/apis/dialogflow_v2/service.rb +6 -6
  47. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  48. data/generated/google/apis/dialogflow_v2beta1/classes.rb +20 -20
  49. data/generated/google/apis/dialogflow_v2beta1/service.rb +6 -6
  50. data/generated/google/apis/dns_v1.rb +1 -1
  51. data/generated/google/apis/dns_v1/classes.rb +19 -10
  52. data/generated/google/apis/dns_v1beta2.rb +1 -1
  53. data/generated/google/apis/dns_v1beta2/classes.rb +31 -22
  54. data/generated/google/apis/dns_v2beta1.rb +1 -1
  55. data/generated/google/apis/dns_v2beta1/classes.rb +19 -10
  56. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  57. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +9 -2
  58. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +1 -0
  59. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  60. data/generated/google/apis/firebasedynamiclinks_v1/classes.rb +7 -0
  61. data/generated/google/apis/firebasedynamiclinks_v1/representations.rb +1 -0
  62. data/generated/google/apis/firestore_v1.rb +1 -1
  63. data/generated/google/apis/firestore_v1/classes.rb +18 -0
  64. data/generated/google/apis/firestore_v1/representations.rb +6 -0
  65. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  66. data/generated/google/apis/firestore_v1beta1/classes.rb +18 -0
  67. data/generated/google/apis/firestore_v1beta1/representations.rb +6 -0
  68. data/generated/google/apis/fitness_v1.rb +1 -1
  69. data/generated/google/apis/fitness_v1/classes.rb +2 -1
  70. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  71. data/generated/google/apis/jobs_v3p1beta1/classes.rb +169 -0
  72. data/generated/google/apis/jobs_v3p1beta1/representations.rb +33 -0
  73. data/generated/google/apis/jobs_v3p1beta1/service.rb +32 -0
  74. data/generated/google/apis/libraryagent_v1.rb +34 -0
  75. data/generated/google/apis/libraryagent_v1/classes.rb +151 -0
  76. data/generated/google/apis/libraryagent_v1/representations.rb +86 -0
  77. data/generated/google/apis/libraryagent_v1/service.rb +265 -0
  78. data/generated/google/apis/oslogin_v1.rb +2 -2
  79. data/generated/google/apis/oslogin_v1/service.rb +1 -1
  80. data/generated/google/apis/oslogin_v1alpha.rb +2 -2
  81. data/generated/google/apis/oslogin_v1alpha/service.rb +1 -1
  82. data/generated/google/apis/oslogin_v1beta.rb +2 -2
  83. data/generated/google/apis/oslogin_v1beta/service.rb +1 -1
  84. data/generated/google/apis/remotebuildexecution_v1.rb +34 -0
  85. data/generated/google/apis/remotebuildexecution_v1/classes.rb +3858 -0
  86. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1196 -0
  87. data/generated/google/apis/remotebuildexecution_v1/service.rb +374 -0
  88. data/generated/google/apis/remotebuildexecution_v1alpha.rb +34 -0
  89. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +3709 -0
  90. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1113 -0
  91. data/generated/google/apis/remotebuildexecution_v1alpha/service.rb +400 -0
  92. data/generated/google/apis/remotebuildexecution_v2.rb +34 -0
  93. data/generated/google/apis/remotebuildexecution_v2/classes.rb +4460 -0
  94. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1431 -0
  95. data/generated/google/apis/remotebuildexecution_v2/service.rb +542 -0
  96. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  97. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +12 -0
  98. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +2 -0
  99. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  100. data/generated/google/apis/servicenetworking_v1beta/classes.rb +12 -0
  101. data/generated/google/apis/servicenetworking_v1beta/representations.rb +2 -0
  102. data/generated/google/apis/serviceusage_v1.rb +1 -1
  103. data/generated/google/apis/serviceusage_v1/classes.rb +12 -0
  104. data/generated/google/apis/serviceusage_v1/representations.rb +2 -0
  105. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  106. data/generated/google/apis/serviceusage_v1beta1/classes.rb +12 -0
  107. data/generated/google/apis/serviceusage_v1beta1/representations.rb +2 -0
  108. data/generated/google/apis/sheets_v4.rb +1 -1
  109. data/generated/google/apis/sheets_v4/classes.rb +4 -4
  110. data/generated/google/apis/slides_v1.rb +1 -1
  111. data/generated/google/apis/slides_v1/classes.rb +5 -5
  112. data/generated/google/apis/speech_v1.rb +1 -1
  113. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  114. data/generated/google/apis/testing_v1.rb +1 -1
  115. data/generated/google/apis/testing_v1/classes.rb +9 -0
  116. data/generated/google/apis/testing_v1/representations.rb +1 -0
  117. data/generated/google/apis/websecurityscanner_v1alpha.rb +1 -1
  118. data/generated/google/apis/websecurityscanner_v1alpha/classes.rb +7 -0
  119. data/generated/google/apis/websecurityscanner_v1alpha/representations.rb +2 -0
  120. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  121. data/lib/google/apis/version.rb +1 -1
  122. metadata +26 -2
@@ -0,0 +1,35 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/containeranalysis_v1alpha1/service.rb'
16
+ require 'google/apis/containeranalysis_v1alpha1/classes.rb'
17
+ require 'google/apis/containeranalysis_v1alpha1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Container Analysis API
22
+ #
23
+ # An implementation of the Grafeas API, which stores, and enables querying and
24
+ # retrieval of critical metadata about all of your software artifacts.
25
+ #
26
+ # @see https://cloud.google.com/container-analysis/api/reference/rest/
27
+ module ContaineranalysisV1alpha1
28
+ VERSION = 'V1alpha1'
29
+ REVISION = '20181207'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,2780 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module ContaineranalysisV1alpha1
24
+
25
+ # Artifact describes a build product.
26
+ class Artifact
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Hash or checksum value of a binary, or Docker Registry 2.0 digest of a
30
+ # container.
31
+ # Corresponds to the JSON property `checksum`
32
+ # @return [String]
33
+ attr_accessor :checksum
34
+
35
+ # Artifact ID, if any; for container images, this will be a URL by digest
36
+ # like gcr.io/projectID/imagename@sha256:123456
37
+ # Corresponds to the JSON property `id`
38
+ # @return [String]
39
+ attr_accessor :id
40
+
41
+ # Name of the artifact. This may be the path to a binary or jar file, or in
42
+ # the case of a container build, the name used to push the container image to
43
+ # Google Container Registry, as presented to `docker push`.
44
+ # This field is deprecated in favor of the plural `names` field; it continues
45
+ # to exist here to allow existing BuildProvenance serialized to json in
46
+ # google.devtools.containeranalysis.v1alpha1.BuildDetails.provenance_bytes to
47
+ # deserialize back into proto.
48
+ # Corresponds to the JSON property `name`
49
+ # @return [String]
50
+ attr_accessor :name
51
+
52
+ # Related artifact names. This may be the path to a binary or jar file, or in
53
+ # the case of a container build, the name used to push the container image to
54
+ # Google Container Registry, as presented to `docker push`. Note that a
55
+ # single Artifact ID can have multiple names, for example if two tags are
56
+ # applied to one image.
57
+ # Corresponds to the JSON property `names`
58
+ # @return [Array<String>]
59
+ attr_accessor :names
60
+
61
+ def initialize(**args)
62
+ update!(**args)
63
+ end
64
+
65
+ # Update properties of this object
66
+ def update!(**args)
67
+ @checksum = args[:checksum] if args.key?(:checksum)
68
+ @id = args[:id] if args.key?(:id)
69
+ @name = args[:name] if args.key?(:name)
70
+ @names = args[:names] if args.key?(:names)
71
+ end
72
+ end
73
+
74
+ # Occurrence that represents a single "attestation". The authenticity of an
75
+ # Attestation can be verified using the attached signature. If the verifier
76
+ # trusts the public key of the signer, then verifying the signature is
77
+ # sufficient to establish trust. In this circumstance, the
78
+ # AttestationAuthority to which this Attestation is attached is primarily
79
+ # useful for look-up (how to find this Attestation if you already know the
80
+ # Authority and artifact to be verified) and intent (which authority was this
81
+ # attestation intended to sign for).
82
+ class Attestation
83
+ include Google::Apis::Core::Hashable
84
+
85
+ # An attestation wrapper with a PGP-compatible signature.
86
+ # This message only supports `ATTACHED` signatures, where the payload that is
87
+ # signed is included alongside the signature itself in the same file.
88
+ # Corresponds to the JSON property `pgpSignedAttestation`
89
+ # @return [Google::Apis::ContaineranalysisV1alpha1::PgpSignedAttestation]
90
+ attr_accessor :pgp_signed_attestation
91
+
92
+ def initialize(**args)
93
+ update!(**args)
94
+ end
95
+
96
+ # Update properties of this object
97
+ def update!(**args)
98
+ @pgp_signed_attestation = args[:pgp_signed_attestation] if args.key?(:pgp_signed_attestation)
99
+ end
100
+ end
101
+
102
+ # Note kind that represents a logical attestation "role" or "authority". For
103
+ # example, an organization might have one `AttestationAuthority` for "QA" and
104
+ # one for "build". This Note is intended to act strictly as a grouping
105
+ # mechanism for the attached Occurrences (Attestations). This grouping
106
+ # mechanism also provides a security boundary, since IAM ACLs gate the ability
107
+ # for a principle to attach an Occurrence to a given Note. It also provides a
108
+ # single point of lookup to find all attached Attestation Occurrences, even if
109
+ # they don't all live in the same project.
110
+ class AttestationAuthority
111
+ include Google::Apis::Core::Hashable
112
+
113
+ # This submessage provides human-readable hints about the purpose of the
114
+ # AttestationAuthority. Because the name of a Note acts as its resource
115
+ # reference, it is important to disambiguate the canonical name of the Note
116
+ # (which might be a UUID for security purposes) from "readable" names more
117
+ # suitable for debug output. Note that these hints should NOT be used to
118
+ # look up AttestationAuthorities in security sensitive contexts, such as when
119
+ # looking up Attestations to verify.
120
+ # Corresponds to the JSON property `hint`
121
+ # @return [Google::Apis::ContaineranalysisV1alpha1::AttestationAuthorityHint]
122
+ attr_accessor :hint
123
+
124
+ def initialize(**args)
125
+ update!(**args)
126
+ end
127
+
128
+ # Update properties of this object
129
+ def update!(**args)
130
+ @hint = args[:hint] if args.key?(:hint)
131
+ end
132
+ end
133
+
134
+ # This submessage provides human-readable hints about the purpose of the
135
+ # AttestationAuthority. Because the name of a Note acts as its resource
136
+ # reference, it is important to disambiguate the canonical name of the Note
137
+ # (which might be a UUID for security purposes) from "readable" names more
138
+ # suitable for debug output. Note that these hints should NOT be used to
139
+ # look up AttestationAuthorities in security sensitive contexts, such as when
140
+ # looking up Attestations to verify.
141
+ class AttestationAuthorityHint
142
+ include Google::Apis::Core::Hashable
143
+
144
+ # The human readable name of this Attestation Authority, for example "qa".
145
+ # Corresponds to the JSON property `humanReadableName`
146
+ # @return [String]
147
+ attr_accessor :human_readable_name
148
+
149
+ def initialize(**args)
150
+ update!(**args)
151
+ end
152
+
153
+ # Update properties of this object
154
+ def update!(**args)
155
+ @human_readable_name = args[:human_readable_name] if args.key?(:human_readable_name)
156
+ end
157
+ end
158
+
159
+ # Specifies the audit configuration for a service.
160
+ # The configuration determines which permission types are logged, and what
161
+ # identities, if any, are exempted from logging.
162
+ # An AuditConfig must have one or more AuditLogConfigs.
163
+ # If there are AuditConfigs for both `allServices` and a specific service,
164
+ # the union of the two AuditConfigs is used for that service: the log_types
165
+ # specified in each AuditConfig are enabled, and the exempted_members in each
166
+ # AuditLogConfig are exempted.
167
+ # Example Policy with multiple AuditConfigs:
168
+ # `
169
+ # "audit_configs": [
170
+ # `
171
+ # "service": "allServices"
172
+ # "audit_log_configs": [
173
+ # `
174
+ # "log_type": "DATA_READ",
175
+ # "exempted_members": [
176
+ # "user:foo@gmail.com"
177
+ # ]
178
+ # `,
179
+ # `
180
+ # "log_type": "DATA_WRITE",
181
+ # `,
182
+ # `
183
+ # "log_type": "ADMIN_READ",
184
+ # `
185
+ # ]
186
+ # `,
187
+ # `
188
+ # "service": "fooservice.googleapis.com"
189
+ # "audit_log_configs": [
190
+ # `
191
+ # "log_type": "DATA_READ",
192
+ # `,
193
+ # `
194
+ # "log_type": "DATA_WRITE",
195
+ # "exempted_members": [
196
+ # "user:bar@gmail.com"
197
+ # ]
198
+ # `
199
+ # ]
200
+ # `
201
+ # ]
202
+ # `
203
+ # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
204
+ # logging. It also exempts foo@gmail.com from DATA_READ logging, and
205
+ # bar@gmail.com from DATA_WRITE logging.
206
+ class AuditConfig
207
+ include Google::Apis::Core::Hashable
208
+
209
+ # The configuration for logging of each type of permission.
210
+ # Corresponds to the JSON property `auditLogConfigs`
211
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::AuditLogConfig>]
212
+ attr_accessor :audit_log_configs
213
+
214
+ # Specifies a service that will be enabled for audit logging.
215
+ # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
216
+ # `allServices` is a special value that covers all services.
217
+ # Corresponds to the JSON property `service`
218
+ # @return [String]
219
+ attr_accessor :service
220
+
221
+ def initialize(**args)
222
+ update!(**args)
223
+ end
224
+
225
+ # Update properties of this object
226
+ def update!(**args)
227
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
228
+ @service = args[:service] if args.key?(:service)
229
+ end
230
+ end
231
+
232
+ # Provides the configuration for logging a type of permissions.
233
+ # Example:
234
+ # `
235
+ # "audit_log_configs": [
236
+ # `
237
+ # "log_type": "DATA_READ",
238
+ # "exempted_members": [
239
+ # "user:foo@gmail.com"
240
+ # ]
241
+ # `,
242
+ # `
243
+ # "log_type": "DATA_WRITE",
244
+ # `
245
+ # ]
246
+ # `
247
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
248
+ # foo@gmail.com from DATA_READ logging.
249
+ class AuditLogConfig
250
+ include Google::Apis::Core::Hashable
251
+
252
+ # Specifies the identities that do not cause logging for this type of
253
+ # permission.
254
+ # Follows the same format of Binding.members.
255
+ # Corresponds to the JSON property `exemptedMembers`
256
+ # @return [Array<String>]
257
+ attr_accessor :exempted_members
258
+
259
+ # The log type that this config enables.
260
+ # Corresponds to the JSON property `logType`
261
+ # @return [String]
262
+ attr_accessor :log_type
263
+
264
+ def initialize(**args)
265
+ update!(**args)
266
+ end
267
+
268
+ # Update properties of this object
269
+ def update!(**args)
270
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
271
+ @log_type = args[:log_type] if args.key?(:log_type)
272
+ end
273
+ end
274
+
275
+ # Basis describes the base image portion (Note) of the DockerImage
276
+ # relationship. Linked occurrences are derived from this or an
277
+ # equivalent image via:
278
+ # FROM <Basis.resource_url>
279
+ # Or an equivalent reference, e.g. a tag of the resource_url.
280
+ class Basis
281
+ include Google::Apis::Core::Hashable
282
+
283
+ # A set of properties that uniquely identify a given Docker image.
284
+ # Corresponds to the JSON property `fingerprint`
285
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Fingerprint]
286
+ attr_accessor :fingerprint
287
+
288
+ # The resource_url for the resource representing the basis of
289
+ # associated occurrence images.
290
+ # Corresponds to the JSON property `resourceUrl`
291
+ # @return [String]
292
+ attr_accessor :resource_url
293
+
294
+ def initialize(**args)
295
+ update!(**args)
296
+ end
297
+
298
+ # Update properties of this object
299
+ def update!(**args)
300
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
301
+ @resource_url = args[:resource_url] if args.key?(:resource_url)
302
+ end
303
+ end
304
+
305
+ # Associates `members` with a `role`.
306
+ class Binding
307
+ include Google::Apis::Core::Hashable
308
+
309
+ # Represents an expression text. Example:
310
+ # title: "User account presence"
311
+ # description: "Determines whether the request has a user account"
312
+ # expression: "size(request.user) > 0"
313
+ # Corresponds to the JSON property `condition`
314
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Expr]
315
+ attr_accessor :condition
316
+
317
+ # Specifies the identities requesting access for a Cloud Platform resource.
318
+ # `members` can have the following values:
319
+ # * `allUsers`: A special identifier that represents anyone who is
320
+ # on the internet; with or without a Google account.
321
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
322
+ # who is authenticated with a Google account or a service account.
323
+ # * `user:`emailid``: An email address that represents a specific Google
324
+ # account. For example, `alice@gmail.com` .
325
+ # * `serviceAccount:`emailid``: An email address that represents a service
326
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
327
+ # * `group:`emailid``: An email address that represents a Google group.
328
+ # For example, `admins@example.com`.
329
+ # * `domain:`domain``: A Google Apps domain name that represents all the
330
+ # users of that domain. For example, `google.com` or `example.com`.
331
+ # Corresponds to the JSON property `members`
332
+ # @return [Array<String>]
333
+ attr_accessor :members
334
+
335
+ # Role that is assigned to `members`.
336
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
337
+ # Corresponds to the JSON property `role`
338
+ # @return [String]
339
+ attr_accessor :role
340
+
341
+ def initialize(**args)
342
+ update!(**args)
343
+ end
344
+
345
+ # Update properties of this object
346
+ def update!(**args)
347
+ @condition = args[:condition] if args.key?(:condition)
348
+ @members = args[:members] if args.key?(:members)
349
+ @role = args[:role] if args.key?(:role)
350
+ end
351
+ end
352
+
353
+ # Message encapsulating build provenance details.
354
+ class BuildDetails
355
+ include Google::Apis::Core::Hashable
356
+
357
+ # Provenance of a build. Contains all information needed to verify the full
358
+ # details about the build from source to completion.
359
+ # Corresponds to the JSON property `provenance`
360
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildProvenance]
361
+ attr_accessor :provenance
362
+
363
+ # Serialized JSON representation of the provenance, used in generating the
364
+ # `BuildSignature` in the corresponding Result. After verifying the
365
+ # signature, `provenance_bytes` can be unmarshalled and compared to the
366
+ # provenance to confirm that it is unchanged. A base64-encoded string
367
+ # representation of the provenance bytes is used for the signature in order
368
+ # to interoperate with openssl which expects this format for signature
369
+ # verification.
370
+ # The serialized form is captured both to avoid ambiguity in how the
371
+ # provenance is marshalled to json as well to prevent incompatibilities with
372
+ # future changes.
373
+ # Corresponds to the JSON property `provenanceBytes`
374
+ # @return [String]
375
+ attr_accessor :provenance_bytes
376
+
377
+ def initialize(**args)
378
+ update!(**args)
379
+ end
380
+
381
+ # Update properties of this object
382
+ def update!(**args)
383
+ @provenance = args[:provenance] if args.key?(:provenance)
384
+ @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes)
385
+ end
386
+ end
387
+
388
+ # Provenance of a build. Contains all information needed to verify the full
389
+ # details about the build from source to completion.
390
+ class BuildProvenance
391
+ include Google::Apis::Core::Hashable
392
+
393
+ # Special options applied to this build. This is a catch-all field where
394
+ # build providers can enter any desired additional details.
395
+ # Corresponds to the JSON property `buildOptions`
396
+ # @return [Hash<String,String>]
397
+ attr_accessor :build_options
398
+
399
+ # Version string of the builder at the time this build was executed.
400
+ # Corresponds to the JSON property `builderVersion`
401
+ # @return [String]
402
+ attr_accessor :builder_version
403
+
404
+ # Output of the build.
405
+ # Corresponds to the JSON property `builtArtifacts`
406
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Artifact>]
407
+ attr_accessor :built_artifacts
408
+
409
+ # Commands requested by the build.
410
+ # Corresponds to the JSON property `commands`
411
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Command>]
412
+ attr_accessor :commands
413
+
414
+ # Time at which the build was created.
415
+ # Corresponds to the JSON property `createTime`
416
+ # @return [String]
417
+ attr_accessor :create_time
418
+
419
+ # E-mail address of the user who initiated this build. Note that this was the
420
+ # user's e-mail address at the time the build was initiated; this address may
421
+ # not represent the same end-user for all time.
422
+ # Corresponds to the JSON property `creator`
423
+ # @return [String]
424
+ attr_accessor :creator
425
+
426
+ # Time at which execution of the build was finished.
427
+ # Corresponds to the JSON property `finishTime`
428
+ # @return [String]
429
+ attr_accessor :finish_time
430
+
431
+ # Unique identifier of the build.
432
+ # Corresponds to the JSON property `id`
433
+ # @return [String]
434
+ attr_accessor :id
435
+
436
+ # Google Cloud Storage bucket where logs were written.
437
+ # Corresponds to the JSON property `logsBucket`
438
+ # @return [String]
439
+ attr_accessor :logs_bucket
440
+
441
+ # ID of the project.
442
+ # Corresponds to the JSON property `projectId`
443
+ # @return [String]
444
+ attr_accessor :project_id
445
+
446
+ # Source describes the location of the source used for the build.
447
+ # Corresponds to the JSON property `sourceProvenance`
448
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Source]
449
+ attr_accessor :source_provenance
450
+
451
+ # Time at which execution of the build was started.
452
+ # Corresponds to the JSON property `startTime`
453
+ # @return [String]
454
+ attr_accessor :start_time
455
+
456
+ # Trigger identifier if the build was triggered automatically; empty if not.
457
+ # Corresponds to the JSON property `triggerId`
458
+ # @return [String]
459
+ attr_accessor :trigger_id
460
+
461
+ def initialize(**args)
462
+ update!(**args)
463
+ end
464
+
465
+ # Update properties of this object
466
+ def update!(**args)
467
+ @build_options = args[:build_options] if args.key?(:build_options)
468
+ @builder_version = args[:builder_version] if args.key?(:builder_version)
469
+ @built_artifacts = args[:built_artifacts] if args.key?(:built_artifacts)
470
+ @commands = args[:commands] if args.key?(:commands)
471
+ @create_time = args[:create_time] if args.key?(:create_time)
472
+ @creator = args[:creator] if args.key?(:creator)
473
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
474
+ @id = args[:id] if args.key?(:id)
475
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
476
+ @project_id = args[:project_id] if args.key?(:project_id)
477
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
478
+ @start_time = args[:start_time] if args.key?(:start_time)
479
+ @trigger_id = args[:trigger_id] if args.key?(:trigger_id)
480
+ end
481
+ end
482
+
483
+ # Message encapsulating the signature of the verified build.
484
+ class BuildSignature
485
+ include Google::Apis::Core::Hashable
486
+
487
+ # An Id for the key used to sign. This could be either an Id for the key
488
+ # stored in `public_key` (such as the Id or fingerprint for a PGP key, or the
489
+ # CN for a cert), or a reference to an external key (such as a reference to a
490
+ # key in Cloud Key Management Service).
491
+ # Corresponds to the JSON property `keyId`
492
+ # @return [String]
493
+ attr_accessor :key_id
494
+
495
+ # The type of the key, either stored in `public_key` or referenced in
496
+ # `key_id`
497
+ # Corresponds to the JSON property `keyType`
498
+ # @return [String]
499
+ attr_accessor :key_type
500
+
501
+ # Public key of the builder which can be used to verify that the related
502
+ # findings are valid and unchanged. If `key_type` is empty, this defaults
503
+ # to PEM encoded public keys.
504
+ # This field may be empty if `key_id` references an external key.
505
+ # For Cloud Build based signatures, this is a PEM encoded public
506
+ # key. To verify the Cloud Build signature, place the contents of
507
+ # this field into a file (public.pem). The signature field is base64-decoded
508
+ # into its binary representation in signature.bin, and the provenance bytes
509
+ # from `BuildDetails` are base64-decoded into a binary representation in
510
+ # signed.bin. OpenSSL can then verify the signature:
511
+ # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
512
+ # Corresponds to the JSON property `publicKey`
513
+ # @return [String]
514
+ attr_accessor :public_key
515
+
516
+ # Signature of the related `BuildProvenance`, encoded in a base64 string.
517
+ # Corresponds to the JSON property `signature`
518
+ # @return [String]
519
+ attr_accessor :signature
520
+
521
+ def initialize(**args)
522
+ update!(**args)
523
+ end
524
+
525
+ # Update properties of this object
526
+ def update!(**args)
527
+ @key_id = args[:key_id] if args.key?(:key_id)
528
+ @key_type = args[:key_type] if args.key?(:key_type)
529
+ @public_key = args[:public_key] if args.key?(:public_key)
530
+ @signature = args[:signature] if args.key?(:signature)
531
+ end
532
+ end
533
+
534
+ # Note holding the version of the provider's builder and the signature of
535
+ # the provenance message in linked BuildDetails.
536
+ class BuildType
537
+ include Google::Apis::Core::Hashable
538
+
539
+ # Version of the builder which produced this Note.
540
+ # Corresponds to the JSON property `builderVersion`
541
+ # @return [String]
542
+ attr_accessor :builder_version
543
+
544
+ # Message encapsulating the signature of the verified build.
545
+ # Corresponds to the JSON property `signature`
546
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
547
+ attr_accessor :signature
548
+
549
+ def initialize(**args)
550
+ update!(**args)
551
+ end
552
+
553
+ # Update properties of this object
554
+ def update!(**args)
555
+ @builder_version = args[:builder_version] if args.key?(:builder_version)
556
+ @signature = args[:signature] if args.key?(:signature)
557
+ end
558
+ end
559
+
560
+ # Command describes a step performed as part of the build pipeline.
561
+ class Command
562
+ include Google::Apis::Core::Hashable
563
+
564
+ # Command-line arguments used when executing this Command.
565
+ # Corresponds to the JSON property `args`
566
+ # @return [Array<String>]
567
+ attr_accessor :args
568
+
569
+ # Working directory (relative to project source root) used when running
570
+ # this Command.
571
+ # Corresponds to the JSON property `dir`
572
+ # @return [String]
573
+ attr_accessor :dir
574
+
575
+ # Environment variables set before running this Command.
576
+ # Corresponds to the JSON property `env`
577
+ # @return [Array<String>]
578
+ attr_accessor :env
579
+
580
+ # Optional unique identifier for this Command, used in wait_for to reference
581
+ # this Command as a dependency.
582
+ # Corresponds to the JSON property `id`
583
+ # @return [String]
584
+ attr_accessor :id
585
+
586
+ # Name of the command, as presented on the command line, or if the command is
587
+ # packaged as a Docker container, as presented to `docker pull`.
588
+ # Corresponds to the JSON property `name`
589
+ # @return [String]
590
+ attr_accessor :name
591
+
592
+ # The ID(s) of the Command(s) that this Command depends on.
593
+ # Corresponds to the JSON property `waitFor`
594
+ # @return [Array<String>]
595
+ attr_accessor :wait_for
596
+
597
+ def initialize(**args)
598
+ update!(**args)
599
+ end
600
+
601
+ # Update properties of this object
602
+ def update!(**args)
603
+ @args = args[:args] if args.key?(:args)
604
+ @dir = args[:dir] if args.key?(:dir)
605
+ @env = args[:env] if args.key?(:env)
606
+ @id = args[:id] if args.key?(:id)
607
+ @name = args[:name] if args.key?(:name)
608
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
609
+ end
610
+ end
611
+
612
+ # Request for creating an operation
613
+ class CreateOperationRequest
614
+ include Google::Apis::Core::Hashable
615
+
616
+ # This resource represents a long-running operation that is the result of a
617
+ # network API call.
618
+ # Corresponds to the JSON property `operation`
619
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Operation]
620
+ attr_accessor :operation
621
+
622
+ # The ID to use for this operation.
623
+ # Corresponds to the JSON property `operationId`
624
+ # @return [String]
625
+ attr_accessor :operation_id
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ @operation = args[:operation] if args.key?(:operation)
634
+ @operation_id = args[:operation_id] if args.key?(:operation_id)
635
+ end
636
+ end
637
+
638
+ # An artifact that can be deployed in some runtime.
639
+ class Deployable
640
+ include Google::Apis::Core::Hashable
641
+
642
+ # Resource URI for the artifact being deployed.
643
+ # Corresponds to the JSON property `resourceUri`
644
+ # @return [Array<String>]
645
+ attr_accessor :resource_uri
646
+
647
+ def initialize(**args)
648
+ update!(**args)
649
+ end
650
+
651
+ # Update properties of this object
652
+ def update!(**args)
653
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
654
+ end
655
+ end
656
+
657
+ # The period during which some deployable was active in a runtime.
658
+ class Deployment
659
+ include Google::Apis::Core::Hashable
660
+
661
+ # Address of the runtime element hosting this deployment.
662
+ # Corresponds to the JSON property `address`
663
+ # @return [String]
664
+ attr_accessor :address
665
+
666
+ # Configuration used to create this deployment.
667
+ # Corresponds to the JSON property `config`
668
+ # @return [String]
669
+ attr_accessor :config
670
+
671
+ # Beginning of the lifetime of this deployment.
672
+ # Corresponds to the JSON property `deployTime`
673
+ # @return [String]
674
+ attr_accessor :deploy_time
675
+
676
+ # Platform hosting this deployment.
677
+ # Corresponds to the JSON property `platform`
678
+ # @return [String]
679
+ attr_accessor :platform
680
+
681
+ # Output only. Resource URI for the artifact being deployed taken from the
682
+ # deployable field with the same name.
683
+ # Corresponds to the JSON property `resourceUri`
684
+ # @return [Array<String>]
685
+ attr_accessor :resource_uri
686
+
687
+ # End of the lifetime of this deployment.
688
+ # Corresponds to the JSON property `undeployTime`
689
+ # @return [String]
690
+ attr_accessor :undeploy_time
691
+
692
+ # Identity of the user that triggered this deployment.
693
+ # Corresponds to the JSON property `userEmail`
694
+ # @return [String]
695
+ attr_accessor :user_email
696
+
697
+ def initialize(**args)
698
+ update!(**args)
699
+ end
700
+
701
+ # Update properties of this object
702
+ def update!(**args)
703
+ @address = args[:address] if args.key?(:address)
704
+ @config = args[:config] if args.key?(:config)
705
+ @deploy_time = args[:deploy_time] if args.key?(:deploy_time)
706
+ @platform = args[:platform] if args.key?(:platform)
707
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
708
+ @undeploy_time = args[:undeploy_time] if args.key?(:undeploy_time)
709
+ @user_email = args[:user_email] if args.key?(:user_email)
710
+ end
711
+ end
712
+
713
+ # Derived describes the derived image portion (Occurrence) of the
714
+ # DockerImage relationship. This image would be produced from a Dockerfile
715
+ # with FROM <DockerImage.Basis in attached Note>.
716
+ class Derived
717
+ include Google::Apis::Core::Hashable
718
+
719
+ # Output only. This contains the base image URL for the derived image
720
+ # occurrence.
721
+ # Corresponds to the JSON property `baseResourceUrl`
722
+ # @return [String]
723
+ attr_accessor :base_resource_url
724
+
725
+ # Output only. The number of layers by which this image differs from the
726
+ # associated image basis.
727
+ # Corresponds to the JSON property `distance`
728
+ # @return [Fixnum]
729
+ attr_accessor :distance
730
+
731
+ # A set of properties that uniquely identify a given Docker image.
732
+ # Corresponds to the JSON property `fingerprint`
733
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Fingerprint]
734
+ attr_accessor :fingerprint
735
+
736
+ # This contains layer-specific metadata, if populated it has length
737
+ # "distance" and is ordered with [distance] being the layer immediately
738
+ # following the base image and [1] being the final layer.
739
+ # Corresponds to the JSON property `layerInfo`
740
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Layer>]
741
+ attr_accessor :layer_info
742
+
743
+ def initialize(**args)
744
+ update!(**args)
745
+ end
746
+
747
+ # Update properties of this object
748
+ def update!(**args)
749
+ @base_resource_url = args[:base_resource_url] if args.key?(:base_resource_url)
750
+ @distance = args[:distance] if args.key?(:distance)
751
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
752
+ @layer_info = args[:layer_info] if args.key?(:layer_info)
753
+ end
754
+ end
755
+
756
+ # Identifies all occurrences of this vulnerability in the package for a
757
+ # specific distro/location
758
+ # For example: glibc in cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
759
+ class Detail
760
+ include Google::Apis::Core::Hashable
761
+
762
+ # The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in
763
+ # which the vulnerability manifests. Examples include distro or storage
764
+ # location for vulnerable jar.
765
+ # This field can be used as a filter in list requests.
766
+ # Corresponds to the JSON property `cpeUri`
767
+ # @return [String]
768
+ attr_accessor :cpe_uri
769
+
770
+ # A vendor-specific description of this note.
771
+ # Corresponds to the JSON property `description`
772
+ # @return [String]
773
+ attr_accessor :description
774
+
775
+ # The location of the vulnerability
776
+ # Corresponds to the JSON property `fixedLocation`
777
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
778
+ attr_accessor :fixed_location
779
+
780
+ # Whether this Detail is obsolete. Occurrences are expected not to point to
781
+ # obsolete details.
782
+ # Corresponds to the JSON property `isObsolete`
783
+ # @return [Boolean]
784
+ attr_accessor :is_obsolete
785
+ alias_method :is_obsolete?, :is_obsolete
786
+
787
+ # Version contains structured information about the version of the package.
788
+ # For a discussion of this in Debian/Ubuntu:
789
+ # http://serverfault.com/questions/604541/debian-packages-version-convention
790
+ # For a discussion of this in Redhat/Fedora/Centos:
791
+ # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
792
+ # Corresponds to the JSON property `maxAffectedVersion`
793
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
794
+ attr_accessor :max_affected_version
795
+
796
+ # Version contains structured information about the version of the package.
797
+ # For a discussion of this in Debian/Ubuntu:
798
+ # http://serverfault.com/questions/604541/debian-packages-version-convention
799
+ # For a discussion of this in Redhat/Fedora/Centos:
800
+ # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
801
+ # Corresponds to the JSON property `minAffectedVersion`
802
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
803
+ attr_accessor :min_affected_version
804
+
805
+ # The name of the package where the vulnerability was found.
806
+ # This field can be used as a filter in list requests.
807
+ # Corresponds to the JSON property `package`
808
+ # @return [String]
809
+ attr_accessor :package
810
+
811
+ # The type of package; whether native or non native(ruby gems,
812
+ # node.js packages etc)
813
+ # Corresponds to the JSON property `packageType`
814
+ # @return [String]
815
+ attr_accessor :package_type
816
+
817
+ # The severity (eg: distro assigned severity) for this vulnerability.
818
+ # Corresponds to the JSON property `severityName`
819
+ # @return [String]
820
+ attr_accessor :severity_name
821
+
822
+ def initialize(**args)
823
+ update!(**args)
824
+ end
825
+
826
+ # Update properties of this object
827
+ def update!(**args)
828
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
829
+ @description = args[:description] if args.key?(:description)
830
+ @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
831
+ @is_obsolete = args[:is_obsolete] if args.key?(:is_obsolete)
832
+ @max_affected_version = args[:max_affected_version] if args.key?(:max_affected_version)
833
+ @min_affected_version = args[:min_affected_version] if args.key?(:min_affected_version)
834
+ @package = args[:package] if args.key?(:package)
835
+ @package_type = args[:package_type] if args.key?(:package_type)
836
+ @severity_name = args[:severity_name] if args.key?(:severity_name)
837
+ end
838
+ end
839
+
840
+ # Provides information about the scan status of a discovered resource.
841
+ class Discovered
842
+ include Google::Apis::Core::Hashable
843
+
844
+ # The status of discovery for the resource.
845
+ # Corresponds to the JSON property `analysisStatus`
846
+ # @return [String]
847
+ attr_accessor :analysis_status
848
+
849
+ # The `Status` type defines a logical error model that is suitable for different
850
+ # programming environments, including REST APIs and RPC APIs. It is used by
851
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
852
+ # - Simple to use and understand for most users
853
+ # - Flexible enough to meet unexpected needs
854
+ # # Overview
855
+ # The `Status` message contains three pieces of data: error code, error message,
856
+ # and error details. The error code should be an enum value of
857
+ # google.rpc.Code, but it may accept additional error codes if needed. The
858
+ # error message should be a developer-facing English message that helps
859
+ # developers *understand* and *resolve* the error. If a localized user-facing
860
+ # error message is needed, put the localized message in the error details or
861
+ # localize it in the client. The optional error details may contain arbitrary
862
+ # information about the error. There is a predefined set of error detail types
863
+ # in the package `google.rpc` that can be used for common error conditions.
864
+ # # Language mapping
865
+ # The `Status` message is the logical representation of the error model, but it
866
+ # is not necessarily the actual wire format. When the `Status` message is
867
+ # exposed in different client libraries and different wire protocols, it can be
868
+ # mapped differently. For example, it will likely be mapped to some exceptions
869
+ # in Java, but more likely mapped to some error codes in C.
870
+ # # Other uses
871
+ # The error model and the `Status` message can be used in a variety of
872
+ # environments, either with or without APIs, to provide a
873
+ # consistent developer experience across different environments.
874
+ # Example uses of this error model include:
875
+ # - Partial errors. If a service needs to return partial errors to the client,
876
+ # it may embed the `Status` in the normal response to indicate the partial
877
+ # errors.
878
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
879
+ # have a `Status` message for error reporting.
880
+ # - Batch operations. If a client uses batch request and batch response, the
881
+ # `Status` message should be used directly inside batch response, one for
882
+ # each error sub-response.
883
+ # - Asynchronous operations. If an API call embeds asynchronous operation
884
+ # results in its response, the status of those operations should be
885
+ # represented directly using the `Status` message.
886
+ # - Logging. If some API errors are stored in logs, the message `Status` could
887
+ # be used directly after any stripping needed for security/privacy reasons.
888
+ # Corresponds to the JSON property `analysisStatusError`
889
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Status]
890
+ attr_accessor :analysis_status_error
891
+
892
+ # Whether the resource is continuously analyzed.
893
+ # Corresponds to the JSON property `continuousAnalysis`
894
+ # @return [String]
895
+ attr_accessor :continuous_analysis
896
+
897
+ # This resource represents a long-running operation that is the result of a
898
+ # network API call.
899
+ # Corresponds to the JSON property `operation`
900
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Operation]
901
+ attr_accessor :operation
902
+
903
+ def initialize(**args)
904
+ update!(**args)
905
+ end
906
+
907
+ # Update properties of this object
908
+ def update!(**args)
909
+ @analysis_status = args[:analysis_status] if args.key?(:analysis_status)
910
+ @analysis_status_error = args[:analysis_status_error] if args.key?(:analysis_status_error)
911
+ @continuous_analysis = args[:continuous_analysis] if args.key?(:continuous_analysis)
912
+ @operation = args[:operation] if args.key?(:operation)
913
+ end
914
+ end
915
+
916
+ # A note that indicates a type of analysis a provider would perform. This note
917
+ # exists in a provider's project. A `Discovery` occurrence is created in a
918
+ # consumer's project at the start of analysis. The occurrence's operation will
919
+ # indicate the status of the analysis. Absence of an occurrence linked to this
920
+ # note for a resource indicates that analysis hasn't started.
921
+ class Discovery
922
+ include Google::Apis::Core::Hashable
923
+
924
+ # The kind of analysis that is handled by this discovery.
925
+ # Corresponds to the JSON property `analysisKind`
926
+ # @return [String]
927
+ attr_accessor :analysis_kind
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @analysis_kind = args[:analysis_kind] if args.key?(:analysis_kind)
936
+ end
937
+ end
938
+
939
+ # This represents a particular channel of distribution for a given package.
940
+ # e.g. Debian's jessie-backports dpkg mirror
941
+ class Distribution
942
+ include Google::Apis::Core::Hashable
943
+
944
+ # The CPU architecture for which packages in this distribution
945
+ # channel were built
946
+ # Corresponds to the JSON property `architecture`
947
+ # @return [String]
948
+ attr_accessor :architecture
949
+
950
+ # The cpe_uri in [cpe format](https://cpe.mitre.org/specification/)
951
+ # denoting the package manager version distributing a package.
952
+ # Corresponds to the JSON property `cpeUri`
953
+ # @return [String]
954
+ attr_accessor :cpe_uri
955
+
956
+ # The distribution channel-specific description of this package.
957
+ # Corresponds to the JSON property `description`
958
+ # @return [String]
959
+ attr_accessor :description
960
+
961
+ # Version contains structured information about the version of the package.
962
+ # For a discussion of this in Debian/Ubuntu:
963
+ # http://serverfault.com/questions/604541/debian-packages-version-convention
964
+ # For a discussion of this in Redhat/Fedora/Centos:
965
+ # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
966
+ # Corresponds to the JSON property `latestVersion`
967
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
968
+ attr_accessor :latest_version
969
+
970
+ # A freeform string denoting the maintainer of this package.
971
+ # Corresponds to the JSON property `maintainer`
972
+ # @return [String]
973
+ attr_accessor :maintainer
974
+
975
+ # The distribution channel-specific homepage for this package.
976
+ # Corresponds to the JSON property `url`
977
+ # @return [String]
978
+ attr_accessor :url
979
+
980
+ def initialize(**args)
981
+ update!(**args)
982
+ end
983
+
984
+ # Update properties of this object
985
+ def update!(**args)
986
+ @architecture = args[:architecture] if args.key?(:architecture)
987
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
988
+ @description = args[:description] if args.key?(:description)
989
+ @latest_version = args[:latest_version] if args.key?(:latest_version)
990
+ @maintainer = args[:maintainer] if args.key?(:maintainer)
991
+ @url = args[:url] if args.key?(:url)
992
+ end
993
+ end
994
+
995
+ # A generic empty message that you can re-use to avoid defining duplicated
996
+ # empty messages in your APIs. A typical example is to use it as the request
997
+ # or the response type of an API method. For instance:
998
+ # service Foo `
999
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
1000
+ # `
1001
+ # The JSON representation for `Empty` is empty JSON object ````.
1002
+ class Empty
1003
+ include Google::Apis::Core::Hashable
1004
+
1005
+ def initialize(**args)
1006
+ update!(**args)
1007
+ end
1008
+
1009
+ # Update properties of this object
1010
+ def update!(**args)
1011
+ end
1012
+ end
1013
+
1014
+ # Represents an expression text. Example:
1015
+ # title: "User account presence"
1016
+ # description: "Determines whether the request has a user account"
1017
+ # expression: "size(request.user) > 0"
1018
+ class Expr
1019
+ include Google::Apis::Core::Hashable
1020
+
1021
+ # An optional description of the expression. This is a longer text which
1022
+ # describes the expression, e.g. when hovered over it in a UI.
1023
+ # Corresponds to the JSON property `description`
1024
+ # @return [String]
1025
+ attr_accessor :description
1026
+
1027
+ # Textual representation of an expression in
1028
+ # Common Expression Language syntax.
1029
+ # The application context of the containing message determines which
1030
+ # well-known feature set of CEL is supported.
1031
+ # Corresponds to the JSON property `expression`
1032
+ # @return [String]
1033
+ attr_accessor :expression
1034
+
1035
+ # An optional string indicating the location of the expression for error
1036
+ # reporting, e.g. a file name and a position in the file.
1037
+ # Corresponds to the JSON property `location`
1038
+ # @return [String]
1039
+ attr_accessor :location
1040
+
1041
+ # An optional title for the expression, i.e. a short string describing
1042
+ # its purpose. This can be used e.g. in UIs which allow to enter the
1043
+ # expression.
1044
+ # Corresponds to the JSON property `title`
1045
+ # @return [String]
1046
+ attr_accessor :title
1047
+
1048
+ def initialize(**args)
1049
+ update!(**args)
1050
+ end
1051
+
1052
+ # Update properties of this object
1053
+ def update!(**args)
1054
+ @description = args[:description] if args.key?(:description)
1055
+ @expression = args[:expression] if args.key?(:expression)
1056
+ @location = args[:location] if args.key?(:location)
1057
+ @title = args[:title] if args.key?(:title)
1058
+ end
1059
+ end
1060
+
1061
+ # Container message for hashes of byte content of files, used in Source
1062
+ # messages to verify integrity of source input to the build.
1063
+ class FileHashes
1064
+ include Google::Apis::Core::Hashable
1065
+
1066
+ # Collection of file hashes.
1067
+ # Corresponds to the JSON property `fileHash`
1068
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::HashProp>]
1069
+ attr_accessor :file_hash
1070
+
1071
+ def initialize(**args)
1072
+ update!(**args)
1073
+ end
1074
+
1075
+ # Update properties of this object
1076
+ def update!(**args)
1077
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1078
+ end
1079
+ end
1080
+
1081
+ # A set of properties that uniquely identify a given Docker image.
1082
+ class Fingerprint
1083
+ include Google::Apis::Core::Hashable
1084
+
1085
+ # The layer-id of the final layer in the Docker image's v1
1086
+ # representation.
1087
+ # This field can be used as a filter in list requests.
1088
+ # Corresponds to the JSON property `v1Name`
1089
+ # @return [String]
1090
+ attr_accessor :v1_name
1091
+
1092
+ # The ordered list of v2 blobs that represent a given image.
1093
+ # Corresponds to the JSON property `v2Blob`
1094
+ # @return [Array<String>]
1095
+ attr_accessor :v2_blob
1096
+
1097
+ # Output only. The name of the image's v2 blobs computed via:
1098
+ # [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
1099
+ # Only the name of the final blob is kept.
1100
+ # This field can be used as a filter in list requests.
1101
+ # Corresponds to the JSON property `v2Name`
1102
+ # @return [String]
1103
+ attr_accessor :v2_name
1104
+
1105
+ def initialize(**args)
1106
+ update!(**args)
1107
+ end
1108
+
1109
+ # Update properties of this object
1110
+ def update!(**args)
1111
+ @v1_name = args[:v1_name] if args.key?(:v1_name)
1112
+ @v2_blob = args[:v2_blob] if args.key?(:v2_blob)
1113
+ @v2_name = args[:v2_name] if args.key?(:v2_name)
1114
+ end
1115
+ end
1116
+
1117
+ # Request message for `GetIamPolicy` method.
1118
+ class GetIamPolicyRequest
1119
+ include Google::Apis::Core::Hashable
1120
+
1121
+ def initialize(**args)
1122
+ update!(**args)
1123
+ end
1124
+
1125
+ # Update properties of this object
1126
+ def update!(**args)
1127
+ end
1128
+ end
1129
+
1130
+ # A summary of how many vulnz occurrences there are per severity type.
1131
+ # counts by groups, or if we should have different summary messages
1132
+ # like this.
1133
+ class GetVulnzOccurrencesSummaryResponse
1134
+ include Google::Apis::Core::Hashable
1135
+
1136
+ # A map of how many occurrences were found for each severity.
1137
+ # Corresponds to the JSON property `counts`
1138
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::SeverityCount>]
1139
+ attr_accessor :counts
1140
+
1141
+ def initialize(**args)
1142
+ update!(**args)
1143
+ end
1144
+
1145
+ # Update properties of this object
1146
+ def update!(**args)
1147
+ @counts = args[:counts] if args.key?(:counts)
1148
+ end
1149
+ end
1150
+
1151
+ # An alias to a repo revision.
1152
+ class GoogleDevtoolsContaineranalysisV1alpha1AliasContext
1153
+ include Google::Apis::Core::Hashable
1154
+
1155
+ # The alias kind.
1156
+ # Corresponds to the JSON property `kind`
1157
+ # @return [String]
1158
+ attr_accessor :kind
1159
+
1160
+ # The alias name.
1161
+ # Corresponds to the JSON property `name`
1162
+ # @return [String]
1163
+ attr_accessor :name
1164
+
1165
+ def initialize(**args)
1166
+ update!(**args)
1167
+ end
1168
+
1169
+ # Update properties of this object
1170
+ def update!(**args)
1171
+ @kind = args[:kind] if args.key?(:kind)
1172
+ @name = args[:name] if args.key?(:name)
1173
+ end
1174
+ end
1175
+
1176
+ # A CloudRepoSourceContext denotes a particular revision in a Google Cloud
1177
+ # Source Repo.
1178
+ class GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext
1179
+ include Google::Apis::Core::Hashable
1180
+
1181
+ # An alias to a repo revision.
1182
+ # Corresponds to the JSON property `aliasContext`
1183
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext]
1184
+ attr_accessor :alias_context
1185
+
1186
+ # A unique identifier for a Cloud Repo.
1187
+ # Corresponds to the JSON property `repoId`
1188
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1RepoId]
1189
+ attr_accessor :repo_id
1190
+
1191
+ # A revision ID.
1192
+ # Corresponds to the JSON property `revisionId`
1193
+ # @return [String]
1194
+ attr_accessor :revision_id
1195
+
1196
+ def initialize(**args)
1197
+ update!(**args)
1198
+ end
1199
+
1200
+ # Update properties of this object
1201
+ def update!(**args)
1202
+ @alias_context = args[:alias_context] if args.key?(:alias_context)
1203
+ @repo_id = args[:repo_id] if args.key?(:repo_id)
1204
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1205
+ end
1206
+ end
1207
+
1208
+ # A SourceContext referring to a Gerrit project.
1209
+ class GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext
1210
+ include Google::Apis::Core::Hashable
1211
+
1212
+ # An alias to a repo revision.
1213
+ # Corresponds to the JSON property `aliasContext`
1214
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1AliasContext]
1215
+ attr_accessor :alias_context
1216
+
1217
+ # The full project name within the host. Projects may be nested, so
1218
+ # "project/subproject" is a valid project name. The "repo name" is
1219
+ # the hostURI/project.
1220
+ # Corresponds to the JSON property `gerritProject`
1221
+ # @return [String]
1222
+ attr_accessor :gerrit_project
1223
+
1224
+ # The URI of a running Gerrit instance.
1225
+ # Corresponds to the JSON property `hostUri`
1226
+ # @return [String]
1227
+ attr_accessor :host_uri
1228
+
1229
+ # A revision (commit) ID.
1230
+ # Corresponds to the JSON property `revisionId`
1231
+ # @return [String]
1232
+ attr_accessor :revision_id
1233
+
1234
+ def initialize(**args)
1235
+ update!(**args)
1236
+ end
1237
+
1238
+ # Update properties of this object
1239
+ def update!(**args)
1240
+ @alias_context = args[:alias_context] if args.key?(:alias_context)
1241
+ @gerrit_project = args[:gerrit_project] if args.key?(:gerrit_project)
1242
+ @host_uri = args[:host_uri] if args.key?(:host_uri)
1243
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1244
+ end
1245
+ end
1246
+
1247
+ # A GitSourceContext denotes a particular revision in a third party Git
1248
+ # repository (e.g., GitHub).
1249
+ class GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext
1250
+ include Google::Apis::Core::Hashable
1251
+
1252
+ # Required.
1253
+ # Git commit hash.
1254
+ # Corresponds to the JSON property `revisionId`
1255
+ # @return [String]
1256
+ attr_accessor :revision_id
1257
+
1258
+ # Git repository URL.
1259
+ # Corresponds to the JSON property `url`
1260
+ # @return [String]
1261
+ attr_accessor :url
1262
+
1263
+ def initialize(**args)
1264
+ update!(**args)
1265
+ end
1266
+
1267
+ # Update properties of this object
1268
+ def update!(**args)
1269
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1270
+ @url = args[:url] if args.key?(:url)
1271
+ end
1272
+ end
1273
+
1274
+ # Metadata for all operations used and required for all operations
1275
+ # that created by Container Analysis Providers
1276
+ class GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata
1277
+ include Google::Apis::Core::Hashable
1278
+
1279
+ # Output only. The time this operation was created.
1280
+ # Corresponds to the JSON property `createTime`
1281
+ # @return [String]
1282
+ attr_accessor :create_time
1283
+
1284
+ # Output only. The time that this operation was marked completed or failed.
1285
+ # Corresponds to the JSON property `endTime`
1286
+ # @return [String]
1287
+ attr_accessor :end_time
1288
+
1289
+ def initialize(**args)
1290
+ update!(**args)
1291
+ end
1292
+
1293
+ # Update properties of this object
1294
+ def update!(**args)
1295
+ @create_time = args[:create_time] if args.key?(:create_time)
1296
+ @end_time = args[:end_time] if args.key?(:end_time)
1297
+ end
1298
+ end
1299
+
1300
+ # Selects a repo using a Google Cloud Platform project ID (e.g.,
1301
+ # winged-cargo-31) and a repo name within that project.
1302
+ class GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId
1303
+ include Google::Apis::Core::Hashable
1304
+
1305
+ # The ID of the project.
1306
+ # Corresponds to the JSON property `projectId`
1307
+ # @return [String]
1308
+ attr_accessor :project_id
1309
+
1310
+ # The name of the repo. Leave empty for the default repo.
1311
+ # Corresponds to the JSON property `repoName`
1312
+ # @return [String]
1313
+ attr_accessor :repo_name
1314
+
1315
+ def initialize(**args)
1316
+ update!(**args)
1317
+ end
1318
+
1319
+ # Update properties of this object
1320
+ def update!(**args)
1321
+ @project_id = args[:project_id] if args.key?(:project_id)
1322
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1323
+ end
1324
+ end
1325
+
1326
+ # A unique identifier for a Cloud Repo.
1327
+ class GoogleDevtoolsContaineranalysisV1alpha1RepoId
1328
+ include Google::Apis::Core::Hashable
1329
+
1330
+ # Selects a repo using a Google Cloud Platform project ID (e.g.,
1331
+ # winged-cargo-31) and a repo name within that project.
1332
+ # Corresponds to the JSON property `projectRepoId`
1333
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1ProjectRepoId]
1334
+ attr_accessor :project_repo_id
1335
+
1336
+ # A server-assigned, globally unique identifier.
1337
+ # Corresponds to the JSON property `uid`
1338
+ # @return [String]
1339
+ attr_accessor :uid
1340
+
1341
+ def initialize(**args)
1342
+ update!(**args)
1343
+ end
1344
+
1345
+ # Update properties of this object
1346
+ def update!(**args)
1347
+ @project_repo_id = args[:project_repo_id] if args.key?(:project_repo_id)
1348
+ @uid = args[:uid] if args.key?(:uid)
1349
+ end
1350
+ end
1351
+
1352
+ # A SourceContext is a reference to a tree of files. A SourceContext together
1353
+ # with a path point to a unique revision of a single file or directory.
1354
+ class GoogleDevtoolsContaineranalysisV1alpha1SourceContext
1355
+ include Google::Apis::Core::Hashable
1356
+
1357
+ # A CloudRepoSourceContext denotes a particular revision in a Google Cloud
1358
+ # Source Repo.
1359
+ # Corresponds to the JSON property `cloudRepo`
1360
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1CloudRepoSourceContext]
1361
+ attr_accessor :cloud_repo
1362
+
1363
+ # A SourceContext referring to a Gerrit project.
1364
+ # Corresponds to the JSON property `gerrit`
1365
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GerritSourceContext]
1366
+ attr_accessor :gerrit
1367
+
1368
+ # A GitSourceContext denotes a particular revision in a third party Git
1369
+ # repository (e.g., GitHub).
1370
+ # Corresponds to the JSON property `git`
1371
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1GitSourceContext]
1372
+ attr_accessor :git
1373
+
1374
+ # Labels with user defined metadata.
1375
+ # Corresponds to the JSON property `labels`
1376
+ # @return [Hash<String,String>]
1377
+ attr_accessor :labels
1378
+
1379
+ def initialize(**args)
1380
+ update!(**args)
1381
+ end
1382
+
1383
+ # Update properties of this object
1384
+ def update!(**args)
1385
+ @cloud_repo = args[:cloud_repo] if args.key?(:cloud_repo)
1386
+ @gerrit = args[:gerrit] if args.key?(:gerrit)
1387
+ @git = args[:git] if args.key?(:git)
1388
+ @labels = args[:labels] if args.key?(:labels)
1389
+ end
1390
+ end
1391
+
1392
+ # Container message for hash values.
1393
+ class HashProp
1394
+ include Google::Apis::Core::Hashable
1395
+
1396
+ # The type of hash that was performed.
1397
+ # Corresponds to the JSON property `type`
1398
+ # @return [String]
1399
+ attr_accessor :type
1400
+
1401
+ # The hash value.
1402
+ # Corresponds to the JSON property `value`
1403
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1404
+ # @return [String]
1405
+ attr_accessor :value
1406
+
1407
+ def initialize(**args)
1408
+ update!(**args)
1409
+ end
1410
+
1411
+ # Update properties of this object
1412
+ def update!(**args)
1413
+ @type = args[:type] if args.key?(:type)
1414
+ @value = args[:value] if args.key?(:value)
1415
+ end
1416
+ end
1417
+
1418
+ # This represents how a particular software package may be installed on
1419
+ # a system.
1420
+ class Installation
1421
+ include Google::Apis::Core::Hashable
1422
+
1423
+ # All of the places within the filesystem versions of this package
1424
+ # have been found.
1425
+ # Corresponds to the JSON property `location`
1426
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Location>]
1427
+ attr_accessor :location
1428
+
1429
+ # Output only. The name of the installed package.
1430
+ # Corresponds to the JSON property `name`
1431
+ # @return [String]
1432
+ attr_accessor :name
1433
+
1434
+ def initialize(**args)
1435
+ update!(**args)
1436
+ end
1437
+
1438
+ # Update properties of this object
1439
+ def update!(**args)
1440
+ @location = args[:location] if args.key?(:location)
1441
+ @name = args[:name] if args.key?(:name)
1442
+ end
1443
+ end
1444
+
1445
+ # Layer holds metadata specific to a layer of a Docker image.
1446
+ class Layer
1447
+ include Google::Apis::Core::Hashable
1448
+
1449
+ # The recovered arguments to the Dockerfile directive.
1450
+ # Corresponds to the JSON property `arguments`
1451
+ # @return [String]
1452
+ attr_accessor :arguments
1453
+
1454
+ # The recovered Dockerfile directive used to construct this layer.
1455
+ # Corresponds to the JSON property `directive`
1456
+ # @return [String]
1457
+ attr_accessor :directive
1458
+
1459
+ def initialize(**args)
1460
+ update!(**args)
1461
+ end
1462
+
1463
+ # Update properties of this object
1464
+ def update!(**args)
1465
+ @arguments = args[:arguments] if args.key?(:arguments)
1466
+ @directive = args[:directive] if args.key?(:directive)
1467
+ end
1468
+ end
1469
+
1470
+ # Response including listed occurrences for a note.
1471
+ class ListNoteOccurrencesResponse
1472
+ include Google::Apis::Core::Hashable
1473
+
1474
+ # Token to receive the next page of notes.
1475
+ # Corresponds to the JSON property `nextPageToken`
1476
+ # @return [String]
1477
+ attr_accessor :next_page_token
1478
+
1479
+ # The occurrences attached to the specified note.
1480
+ # Corresponds to the JSON property `occurrences`
1481
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Occurrence>]
1482
+ attr_accessor :occurrences
1483
+
1484
+ def initialize(**args)
1485
+ update!(**args)
1486
+ end
1487
+
1488
+ # Update properties of this object
1489
+ def update!(**args)
1490
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1491
+ @occurrences = args[:occurrences] if args.key?(:occurrences)
1492
+ end
1493
+ end
1494
+
1495
+ # Response including listed notes.
1496
+ class ListNotesResponse
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # The next pagination token in the list response. It should be used as
1500
+ # page_token for the following request. An empty value means no more result.
1501
+ # Corresponds to the JSON property `nextPageToken`
1502
+ # @return [String]
1503
+ attr_accessor :next_page_token
1504
+
1505
+ # The occurrences requested
1506
+ # Corresponds to the JSON property `notes`
1507
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Note>]
1508
+ attr_accessor :notes
1509
+
1510
+ def initialize(**args)
1511
+ update!(**args)
1512
+ end
1513
+
1514
+ # Update properties of this object
1515
+ def update!(**args)
1516
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1517
+ @notes = args[:notes] if args.key?(:notes)
1518
+ end
1519
+ end
1520
+
1521
+ # Response including listed active occurrences.
1522
+ class ListOccurrencesResponse
1523
+ include Google::Apis::Core::Hashable
1524
+
1525
+ # The next pagination token in the list response. It should be used as
1526
+ # `page_token` for the following request. An empty value means no more
1527
+ # results.
1528
+ # Corresponds to the JSON property `nextPageToken`
1529
+ # @return [String]
1530
+ attr_accessor :next_page_token
1531
+
1532
+ # The occurrences requested.
1533
+ # Corresponds to the JSON property `occurrences`
1534
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Occurrence>]
1535
+ attr_accessor :occurrences
1536
+
1537
+ def initialize(**args)
1538
+ update!(**args)
1539
+ end
1540
+
1541
+ # Update properties of this object
1542
+ def update!(**args)
1543
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1544
+ @occurrences = args[:occurrences] if args.key?(:occurrences)
1545
+ end
1546
+ end
1547
+
1548
+ # A list of scan configs for the project.
1549
+ class ListScanConfigsResponse
1550
+ include Google::Apis::Core::Hashable
1551
+
1552
+ # A page token to pass in order to get more scan configs.
1553
+ # Corresponds to the JSON property `nextPageToken`
1554
+ # @return [String]
1555
+ attr_accessor :next_page_token
1556
+
1557
+ # The set of scan configs.
1558
+ # Corresponds to the JSON property `scanConfigs`
1559
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ScanConfig>]
1560
+ attr_accessor :scan_configs
1561
+
1562
+ def initialize(**args)
1563
+ update!(**args)
1564
+ end
1565
+
1566
+ # Update properties of this object
1567
+ def update!(**args)
1568
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1569
+ @scan_configs = args[:scan_configs] if args.key?(:scan_configs)
1570
+ end
1571
+ end
1572
+
1573
+ # An occurrence of a particular package installation found within a
1574
+ # system's filesystem.
1575
+ # e.g. glibc was found in /var/lib/dpkg/status
1576
+ class Location
1577
+ include Google::Apis::Core::Hashable
1578
+
1579
+ # The cpe_uri in [cpe format](https://cpe.mitre.org/specification/)
1580
+ # denoting the package manager version distributing a package.
1581
+ # Corresponds to the JSON property `cpeUri`
1582
+ # @return [String]
1583
+ attr_accessor :cpe_uri
1584
+
1585
+ # The path from which we gathered that this package/version is installed.
1586
+ # Corresponds to the JSON property `path`
1587
+ # @return [String]
1588
+ attr_accessor :path
1589
+
1590
+ # Version contains structured information about the version of the package.
1591
+ # For a discussion of this in Debian/Ubuntu:
1592
+ # http://serverfault.com/questions/604541/debian-packages-version-convention
1593
+ # For a discussion of this in Redhat/Fedora/Centos:
1594
+ # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
1595
+ # Corresponds to the JSON property `version`
1596
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
1597
+ attr_accessor :version
1598
+
1599
+ def initialize(**args)
1600
+ update!(**args)
1601
+ end
1602
+
1603
+ # Update properties of this object
1604
+ def update!(**args)
1605
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
1606
+ @path = args[:path] if args.key?(:path)
1607
+ @version = args[:version] if args.key?(:version)
1608
+ end
1609
+ end
1610
+
1611
+ # Provides a detailed description of a `Note`.
1612
+ class Note
1613
+ include Google::Apis::Core::Hashable
1614
+
1615
+ # Note kind that represents a logical attestation "role" or "authority". For
1616
+ # example, an organization might have one `AttestationAuthority` for "QA" and
1617
+ # one for "build". This Note is intended to act strictly as a grouping
1618
+ # mechanism for the attached Occurrences (Attestations). This grouping
1619
+ # mechanism also provides a security boundary, since IAM ACLs gate the ability
1620
+ # for a principle to attach an Occurrence to a given Note. It also provides a
1621
+ # single point of lookup to find all attached Attestation Occurrences, even if
1622
+ # they don't all live in the same project.
1623
+ # Corresponds to the JSON property `attestationAuthority`
1624
+ # @return [Google::Apis::ContaineranalysisV1alpha1::AttestationAuthority]
1625
+ attr_accessor :attestation_authority
1626
+
1627
+ # Basis describes the base image portion (Note) of the DockerImage
1628
+ # relationship. Linked occurrences are derived from this or an
1629
+ # equivalent image via:
1630
+ # FROM <Basis.resource_url>
1631
+ # Or an equivalent reference, e.g. a tag of the resource_url.
1632
+ # Corresponds to the JSON property `baseImage`
1633
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Basis]
1634
+ attr_accessor :base_image
1635
+
1636
+ # Note holding the version of the provider's builder and the signature of
1637
+ # the provenance message in linked BuildDetails.
1638
+ # Corresponds to the JSON property `buildType`
1639
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildType]
1640
+ attr_accessor :build_type
1641
+
1642
+ # Output only. The time this note was created. This field can be used as a
1643
+ # filter in list requests.
1644
+ # Corresponds to the JSON property `createTime`
1645
+ # @return [String]
1646
+ attr_accessor :create_time
1647
+
1648
+ # An artifact that can be deployed in some runtime.
1649
+ # Corresponds to the JSON property `deployable`
1650
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Deployable]
1651
+ attr_accessor :deployable
1652
+
1653
+ # A note that indicates a type of analysis a provider would perform. This note
1654
+ # exists in a provider's project. A `Discovery` occurrence is created in a
1655
+ # consumer's project at the start of analysis. The occurrence's operation will
1656
+ # indicate the status of the analysis. Absence of an occurrence linked to this
1657
+ # note for a resource indicates that analysis hasn't started.
1658
+ # Corresponds to the JSON property `discovery`
1659
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Discovery]
1660
+ attr_accessor :discovery
1661
+
1662
+ # Time of expiration for this note, null if note does not expire.
1663
+ # Corresponds to the JSON property `expirationTime`
1664
+ # @return [String]
1665
+ attr_accessor :expiration_time
1666
+
1667
+ # Output only. This explicitly denotes which kind of note is specified. This
1668
+ # field can be used as a filter in list requests.
1669
+ # Corresponds to the JSON property `kind`
1670
+ # @return [String]
1671
+ attr_accessor :kind
1672
+
1673
+ # A detailed description of this `Note`.
1674
+ # Corresponds to the JSON property `longDescription`
1675
+ # @return [String]
1676
+ attr_accessor :long_description
1677
+
1678
+ # The name of the note in the form
1679
+ # "providers/`provider_id`/notes/`NOTE_ID`"
1680
+ # Corresponds to the JSON property `name`
1681
+ # @return [String]
1682
+ attr_accessor :name
1683
+
1684
+ # This represents a particular package that is distributed over
1685
+ # various channels.
1686
+ # e.g. glibc (aka libc6) is distributed by many, at various versions.
1687
+ # Corresponds to the JSON property `package`
1688
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Package]
1689
+ attr_accessor :package
1690
+
1691
+ # URLs associated with this note
1692
+ # Corresponds to the JSON property `relatedUrl`
1693
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::RelatedUrl>]
1694
+ attr_accessor :related_url
1695
+
1696
+ # A one sentence description of this `Note`.
1697
+ # Corresponds to the JSON property `shortDescription`
1698
+ # @return [String]
1699
+ attr_accessor :short_description
1700
+
1701
+ # Output only. The time this note was last updated. This field can be used as
1702
+ # a filter in list requests.
1703
+ # Corresponds to the JSON property `updateTime`
1704
+ # @return [String]
1705
+ attr_accessor :update_time
1706
+
1707
+ # VulnerabilityType provides metadata about a security vulnerability.
1708
+ # Corresponds to the JSON property `vulnerabilityType`
1709
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityType]
1710
+ attr_accessor :vulnerability_type
1711
+
1712
+ def initialize(**args)
1713
+ update!(**args)
1714
+ end
1715
+
1716
+ # Update properties of this object
1717
+ def update!(**args)
1718
+ @attestation_authority = args[:attestation_authority] if args.key?(:attestation_authority)
1719
+ @base_image = args[:base_image] if args.key?(:base_image)
1720
+ @build_type = args[:build_type] if args.key?(:build_type)
1721
+ @create_time = args[:create_time] if args.key?(:create_time)
1722
+ @deployable = args[:deployable] if args.key?(:deployable)
1723
+ @discovery = args[:discovery] if args.key?(:discovery)
1724
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
1725
+ @kind = args[:kind] if args.key?(:kind)
1726
+ @long_description = args[:long_description] if args.key?(:long_description)
1727
+ @name = args[:name] if args.key?(:name)
1728
+ @package = args[:package] if args.key?(:package)
1729
+ @related_url = args[:related_url] if args.key?(:related_url)
1730
+ @short_description = args[:short_description] if args.key?(:short_description)
1731
+ @update_time = args[:update_time] if args.key?(:update_time)
1732
+ @vulnerability_type = args[:vulnerability_type] if args.key?(:vulnerability_type)
1733
+ end
1734
+ end
1735
+
1736
+ # `Occurrence` includes information about analysis occurrences for an image.
1737
+ class Occurrence
1738
+ include Google::Apis::Core::Hashable
1739
+
1740
+ # Occurrence that represents a single "attestation". The authenticity of an
1741
+ # Attestation can be verified using the attached signature. If the verifier
1742
+ # trusts the public key of the signer, then verifying the signature is
1743
+ # sufficient to establish trust. In this circumstance, the
1744
+ # AttestationAuthority to which this Attestation is attached is primarily
1745
+ # useful for look-up (how to find this Attestation if you already know the
1746
+ # Authority and artifact to be verified) and intent (which authority was this
1747
+ # attestation intended to sign for).
1748
+ # Corresponds to the JSON property `attestation`
1749
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Attestation]
1750
+ attr_accessor :attestation
1751
+
1752
+ # Message encapsulating build provenance details.
1753
+ # Corresponds to the JSON property `buildDetails`
1754
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildDetails]
1755
+ attr_accessor :build_details
1756
+
1757
+ # Output only. The time this `Occurrence` was created.
1758
+ # Corresponds to the JSON property `createTime`
1759
+ # @return [String]
1760
+ attr_accessor :create_time
1761
+
1762
+ # The period during which some deployable was active in a runtime.
1763
+ # Corresponds to the JSON property `deployment`
1764
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Deployment]
1765
+ attr_accessor :deployment
1766
+
1767
+ # Derived describes the derived image portion (Occurrence) of the
1768
+ # DockerImage relationship. This image would be produced from a Dockerfile
1769
+ # with FROM <DockerImage.Basis in attached Note>.
1770
+ # Corresponds to the JSON property `derivedImage`
1771
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Derived]
1772
+ attr_accessor :derived_image
1773
+
1774
+ # Provides information about the scan status of a discovered resource.
1775
+ # Corresponds to the JSON property `discovered`
1776
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Discovered]
1777
+ attr_accessor :discovered
1778
+
1779
+ # This represents how a particular software package may be installed on
1780
+ # a system.
1781
+ # Corresponds to the JSON property `installation`
1782
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Installation]
1783
+ attr_accessor :installation
1784
+
1785
+ # Output only. This explicitly denotes which of the `Occurrence` details are
1786
+ # specified. This field can be used as a filter in list requests.
1787
+ # Corresponds to the JSON property `kind`
1788
+ # @return [String]
1789
+ attr_accessor :kind
1790
+
1791
+ # Output only. The name of the `Occurrence` in the form
1792
+ # "projects/`project_id`/occurrences/`OCCURRENCE_ID`"
1793
+ # Corresponds to the JSON property `name`
1794
+ # @return [String]
1795
+ attr_accessor :name
1796
+
1797
+ # An analysis note associated with this image, in the form
1798
+ # "providers/`provider_id`/notes/`NOTE_ID`"
1799
+ # This field can be used as a filter in list requests.
1800
+ # Corresponds to the JSON property `noteName`
1801
+ # @return [String]
1802
+ attr_accessor :note_name
1803
+
1804
+ # A description of actions that can be taken to remedy the `Note`
1805
+ # Corresponds to the JSON property `remediation`
1806
+ # @return [String]
1807
+ attr_accessor :remediation
1808
+
1809
+ # Resource is an entity that can have metadata. E.g., a Docker image.
1810
+ # Corresponds to the JSON property `resource`
1811
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Resource]
1812
+ attr_accessor :resource
1813
+
1814
+ # The unique URL of the image or the container for which the `Occurrence`
1815
+ # applies. For example, https://gcr.io/project/image@sha256:foo This field
1816
+ # can be used as a filter in list requests.
1817
+ # Corresponds to the JSON property `resourceUrl`
1818
+ # @return [String]
1819
+ attr_accessor :resource_url
1820
+
1821
+ # Output only. The time this `Occurrence` was last updated.
1822
+ # Corresponds to the JSON property `updateTime`
1823
+ # @return [String]
1824
+ attr_accessor :update_time
1825
+
1826
+ # Used by Occurrence to point to where the vulnerability exists and how
1827
+ # to fix it.
1828
+ # Corresponds to the JSON property `vulnerabilityDetails`
1829
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityDetails]
1830
+ attr_accessor :vulnerability_details
1831
+
1832
+ def initialize(**args)
1833
+ update!(**args)
1834
+ end
1835
+
1836
+ # Update properties of this object
1837
+ def update!(**args)
1838
+ @attestation = args[:attestation] if args.key?(:attestation)
1839
+ @build_details = args[:build_details] if args.key?(:build_details)
1840
+ @create_time = args[:create_time] if args.key?(:create_time)
1841
+ @deployment = args[:deployment] if args.key?(:deployment)
1842
+ @derived_image = args[:derived_image] if args.key?(:derived_image)
1843
+ @discovered = args[:discovered] if args.key?(:discovered)
1844
+ @installation = args[:installation] if args.key?(:installation)
1845
+ @kind = args[:kind] if args.key?(:kind)
1846
+ @name = args[:name] if args.key?(:name)
1847
+ @note_name = args[:note_name] if args.key?(:note_name)
1848
+ @remediation = args[:remediation] if args.key?(:remediation)
1849
+ @resource = args[:resource] if args.key?(:resource)
1850
+ @resource_url = args[:resource_url] if args.key?(:resource_url)
1851
+ @update_time = args[:update_time] if args.key?(:update_time)
1852
+ @vulnerability_details = args[:vulnerability_details] if args.key?(:vulnerability_details)
1853
+ end
1854
+ end
1855
+
1856
+ # This resource represents a long-running operation that is the result of a
1857
+ # network API call.
1858
+ class Operation
1859
+ include Google::Apis::Core::Hashable
1860
+
1861
+ # If the value is `false`, it means the operation is still in progress.
1862
+ # If `true`, the operation is completed, and either `error` or `response` is
1863
+ # available.
1864
+ # Corresponds to the JSON property `done`
1865
+ # @return [Boolean]
1866
+ attr_accessor :done
1867
+ alias_method :done?, :done
1868
+
1869
+ # The `Status` type defines a logical error model that is suitable for different
1870
+ # programming environments, including REST APIs and RPC APIs. It is used by
1871
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
1872
+ # - Simple to use and understand for most users
1873
+ # - Flexible enough to meet unexpected needs
1874
+ # # Overview
1875
+ # The `Status` message contains three pieces of data: error code, error message,
1876
+ # and error details. The error code should be an enum value of
1877
+ # google.rpc.Code, but it may accept additional error codes if needed. The
1878
+ # error message should be a developer-facing English message that helps
1879
+ # developers *understand* and *resolve* the error. If a localized user-facing
1880
+ # error message is needed, put the localized message in the error details or
1881
+ # localize it in the client. The optional error details may contain arbitrary
1882
+ # information about the error. There is a predefined set of error detail types
1883
+ # in the package `google.rpc` that can be used for common error conditions.
1884
+ # # Language mapping
1885
+ # The `Status` message is the logical representation of the error model, but it
1886
+ # is not necessarily the actual wire format. When the `Status` message is
1887
+ # exposed in different client libraries and different wire protocols, it can be
1888
+ # mapped differently. For example, it will likely be mapped to some exceptions
1889
+ # in Java, but more likely mapped to some error codes in C.
1890
+ # # Other uses
1891
+ # The error model and the `Status` message can be used in a variety of
1892
+ # environments, either with or without APIs, to provide a
1893
+ # consistent developer experience across different environments.
1894
+ # Example uses of this error model include:
1895
+ # - Partial errors. If a service needs to return partial errors to the client,
1896
+ # it may embed the `Status` in the normal response to indicate the partial
1897
+ # errors.
1898
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
1899
+ # have a `Status` message for error reporting.
1900
+ # - Batch operations. If a client uses batch request and batch response, the
1901
+ # `Status` message should be used directly inside batch response, one for
1902
+ # each error sub-response.
1903
+ # - Asynchronous operations. If an API call embeds asynchronous operation
1904
+ # results in its response, the status of those operations should be
1905
+ # represented directly using the `Status` message.
1906
+ # - Logging. If some API errors are stored in logs, the message `Status` could
1907
+ # be used directly after any stripping needed for security/privacy reasons.
1908
+ # Corresponds to the JSON property `error`
1909
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Status]
1910
+ attr_accessor :error
1911
+
1912
+ # Service-specific metadata associated with the operation. It typically
1913
+ # contains progress information and common metadata such as create time.
1914
+ # Some services might not provide such metadata. Any method that returns a
1915
+ # long-running operation should document the metadata type, if any.
1916
+ # Corresponds to the JSON property `metadata`
1917
+ # @return [Hash<String,Object>]
1918
+ attr_accessor :metadata
1919
+
1920
+ # The server-assigned name, which is only unique within the same service that
1921
+ # originally returns it. If you use the default HTTP mapping, the
1922
+ # `name` should have the format of `operations/some/unique/name`.
1923
+ # Corresponds to the JSON property `name`
1924
+ # @return [String]
1925
+ attr_accessor :name
1926
+
1927
+ # The normal response of the operation in case of success. If the original
1928
+ # method returns no data on success, such as `Delete`, the response is
1929
+ # `google.protobuf.Empty`. If the original method is standard
1930
+ # `Get`/`Create`/`Update`, the response should be the resource. For other
1931
+ # methods, the response should have the type `XxxResponse`, where `Xxx`
1932
+ # is the original method name. For example, if the original method name
1933
+ # is `TakeSnapshot()`, the inferred response type is
1934
+ # `TakeSnapshotResponse`.
1935
+ # Corresponds to the JSON property `response`
1936
+ # @return [Hash<String,Object>]
1937
+ attr_accessor :response
1938
+
1939
+ def initialize(**args)
1940
+ update!(**args)
1941
+ end
1942
+
1943
+ # Update properties of this object
1944
+ def update!(**args)
1945
+ @done = args[:done] if args.key?(:done)
1946
+ @error = args[:error] if args.key?(:error)
1947
+ @metadata = args[:metadata] if args.key?(:metadata)
1948
+ @name = args[:name] if args.key?(:name)
1949
+ @response = args[:response] if args.key?(:response)
1950
+ end
1951
+ end
1952
+
1953
+ # This represents a particular package that is distributed over
1954
+ # various channels.
1955
+ # e.g. glibc (aka libc6) is distributed by many, at various versions.
1956
+ class Package
1957
+ include Google::Apis::Core::Hashable
1958
+
1959
+ # The various channels by which a package is distributed.
1960
+ # Corresponds to the JSON property `distribution`
1961
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Distribution>]
1962
+ attr_accessor :distribution
1963
+
1964
+ # The name of the package.
1965
+ # Corresponds to the JSON property `name`
1966
+ # @return [String]
1967
+ attr_accessor :name
1968
+
1969
+ def initialize(**args)
1970
+ update!(**args)
1971
+ end
1972
+
1973
+ # Update properties of this object
1974
+ def update!(**args)
1975
+ @distribution = args[:distribution] if args.key?(:distribution)
1976
+ @name = args[:name] if args.key?(:name)
1977
+ end
1978
+ end
1979
+
1980
+ # This message wraps a location affected by a vulnerability and its
1981
+ # associated fix (if one is available).
1982
+ class PackageIssue
1983
+ include Google::Apis::Core::Hashable
1984
+
1985
+ # The location of the vulnerability
1986
+ # Corresponds to the JSON property `affectedLocation`
1987
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
1988
+ attr_accessor :affected_location
1989
+
1990
+ # The location of the vulnerability
1991
+ # Corresponds to the JSON property `fixedLocation`
1992
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
1993
+ attr_accessor :fixed_location
1994
+
1995
+ # The severity (eg: distro assigned severity) for this vulnerability.
1996
+ # Corresponds to the JSON property `severityName`
1997
+ # @return [String]
1998
+ attr_accessor :severity_name
1999
+
2000
+ def initialize(**args)
2001
+ update!(**args)
2002
+ end
2003
+
2004
+ # Update properties of this object
2005
+ def update!(**args)
2006
+ @affected_location = args[:affected_location] if args.key?(:affected_location)
2007
+ @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
2008
+ @severity_name = args[:severity_name] if args.key?(:severity_name)
2009
+ end
2010
+ end
2011
+
2012
+ # An attestation wrapper with a PGP-compatible signature.
2013
+ # This message only supports `ATTACHED` signatures, where the payload that is
2014
+ # signed is included alongside the signature itself in the same file.
2015
+ class PgpSignedAttestation
2016
+ include Google::Apis::Core::Hashable
2017
+
2018
+ # Type (for example schema) of the attestation payload that was signed.
2019
+ # The verifier must ensure that the provided type is one that the verifier
2020
+ # supports, and that the attestation payload is a valid instantiation of that
2021
+ # type (for example by validating a JSON schema).
2022
+ # Corresponds to the JSON property `contentType`
2023
+ # @return [String]
2024
+ attr_accessor :content_type
2025
+
2026
+ # The cryptographic fingerprint of the key used to generate the signature,
2027
+ # as output by, e.g. `gpg --list-keys`. This should be the version 4, full
2028
+ # 160-bit fingerprint, expressed as a 40 character hexadecimal string. See
2029
+ # https://tools.ietf.org/html/rfc4880#section-12.2 for details.
2030
+ # Implementations may choose to acknowledge "LONG", "SHORT", or other
2031
+ # abbreviated key IDs, but only the full fingerprint is guaranteed to work.
2032
+ # In gpg, the full fingerprint can be retrieved from the `fpr` field
2033
+ # returned when calling --list-keys with --with-colons. For example:
2034
+ # ```
2035
+ # gpg --with-colons --with-fingerprint --force-v4-certs \
2036
+ # --list-keys attester@example.com
2037
+ # tru::1:1513631572:0:3:1:5
2038
+ # pub:...<SNIP>...
2039
+ # fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB:
2040
+ # ```
2041
+ # Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`.
2042
+ # Corresponds to the JSON property `pgpKeyId`
2043
+ # @return [String]
2044
+ attr_accessor :pgp_key_id
2045
+
2046
+ # The raw content of the signature, as output by GNU Privacy Guard (GPG) or
2047
+ # equivalent. Since this message only supports attached signatures, the
2048
+ # payload that was signed must be attached. While the signature format
2049
+ # supported is dependent on the verification implementation, currently only
2050
+ # ASCII-armored (`--armor` to gpg), non-clearsigned (`--sign` rather than
2051
+ # `--clearsign` to gpg) are supported. Concretely, `gpg --sign --armor
2052
+ # --output=signature.gpg payload.json` will create the signature content
2053
+ # expected in this field in `signature.gpg` for the `payload.json`
2054
+ # attestation payload.
2055
+ # Corresponds to the JSON property `signature`
2056
+ # @return [String]
2057
+ attr_accessor :signature
2058
+
2059
+ def initialize(**args)
2060
+ update!(**args)
2061
+ end
2062
+
2063
+ # Update properties of this object
2064
+ def update!(**args)
2065
+ @content_type = args[:content_type] if args.key?(:content_type)
2066
+ @pgp_key_id = args[:pgp_key_id] if args.key?(:pgp_key_id)
2067
+ @signature = args[:signature] if args.key?(:signature)
2068
+ end
2069
+ end
2070
+
2071
+ # Defines an Identity and Access Management (IAM) policy. It is used to
2072
+ # specify access control policies for Cloud Platform resources.
2073
+ # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
2074
+ # `members` to a `role`, where the members can be user accounts, Google groups,
2075
+ # Google domains, and service accounts. A `role` is a named list of permissions
2076
+ # defined by IAM.
2077
+ # **JSON Example**
2078
+ # `
2079
+ # "bindings": [
2080
+ # `
2081
+ # "role": "roles/owner",
2082
+ # "members": [
2083
+ # "user:mike@example.com",
2084
+ # "group:admins@example.com",
2085
+ # "domain:google.com",
2086
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com"
2087
+ # ]
2088
+ # `,
2089
+ # `
2090
+ # "role": "roles/viewer",
2091
+ # "members": ["user:sean@example.com"]
2092
+ # `
2093
+ # ]
2094
+ # `
2095
+ # **YAML Example**
2096
+ # bindings:
2097
+ # - members:
2098
+ # - user:mike@example.com
2099
+ # - group:admins@example.com
2100
+ # - domain:google.com
2101
+ # - serviceAccount:my-other-app@appspot.gserviceaccount.com
2102
+ # role: roles/owner
2103
+ # - members:
2104
+ # - user:sean@example.com
2105
+ # role: roles/viewer
2106
+ # For a description of IAM and its features, see the
2107
+ # [IAM developer's guide](https://cloud.google.com/iam/docs).
2108
+ class Policy
2109
+ include Google::Apis::Core::Hashable
2110
+
2111
+ # Specifies cloud audit logging configuration for this policy.
2112
+ # Corresponds to the JSON property `auditConfigs`
2113
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::AuditConfig>]
2114
+ attr_accessor :audit_configs
2115
+
2116
+ # Associates a list of `members` to a `role`.
2117
+ # `bindings` with no members will result in an error.
2118
+ # Corresponds to the JSON property `bindings`
2119
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Binding>]
2120
+ attr_accessor :bindings
2121
+
2122
+ # `etag` is used for optimistic concurrency control as a way to help
2123
+ # prevent simultaneous updates of a policy from overwriting each other.
2124
+ # It is strongly suggested that systems make use of the `etag` in the
2125
+ # read-modify-write cycle to perform policy updates in order to avoid race
2126
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
2127
+ # systems are expected to put that etag in the request to `setIamPolicy` to
2128
+ # ensure that their change will be applied to the same version of the policy.
2129
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
2130
+ # policy is overwritten blindly.
2131
+ # Corresponds to the JSON property `etag`
2132
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2133
+ # @return [String]
2134
+ attr_accessor :etag
2135
+
2136
+ # Deprecated.
2137
+ # Corresponds to the JSON property `version`
2138
+ # @return [Fixnum]
2139
+ attr_accessor :version
2140
+
2141
+ def initialize(**args)
2142
+ update!(**args)
2143
+ end
2144
+
2145
+ # Update properties of this object
2146
+ def update!(**args)
2147
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
2148
+ @bindings = args[:bindings] if args.key?(:bindings)
2149
+ @etag = args[:etag] if args.key?(:etag)
2150
+ @version = args[:version] if args.key?(:version)
2151
+ end
2152
+ end
2153
+
2154
+ # Metadata for any related URL information
2155
+ class RelatedUrl
2156
+ include Google::Apis::Core::Hashable
2157
+
2158
+ # Label to describe usage of the URL
2159
+ # Corresponds to the JSON property `label`
2160
+ # @return [String]
2161
+ attr_accessor :label
2162
+
2163
+ # Specific URL to associate with the note
2164
+ # Corresponds to the JSON property `url`
2165
+ # @return [String]
2166
+ attr_accessor :url
2167
+
2168
+ def initialize(**args)
2169
+ update!(**args)
2170
+ end
2171
+
2172
+ # Update properties of this object
2173
+ def update!(**args)
2174
+ @label = args[:label] if args.key?(:label)
2175
+ @url = args[:url] if args.key?(:url)
2176
+ end
2177
+ end
2178
+
2179
+ # RepoSource describes the location of the source in a Google Cloud Source
2180
+ # Repository.
2181
+ class RepoSource
2182
+ include Google::Apis::Core::Hashable
2183
+
2184
+ # Name of the branch to build.
2185
+ # Corresponds to the JSON property `branchName`
2186
+ # @return [String]
2187
+ attr_accessor :branch_name
2188
+
2189
+ # Explicit commit SHA to build.
2190
+ # Corresponds to the JSON property `commitSha`
2191
+ # @return [String]
2192
+ attr_accessor :commit_sha
2193
+
2194
+ # ID of the project that owns the repo.
2195
+ # Corresponds to the JSON property `projectId`
2196
+ # @return [String]
2197
+ attr_accessor :project_id
2198
+
2199
+ # Name of the repo.
2200
+ # Corresponds to the JSON property `repoName`
2201
+ # @return [String]
2202
+ attr_accessor :repo_name
2203
+
2204
+ # Name of the tag to build.
2205
+ # Corresponds to the JSON property `tagName`
2206
+ # @return [String]
2207
+ attr_accessor :tag_name
2208
+
2209
+ def initialize(**args)
2210
+ update!(**args)
2211
+ end
2212
+
2213
+ # Update properties of this object
2214
+ def update!(**args)
2215
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
2216
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
2217
+ @project_id = args[:project_id] if args.key?(:project_id)
2218
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
2219
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
2220
+ end
2221
+ end
2222
+
2223
+ # Resource is an entity that can have metadata. E.g., a Docker image.
2224
+ class Resource
2225
+ include Google::Apis::Core::Hashable
2226
+
2227
+ # Container message for hash values.
2228
+ # Corresponds to the JSON property `contentHash`
2229
+ # @return [Google::Apis::ContaineranalysisV1alpha1::HashProp]
2230
+ attr_accessor :content_hash
2231
+
2232
+ # The name of the resource. E.g., the name of a Docker image - "Debian".
2233
+ # Corresponds to the JSON property `name`
2234
+ # @return [String]
2235
+ attr_accessor :name
2236
+
2237
+ # The unique URI of the resource. E.g.,
2238
+ # "https://gcr.io/project/image@sha256:foo" for a Docker image.
2239
+ # Corresponds to the JSON property `uri`
2240
+ # @return [String]
2241
+ attr_accessor :uri
2242
+
2243
+ def initialize(**args)
2244
+ update!(**args)
2245
+ end
2246
+
2247
+ # Update properties of this object
2248
+ def update!(**args)
2249
+ @content_hash = args[:content_hash] if args.key?(:content_hash)
2250
+ @name = args[:name] if args.key?(:name)
2251
+ @uri = args[:uri] if args.key?(:uri)
2252
+ end
2253
+ end
2254
+
2255
+ # Indicates various scans and whether they are turned on or off.
2256
+ class ScanConfig
2257
+ include Google::Apis::Core::Hashable
2258
+
2259
+ # Output only. The time this scan config was created.
2260
+ # Corresponds to the JSON property `createTime`
2261
+ # @return [String]
2262
+ attr_accessor :create_time
2263
+
2264
+ # Output only. A human-readable description of what the `ScanConfig` does.
2265
+ # Corresponds to the JSON property `description`
2266
+ # @return [String]
2267
+ attr_accessor :description
2268
+
2269
+ # Indicates whether the Scan is enabled.
2270
+ # Corresponds to the JSON property `enabled`
2271
+ # @return [Boolean]
2272
+ attr_accessor :enabled
2273
+ alias_method :enabled?, :enabled
2274
+
2275
+ # Output only. The name of the ScanConfig in the form
2276
+ # “projects/`project_id`/scanConfigs/`scan_config_id`".
2277
+ # Corresponds to the JSON property `name`
2278
+ # @return [String]
2279
+ attr_accessor :name
2280
+
2281
+ # Output only. The time this scan config was last updated.
2282
+ # Corresponds to the JSON property `updateTime`
2283
+ # @return [String]
2284
+ attr_accessor :update_time
2285
+
2286
+ def initialize(**args)
2287
+ update!(**args)
2288
+ end
2289
+
2290
+ # Update properties of this object
2291
+ def update!(**args)
2292
+ @create_time = args[:create_time] if args.key?(:create_time)
2293
+ @description = args[:description] if args.key?(:description)
2294
+ @enabled = args[:enabled] if args.key?(:enabled)
2295
+ @name = args[:name] if args.key?(:name)
2296
+ @update_time = args[:update_time] if args.key?(:update_time)
2297
+ end
2298
+ end
2299
+
2300
+ # Request message for `SetIamPolicy` method.
2301
+ class SetIamPolicyRequest
2302
+ include Google::Apis::Core::Hashable
2303
+
2304
+ # Defines an Identity and Access Management (IAM) policy. It is used to
2305
+ # specify access control policies for Cloud Platform resources.
2306
+ # A `Policy` consists of a list of `bindings`. A `binding` binds a list of
2307
+ # `members` to a `role`, where the members can be user accounts, Google groups,
2308
+ # Google domains, and service accounts. A `role` is a named list of permissions
2309
+ # defined by IAM.
2310
+ # **JSON Example**
2311
+ # `
2312
+ # "bindings": [
2313
+ # `
2314
+ # "role": "roles/owner",
2315
+ # "members": [
2316
+ # "user:mike@example.com",
2317
+ # "group:admins@example.com",
2318
+ # "domain:google.com",
2319
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com"
2320
+ # ]
2321
+ # `,
2322
+ # `
2323
+ # "role": "roles/viewer",
2324
+ # "members": ["user:sean@example.com"]
2325
+ # `
2326
+ # ]
2327
+ # `
2328
+ # **YAML Example**
2329
+ # bindings:
2330
+ # - members:
2331
+ # - user:mike@example.com
2332
+ # - group:admins@example.com
2333
+ # - domain:google.com
2334
+ # - serviceAccount:my-other-app@appspot.gserviceaccount.com
2335
+ # role: roles/owner
2336
+ # - members:
2337
+ # - user:sean@example.com
2338
+ # role: roles/viewer
2339
+ # For a description of IAM and its features, see the
2340
+ # [IAM developer's guide](https://cloud.google.com/iam/docs).
2341
+ # Corresponds to the JSON property `policy`
2342
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Policy]
2343
+ attr_accessor :policy
2344
+
2345
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
2346
+ # the fields in the mask will be modified. If no mask is provided, the
2347
+ # following default mask is used:
2348
+ # paths: "bindings, etag"
2349
+ # This field is only used by Cloud IAM.
2350
+ # Corresponds to the JSON property `updateMask`
2351
+ # @return [String]
2352
+ attr_accessor :update_mask
2353
+
2354
+ def initialize(**args)
2355
+ update!(**args)
2356
+ end
2357
+
2358
+ # Update properties of this object
2359
+ def update!(**args)
2360
+ @policy = args[:policy] if args.key?(:policy)
2361
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2362
+ end
2363
+ end
2364
+
2365
+ # The number of occurrences created for a specific severity.
2366
+ class SeverityCount
2367
+ include Google::Apis::Core::Hashable
2368
+
2369
+ # The number of occurrences with the severity.
2370
+ # Corresponds to the JSON property `count`
2371
+ # @return [Fixnum]
2372
+ attr_accessor :count
2373
+
2374
+ # The severity of the occurrences.
2375
+ # Corresponds to the JSON property `severity`
2376
+ # @return [String]
2377
+ attr_accessor :severity
2378
+
2379
+ def initialize(**args)
2380
+ update!(**args)
2381
+ end
2382
+
2383
+ # Update properties of this object
2384
+ def update!(**args)
2385
+ @count = args[:count] if args.key?(:count)
2386
+ @severity = args[:severity] if args.key?(:severity)
2387
+ end
2388
+ end
2389
+
2390
+ # Source describes the location of the source used for the build.
2391
+ class Source
2392
+ include Google::Apis::Core::Hashable
2393
+
2394
+ # If provided, some of the source code used for the build may be found in
2395
+ # these locations, in the case where the source repository had multiple
2396
+ # remotes or submodules. This list will not include the context specified in
2397
+ # the context field.
2398
+ # Corresponds to the JSON property `additionalContexts`
2399
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext>]
2400
+ attr_accessor :additional_contexts
2401
+
2402
+ # StorageSource describes the location of the source in an archive file in
2403
+ # Google Cloud Storage.
2404
+ # Corresponds to the JSON property `artifactStorageSource`
2405
+ # @return [Google::Apis::ContaineranalysisV1alpha1::StorageSource]
2406
+ attr_accessor :artifact_storage_source
2407
+
2408
+ # A SourceContext is a reference to a tree of files. A SourceContext together
2409
+ # with a path point to a unique revision of a single file or directory.
2410
+ # Corresponds to the JSON property `context`
2411
+ # @return [Google::Apis::ContaineranalysisV1alpha1::GoogleDevtoolsContaineranalysisV1alpha1SourceContext]
2412
+ attr_accessor :context
2413
+
2414
+ # Hash(es) of the build source, which can be used to verify that the original
2415
+ # source integrity was maintained in the build.
2416
+ # The keys to this map are file paths used as build source and the values
2417
+ # contain the hash values for those files.
2418
+ # If the build source came in a single package such as a gzipped tarfile
2419
+ # (.tar.gz), the FileHash will be for the single path to that file.
2420
+ # Corresponds to the JSON property `fileHashes`
2421
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::FileHashes>]
2422
+ attr_accessor :file_hashes
2423
+
2424
+ # RepoSource describes the location of the source in a Google Cloud Source
2425
+ # Repository.
2426
+ # Corresponds to the JSON property `repoSource`
2427
+ # @return [Google::Apis::ContaineranalysisV1alpha1::RepoSource]
2428
+ attr_accessor :repo_source
2429
+
2430
+ # StorageSource describes the location of the source in an archive file in
2431
+ # Google Cloud Storage.
2432
+ # Corresponds to the JSON property `storageSource`
2433
+ # @return [Google::Apis::ContaineranalysisV1alpha1::StorageSource]
2434
+ attr_accessor :storage_source
2435
+
2436
+ def initialize(**args)
2437
+ update!(**args)
2438
+ end
2439
+
2440
+ # Update properties of this object
2441
+ def update!(**args)
2442
+ @additional_contexts = args[:additional_contexts] if args.key?(:additional_contexts)
2443
+ @artifact_storage_source = args[:artifact_storage_source] if args.key?(:artifact_storage_source)
2444
+ @context = args[:context] if args.key?(:context)
2445
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
2446
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
2447
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
2448
+ end
2449
+ end
2450
+
2451
+ # The `Status` type defines a logical error model that is suitable for different
2452
+ # programming environments, including REST APIs and RPC APIs. It is used by
2453
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
2454
+ # - Simple to use and understand for most users
2455
+ # - Flexible enough to meet unexpected needs
2456
+ # # Overview
2457
+ # The `Status` message contains three pieces of data: error code, error message,
2458
+ # and error details. The error code should be an enum value of
2459
+ # google.rpc.Code, but it may accept additional error codes if needed. The
2460
+ # error message should be a developer-facing English message that helps
2461
+ # developers *understand* and *resolve* the error. If a localized user-facing
2462
+ # error message is needed, put the localized message in the error details or
2463
+ # localize it in the client. The optional error details may contain arbitrary
2464
+ # information about the error. There is a predefined set of error detail types
2465
+ # in the package `google.rpc` that can be used for common error conditions.
2466
+ # # Language mapping
2467
+ # The `Status` message is the logical representation of the error model, but it
2468
+ # is not necessarily the actual wire format. When the `Status` message is
2469
+ # exposed in different client libraries and different wire protocols, it can be
2470
+ # mapped differently. For example, it will likely be mapped to some exceptions
2471
+ # in Java, but more likely mapped to some error codes in C.
2472
+ # # Other uses
2473
+ # The error model and the `Status` message can be used in a variety of
2474
+ # environments, either with or without APIs, to provide a
2475
+ # consistent developer experience across different environments.
2476
+ # Example uses of this error model include:
2477
+ # - Partial errors. If a service needs to return partial errors to the client,
2478
+ # it may embed the `Status` in the normal response to indicate the partial
2479
+ # errors.
2480
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
2481
+ # have a `Status` message for error reporting.
2482
+ # - Batch operations. If a client uses batch request and batch response, the
2483
+ # `Status` message should be used directly inside batch response, one for
2484
+ # each error sub-response.
2485
+ # - Asynchronous operations. If an API call embeds asynchronous operation
2486
+ # results in its response, the status of those operations should be
2487
+ # represented directly using the `Status` message.
2488
+ # - Logging. If some API errors are stored in logs, the message `Status` could
2489
+ # be used directly after any stripping needed for security/privacy reasons.
2490
+ class Status
2491
+ include Google::Apis::Core::Hashable
2492
+
2493
+ # The status code, which should be an enum value of google.rpc.Code.
2494
+ # Corresponds to the JSON property `code`
2495
+ # @return [Fixnum]
2496
+ attr_accessor :code
2497
+
2498
+ # A list of messages that carry the error details. There is a common set of
2499
+ # message types for APIs to use.
2500
+ # Corresponds to the JSON property `details`
2501
+ # @return [Array<Hash<String,Object>>]
2502
+ attr_accessor :details
2503
+
2504
+ # A developer-facing error message, which should be in English. Any
2505
+ # user-facing error message should be localized and sent in the
2506
+ # google.rpc.Status.details field, or localized by the client.
2507
+ # Corresponds to the JSON property `message`
2508
+ # @return [String]
2509
+ attr_accessor :message
2510
+
2511
+ def initialize(**args)
2512
+ update!(**args)
2513
+ end
2514
+
2515
+ # Update properties of this object
2516
+ def update!(**args)
2517
+ @code = args[:code] if args.key?(:code)
2518
+ @details = args[:details] if args.key?(:details)
2519
+ @message = args[:message] if args.key?(:message)
2520
+ end
2521
+ end
2522
+
2523
+ # StorageSource describes the location of the source in an archive file in
2524
+ # Google Cloud Storage.
2525
+ class StorageSource
2526
+ include Google::Apis::Core::Hashable
2527
+
2528
+ # Google Cloud Storage bucket containing source (see [Bucket Name
2529
+ # Requirements]
2530
+ # (https://cloud.google.com/storage/docs/bucket-naming#requirements)).
2531
+ # Corresponds to the JSON property `bucket`
2532
+ # @return [String]
2533
+ attr_accessor :bucket
2534
+
2535
+ # Google Cloud Storage generation for the object.
2536
+ # Corresponds to the JSON property `generation`
2537
+ # @return [Fixnum]
2538
+ attr_accessor :generation
2539
+
2540
+ # Google Cloud Storage object containing source.
2541
+ # Corresponds to the JSON property `object`
2542
+ # @return [String]
2543
+ attr_accessor :object
2544
+
2545
+ def initialize(**args)
2546
+ update!(**args)
2547
+ end
2548
+
2549
+ # Update properties of this object
2550
+ def update!(**args)
2551
+ @bucket = args[:bucket] if args.key?(:bucket)
2552
+ @generation = args[:generation] if args.key?(:generation)
2553
+ @object = args[:object] if args.key?(:object)
2554
+ end
2555
+ end
2556
+
2557
+ # Request message for `TestIamPermissions` method.
2558
+ class TestIamPermissionsRequest
2559
+ include Google::Apis::Core::Hashable
2560
+
2561
+ # The set of permissions to check for the `resource`. Permissions with
2562
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
2563
+ # information see
2564
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
2565
+ # Corresponds to the JSON property `permissions`
2566
+ # @return [Array<String>]
2567
+ attr_accessor :permissions
2568
+
2569
+ def initialize(**args)
2570
+ update!(**args)
2571
+ end
2572
+
2573
+ # Update properties of this object
2574
+ def update!(**args)
2575
+ @permissions = args[:permissions] if args.key?(:permissions)
2576
+ end
2577
+ end
2578
+
2579
+ # Response message for `TestIamPermissions` method.
2580
+ class TestIamPermissionsResponse
2581
+ include Google::Apis::Core::Hashable
2582
+
2583
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
2584
+ # allowed.
2585
+ # Corresponds to the JSON property `permissions`
2586
+ # @return [Array<String>]
2587
+ attr_accessor :permissions
2588
+
2589
+ def initialize(**args)
2590
+ update!(**args)
2591
+ end
2592
+
2593
+ # Update properties of this object
2594
+ def update!(**args)
2595
+ @permissions = args[:permissions] if args.key?(:permissions)
2596
+ end
2597
+ end
2598
+
2599
+ # Request for updating an existing operation
2600
+ class UpdateOperationRequest
2601
+ include Google::Apis::Core::Hashable
2602
+
2603
+ # This resource represents a long-running operation that is the result of a
2604
+ # network API call.
2605
+ # Corresponds to the JSON property `operation`
2606
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Operation]
2607
+ attr_accessor :operation
2608
+
2609
+ # The fields to update.
2610
+ # Corresponds to the JSON property `updateMask`
2611
+ # @return [String]
2612
+ attr_accessor :update_mask
2613
+
2614
+ def initialize(**args)
2615
+ update!(**args)
2616
+ end
2617
+
2618
+ # Update properties of this object
2619
+ def update!(**args)
2620
+ @operation = args[:operation] if args.key?(:operation)
2621
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2622
+ end
2623
+ end
2624
+
2625
+ # Version contains structured information about the version of the package.
2626
+ # For a discussion of this in Debian/Ubuntu:
2627
+ # http://serverfault.com/questions/604541/debian-packages-version-convention
2628
+ # For a discussion of this in Redhat/Fedora/Centos:
2629
+ # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
2630
+ class Version
2631
+ include Google::Apis::Core::Hashable
2632
+
2633
+ # Used to correct mistakes in the version numbering scheme.
2634
+ # Corresponds to the JSON property `epoch`
2635
+ # @return [Fixnum]
2636
+ attr_accessor :epoch
2637
+
2638
+ # Distinguish between sentinel MIN/MAX versions and normal versions.
2639
+ # If kind is not NORMAL, then the other fields are ignored.
2640
+ # Corresponds to the JSON property `kind`
2641
+ # @return [String]
2642
+ attr_accessor :kind
2643
+
2644
+ # The main part of the version name.
2645
+ # Corresponds to the JSON property `name`
2646
+ # @return [String]
2647
+ attr_accessor :name
2648
+
2649
+ # The iteration of the package build from the above version.
2650
+ # Corresponds to the JSON property `revision`
2651
+ # @return [String]
2652
+ attr_accessor :revision
2653
+
2654
+ def initialize(**args)
2655
+ update!(**args)
2656
+ end
2657
+
2658
+ # Update properties of this object
2659
+ def update!(**args)
2660
+ @epoch = args[:epoch] if args.key?(:epoch)
2661
+ @kind = args[:kind] if args.key?(:kind)
2662
+ @name = args[:name] if args.key?(:name)
2663
+ @revision = args[:revision] if args.key?(:revision)
2664
+ end
2665
+ end
2666
+
2667
+ # Used by Occurrence to point to where the vulnerability exists and how
2668
+ # to fix it.
2669
+ class VulnerabilityDetails
2670
+ include Google::Apis::Core::Hashable
2671
+
2672
+ # Output only. The CVSS score of this vulnerability. CVSS score is on a
2673
+ # scale of 0-10 where 0 indicates low severity and 10 indicates high
2674
+ # severity.
2675
+ # Corresponds to the JSON property `cvssScore`
2676
+ # @return [Float]
2677
+ attr_accessor :cvss_score
2678
+
2679
+ # The set of affected locations and their fixes (if available) within
2680
+ # the associated resource.
2681
+ # Corresponds to the JSON property `packageIssue`
2682
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::PackageIssue>]
2683
+ attr_accessor :package_issue
2684
+
2685
+ # Output only. The note provider assigned Severity of the vulnerability.
2686
+ # Corresponds to the JSON property `severity`
2687
+ # @return [String]
2688
+ attr_accessor :severity
2689
+
2690
+ # The type of package; whether native or non native(ruby gems,
2691
+ # node.js packages etc)
2692
+ # Corresponds to the JSON property `type`
2693
+ # @return [String]
2694
+ attr_accessor :type
2695
+
2696
+ def initialize(**args)
2697
+ update!(**args)
2698
+ end
2699
+
2700
+ # Update properties of this object
2701
+ def update!(**args)
2702
+ @cvss_score = args[:cvss_score] if args.key?(:cvss_score)
2703
+ @package_issue = args[:package_issue] if args.key?(:package_issue)
2704
+ @severity = args[:severity] if args.key?(:severity)
2705
+ @type = args[:type] if args.key?(:type)
2706
+ end
2707
+ end
2708
+
2709
+ # The location of the vulnerability
2710
+ class VulnerabilityLocation
2711
+ include Google::Apis::Core::Hashable
2712
+
2713
+ # The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/)
2714
+ # format. Examples include distro or storage location for vulnerable jar.
2715
+ # This field can be used as a filter in list requests.
2716
+ # Corresponds to the JSON property `cpeUri`
2717
+ # @return [String]
2718
+ attr_accessor :cpe_uri
2719
+
2720
+ # The package being described.
2721
+ # Corresponds to the JSON property `package`
2722
+ # @return [String]
2723
+ attr_accessor :package
2724
+
2725
+ # Version contains structured information about the version of the package.
2726
+ # For a discussion of this in Debian/Ubuntu:
2727
+ # http://serverfault.com/questions/604541/debian-packages-version-convention
2728
+ # For a discussion of this in Redhat/Fedora/Centos:
2729
+ # http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
2730
+ # Corresponds to the JSON property `version`
2731
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
2732
+ attr_accessor :version
2733
+
2734
+ def initialize(**args)
2735
+ update!(**args)
2736
+ end
2737
+
2738
+ # Update properties of this object
2739
+ def update!(**args)
2740
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
2741
+ @package = args[:package] if args.key?(:package)
2742
+ @version = args[:version] if args.key?(:version)
2743
+ end
2744
+ end
2745
+
2746
+ # VulnerabilityType provides metadata about a security vulnerability.
2747
+ class VulnerabilityType
2748
+ include Google::Apis::Core::Hashable
2749
+
2750
+ # The CVSS score for this Vulnerability.
2751
+ # Corresponds to the JSON property `cvssScore`
2752
+ # @return [Float]
2753
+ attr_accessor :cvss_score
2754
+
2755
+ # All information about the package to specifically identify this
2756
+ # vulnerability. One entry per (version range and cpe_uri) the
2757
+ # package vulnerability has manifested in.
2758
+ # Corresponds to the JSON property `details`
2759
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Detail>]
2760
+ attr_accessor :details
2761
+
2762
+ # Note provider assigned impact of the vulnerability
2763
+ # Corresponds to the JSON property `severity`
2764
+ # @return [String]
2765
+ attr_accessor :severity
2766
+
2767
+ def initialize(**args)
2768
+ update!(**args)
2769
+ end
2770
+
2771
+ # Update properties of this object
2772
+ def update!(**args)
2773
+ @cvss_score = args[:cvss_score] if args.key?(:cvss_score)
2774
+ @details = args[:details] if args.key?(:details)
2775
+ @severity = args[:severity] if args.key?(:severity)
2776
+ end
2777
+ end
2778
+ end
2779
+ end
2780
+ end