google-api-client 0.27.2 → 0.27.3

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