google-api-client 0.27.2 → 0.27.3

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