google-api-client 0.27.2 → 0.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/generated/google/apis/bigtableadmin_v2.rb +1 -1
  4. data/generated/google/apis/bigtableadmin_v2/classes.rb +45 -0
  5. data/generated/google/apis/bigtableadmin_v2/representations.rb +17 -0
  6. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  7. data/generated/google/apis/cloudkms_v1.rb +4 -1
  8. data/generated/google/apis/cloudtrace_v2.rb +1 -1
  9. data/generated/google/apis/cloudtrace_v2/classes.rb +2 -2
  10. data/generated/google/apis/compute_alpha.rb +1 -1
  11. data/generated/google/apis/compute_alpha/classes.rb +1198 -13
  12. data/generated/google/apis/compute_alpha/representations.rb +406 -0
  13. data/generated/google/apis/compute_alpha/service.rb +200 -4
  14. data/generated/google/apis/compute_beta.rb +1 -1
  15. data/generated/google/apis/compute_beta/classes.rb +23 -9
  16. data/generated/google/apis/compute_beta/representations.rb +2 -0
  17. data/generated/google/apis/compute_beta/service.rb +41 -4
  18. data/generated/google/apis/compute_v1.rb +1 -1
  19. data/generated/google/apis/compute_v1/classes.rb +65 -6
  20. data/generated/google/apis/compute_v1/representations.rb +19 -0
  21. data/generated/google/apis/compute_v1/service.rb +4 -4
  22. data/generated/google/apis/container_v1.rb +1 -1
  23. data/generated/google/apis/container_v1/classes.rb +145 -0
  24. data/generated/google/apis/container_v1/representations.rb +54 -0
  25. data/generated/google/apis/container_v1/service.rb +69 -0
  26. data/generated/google/apis/container_v1beta1.rb +1 -1
  27. data/generated/google/apis/container_v1beta1/classes.rb +177 -0
  28. data/generated/google/apis/container_v1beta1/representations.rb +70 -0
  29. data/generated/google/apis/container_v1beta1/service.rb +69 -0
  30. data/generated/google/apis/containeranalysis_v1alpha1.rb +35 -0
  31. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +2780 -0
  32. data/generated/google/apis/containeranalysis_v1alpha1/representations.rb +1106 -0
  33. data/generated/google/apis/containeranalysis_v1alpha1/service.rb +1329 -0
  34. data/generated/google/apis/containeranalysis_v1beta1.rb +35 -0
  35. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +2702 -0
  36. data/generated/google/apis/containeranalysis_v1beta1/representations.rb +1152 -0
  37. data/generated/google/apis/containeranalysis_v1beta1/service.rb +932 -0
  38. data/generated/google/apis/content_v2.rb +1 -1
  39. data/generated/google/apis/content_v2/classes.rb +84 -14
  40. data/generated/google/apis/content_v2/representations.rb +24 -0
  41. data/generated/google/apis/content_v2_1.rb +1 -1
  42. data/generated/google/apis/content_v2_1/classes.rb +70 -11
  43. data/generated/google/apis/content_v2_1/representations.rb +25 -3
  44. data/generated/google/apis/dialogflow_v2.rb +1 -1
  45. data/generated/google/apis/dialogflow_v2/classes.rb +20 -20
  46. data/generated/google/apis/dialogflow_v2/service.rb +6 -6
  47. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  48. data/generated/google/apis/dialogflow_v2beta1/classes.rb +20 -20
  49. data/generated/google/apis/dialogflow_v2beta1/service.rb +6 -6
  50. data/generated/google/apis/dns_v1.rb +1 -1
  51. data/generated/google/apis/dns_v1/classes.rb +19 -10
  52. data/generated/google/apis/dns_v1beta2.rb +1 -1
  53. data/generated/google/apis/dns_v1beta2/classes.rb +31 -22
  54. data/generated/google/apis/dns_v2beta1.rb +1 -1
  55. data/generated/google/apis/dns_v2beta1/classes.rb +19 -10
  56. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  57. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +9 -2
  58. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +1 -0
  59. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  60. data/generated/google/apis/firebasedynamiclinks_v1/classes.rb +7 -0
  61. data/generated/google/apis/firebasedynamiclinks_v1/representations.rb +1 -0
  62. data/generated/google/apis/firestore_v1.rb +1 -1
  63. data/generated/google/apis/firestore_v1/classes.rb +18 -0
  64. data/generated/google/apis/firestore_v1/representations.rb +6 -0
  65. data/generated/google/apis/firestore_v1beta1.rb +1 -1
  66. data/generated/google/apis/firestore_v1beta1/classes.rb +18 -0
  67. data/generated/google/apis/firestore_v1beta1/representations.rb +6 -0
  68. data/generated/google/apis/fitness_v1.rb +1 -1
  69. data/generated/google/apis/fitness_v1/classes.rb +2 -1
  70. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  71. data/generated/google/apis/jobs_v3p1beta1/classes.rb +169 -0
  72. data/generated/google/apis/jobs_v3p1beta1/representations.rb +33 -0
  73. data/generated/google/apis/jobs_v3p1beta1/service.rb +32 -0
  74. data/generated/google/apis/libraryagent_v1.rb +34 -0
  75. data/generated/google/apis/libraryagent_v1/classes.rb +151 -0
  76. data/generated/google/apis/libraryagent_v1/representations.rb +86 -0
  77. data/generated/google/apis/libraryagent_v1/service.rb +265 -0
  78. data/generated/google/apis/oslogin_v1.rb +2 -2
  79. data/generated/google/apis/oslogin_v1/service.rb +1 -1
  80. data/generated/google/apis/oslogin_v1alpha.rb +2 -2
  81. data/generated/google/apis/oslogin_v1alpha/service.rb +1 -1
  82. data/generated/google/apis/oslogin_v1beta.rb +2 -2
  83. data/generated/google/apis/oslogin_v1beta/service.rb +1 -1
  84. data/generated/google/apis/remotebuildexecution_v1.rb +34 -0
  85. data/generated/google/apis/remotebuildexecution_v1/classes.rb +3858 -0
  86. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1196 -0
  87. data/generated/google/apis/remotebuildexecution_v1/service.rb +374 -0
  88. data/generated/google/apis/remotebuildexecution_v1alpha.rb +34 -0
  89. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +3709 -0
  90. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1113 -0
  91. data/generated/google/apis/remotebuildexecution_v1alpha/service.rb +400 -0
  92. data/generated/google/apis/remotebuildexecution_v2.rb +34 -0
  93. data/generated/google/apis/remotebuildexecution_v2/classes.rb +4460 -0
  94. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1431 -0
  95. data/generated/google/apis/remotebuildexecution_v2/service.rb +542 -0
  96. data/generated/google/apis/serviceconsumermanagement_v1.rb +1 -1
  97. data/generated/google/apis/serviceconsumermanagement_v1/classes.rb +12 -0
  98. data/generated/google/apis/serviceconsumermanagement_v1/representations.rb +2 -0
  99. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  100. data/generated/google/apis/servicenetworking_v1beta/classes.rb +12 -0
  101. data/generated/google/apis/servicenetworking_v1beta/representations.rb +2 -0
  102. data/generated/google/apis/serviceusage_v1.rb +1 -1
  103. data/generated/google/apis/serviceusage_v1/classes.rb +12 -0
  104. data/generated/google/apis/serviceusage_v1/representations.rb +2 -0
  105. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  106. data/generated/google/apis/serviceusage_v1beta1/classes.rb +12 -0
  107. data/generated/google/apis/serviceusage_v1beta1/representations.rb +2 -0
  108. data/generated/google/apis/sheets_v4.rb +1 -1
  109. data/generated/google/apis/sheets_v4/classes.rb +4 -4
  110. data/generated/google/apis/slides_v1.rb +1 -1
  111. data/generated/google/apis/slides_v1/classes.rb +5 -5
  112. data/generated/google/apis/speech_v1.rb +1 -1
  113. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  114. data/generated/google/apis/testing_v1.rb +1 -1
  115. data/generated/google/apis/testing_v1/classes.rb +9 -0
  116. data/generated/google/apis/testing_v1/representations.rb +1 -0
  117. data/generated/google/apis/websecurityscanner_v1alpha.rb +1 -1
  118. data/generated/google/apis/websecurityscanner_v1alpha/classes.rb +7 -0
  119. data/generated/google/apis/websecurityscanner_v1alpha/representations.rb +2 -0
  120. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  121. data/lib/google/apis/version.rb +1 -1
  122. metadata +26 -2
@@ -0,0 +1,35 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/containeranalysis_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