google-apis-containeranalysis_v1beta1 0.7.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -294,7 +294,7 @@ module Google
294
294
  end
295
295
  end
296
296
 
297
- # Associates `members` with a `role`.
297
+ # Associates `members`, or principals, with a `role`.
298
298
  class Binding
299
299
  include Google::Apis::Core::Hashable
300
300
 
@@ -317,7 +317,7 @@ module Google
317
317
  # @return [Google::Apis::ContaineranalysisV1beta1::Expr]
318
318
  attr_accessor :condition
319
319
 
320
- # Specifies the identities requesting access for a Cloud Platform resource. `
320
+ # Specifies the principals requesting access for a Cloud Platform resource. `
321
321
  # members` can have the following values: * `allUsers`: A special identifier
322
322
  # that represents anyone who is on the internet; with or without a Google
323
323
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -347,8 +347,8 @@ module Google
347
347
  # @return [Array<String>]
348
348
  attr_accessor :members
349
349
 
350
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
351
- # , or `roles/owner`.
350
+ # Role that is assigned to the list of `members`, or principals. For example, `
351
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
352
352
  # Corresponds to the JSON property `role`
353
353
  # @return [String]
354
354
  attr_accessor :role
@@ -537,6 +537,141 @@ module Google
537
537
  end
538
538
  end
539
539
 
540
+ # A step in the build pipeline.
541
+ class BuildStep
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # A list of arguments that will be presented to the step when it is started. If
545
+ # the image used to run the step's container has an entrypoint, the `args` are
546
+ # used as arguments to that entrypoint. If the image does not define an
547
+ # entrypoint, the first element in args is used as the entrypoint, and the
548
+ # remainder will be used as arguments.
549
+ # Corresponds to the JSON property `args`
550
+ # @return [Array<String>]
551
+ attr_accessor :args
552
+
553
+ # Working directory to use when running this step's container. If this value is
554
+ # a relative path, it is relative to the build's working directory. If this
555
+ # value is absolute, it may be outside the build's working directory, in which
556
+ # case the contents of the path may not be persisted across build step
557
+ # executions, unless a `volume` for that path is specified. If the build
558
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
559
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
560
+ # Corresponds to the JSON property `dir`
561
+ # @return [String]
562
+ attr_accessor :dir
563
+
564
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
565
+ # unset, the image's default entrypoint is used.
566
+ # Corresponds to the JSON property `entrypoint`
567
+ # @return [String]
568
+ attr_accessor :entrypoint
569
+
570
+ # A list of environment variable definitions to be used when running a step. The
571
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
572
+ # given the value "VALUE".
573
+ # Corresponds to the JSON property `env`
574
+ # @return [Array<String>]
575
+ attr_accessor :env
576
+
577
+ # Unique identifier for this build step, used in `wait_for` to reference this
578
+ # build step as a dependency.
579
+ # Corresponds to the JSON property `id`
580
+ # @return [String]
581
+ attr_accessor :id
582
+
583
+ # Required. The name of the container image that will run this particular build
584
+ # step. If the image is available in the host's Docker daemon's cache, it will
585
+ # be run directly. If not, the host will attempt to pull the image first, using
586
+ # the builder service account's credentials if necessary. The Docker daemon's
587
+ # cache will already have the latest versions of all of the officially supported
588
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
589
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
590
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
591
+ # , but they will be refreshed at the time you attempt to use them. If you built
592
+ # an image in a previous build step, it will be stored in the host's Docker
593
+ # daemon's cache and is available to use as the name for a later build step.
594
+ # Corresponds to the JSON property `name`
595
+ # @return [String]
596
+ attr_accessor :name
597
+
598
+ # Start and end times for a build execution phase.
599
+ # Corresponds to the JSON property `pullTiming`
600
+ # @return [Google::Apis::ContaineranalysisV1beta1::TimeSpan]
601
+ attr_accessor :pull_timing
602
+
603
+ # A shell script to be executed in the step. When script is provided, the user
604
+ # cannot specify the entrypoint or args.
605
+ # Corresponds to the JSON property `script`
606
+ # @return [String]
607
+ attr_accessor :script
608
+
609
+ # A list of environment variables which are encrypted using a Cloud Key
610
+ # Management Service crypto key. These values must be specified in the build's `
611
+ # Secret`.
612
+ # Corresponds to the JSON property `secretEnv`
613
+ # @return [Array<String>]
614
+ attr_accessor :secret_env
615
+
616
+ # Output only. Status of the build step. At this time, build step status is only
617
+ # updated on build completion; step status is not updated in real-time as the
618
+ # build progresses.
619
+ # Corresponds to the JSON property `status`
620
+ # @return [String]
621
+ attr_accessor :status
622
+
623
+ # Time limit for executing this build step. If not defined, the step has no time
624
+ # limit and will be allowed to continue to run until either it completes or the
625
+ # build itself times out.
626
+ # Corresponds to the JSON property `timeout`
627
+ # @return [String]
628
+ attr_accessor :timeout
629
+
630
+ # Start and end times for a build execution phase.
631
+ # Corresponds to the JSON property `timing`
632
+ # @return [Google::Apis::ContaineranalysisV1beta1::TimeSpan]
633
+ attr_accessor :timing
634
+
635
+ # List of volumes to mount into the build step. Each volume is created as an
636
+ # empty volume prior to execution of the build step. Upon completion of the
637
+ # build, volumes and their contents are discarded. Using a named volume in only
638
+ # one step is not valid as it is indicative of a build request with an incorrect
639
+ # configuration.
640
+ # Corresponds to the JSON property `volumes`
641
+ # @return [Array<Google::Apis::ContaineranalysisV1beta1::Volume>]
642
+ attr_accessor :volumes
643
+
644
+ # The ID(s) of the step(s) that this build step depends on. This build step will
645
+ # not start until all the build steps in `wait_for` have completed successfully.
646
+ # If `wait_for` is empty, this build step will start when all previous build
647
+ # steps in the `Build.Steps` list have completed successfully.
648
+ # Corresponds to the JSON property `waitFor`
649
+ # @return [Array<String>]
650
+ attr_accessor :wait_for
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @args = args[:args] if args.key?(:args)
659
+ @dir = args[:dir] if args.key?(:dir)
660
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
661
+ @env = args[:env] if args.key?(:env)
662
+ @id = args[:id] if args.key?(:id)
663
+ @name = args[:name] if args.key?(:name)
664
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
665
+ @script = args[:script] if args.key?(:script)
666
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
667
+ @status = args[:status] if args.key?(:status)
668
+ @timeout = args[:timeout] if args.key?(:timeout)
669
+ @timing = args[:timing] if args.key?(:timing)
670
+ @volumes = args[:volumes] if args.key?(:volumes)
671
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
672
+ end
673
+ end
674
+
540
675
  # Defines an object for the byproducts field in in-toto links. The suggested
541
676
  # fields are "stderr", "stdout", and "return-value".
542
677
  class ByProducts
@@ -1073,6 +1208,112 @@ module Google
1073
1208
  end
1074
1209
  end
1075
1210
 
1211
+ # DocumentNote represents an SPDX Document Creation Infromation section: https://
1212
+ # spdx.github.io/spdx-spec/2-document-creation-information/
1213
+ class DocumentNote
1214
+ include Google::Apis::Core::Hashable
1215
+
1216
+ # Compliance with the SPDX specification includes populating the SPDX fields
1217
+ # therein with data related to such fields ("SPDX-Metadata")
1218
+ # Corresponds to the JSON property `dataLicence`
1219
+ # @return [String]
1220
+ attr_accessor :data_licence
1221
+
1222
+ # Provide a reference number that can be used to understand how to parse and
1223
+ # interpret the rest of the file
1224
+ # Corresponds to the JSON property `spdxVersion`
1225
+ # @return [String]
1226
+ attr_accessor :spdx_version
1227
+
1228
+ def initialize(**args)
1229
+ update!(**args)
1230
+ end
1231
+
1232
+ # Update properties of this object
1233
+ def update!(**args)
1234
+ @data_licence = args[:data_licence] if args.key?(:data_licence)
1235
+ @spdx_version = args[:spdx_version] if args.key?(:spdx_version)
1236
+ end
1237
+ end
1238
+
1239
+ # DocumentOccurrence represents an SPDX Document Creation Information section:
1240
+ # https://spdx.github.io/spdx-spec/2-document-creation-information/
1241
+ class DocumentOccurrence
1242
+ include Google::Apis::Core::Hashable
1243
+
1244
+ # Identify when the SPDX file was originally created. The date is to be
1245
+ # specified according to combined date and time in UTC format as specified in
1246
+ # ISO 8601 standard
1247
+ # Corresponds to the JSON property `createTime`
1248
+ # @return [String]
1249
+ attr_accessor :create_time
1250
+
1251
+ # A field for creators of the SPDX file to provide general comments about the
1252
+ # creation of the SPDX file or any other relevant comment not included in the
1253
+ # other fields
1254
+ # Corresponds to the JSON property `creatorComment`
1255
+ # @return [String]
1256
+ attr_accessor :creator_comment
1257
+
1258
+ # Identify who (or what, in the case of a tool) created the SPDX file. If the
1259
+ # SPDX file was created by an individual, indicate the person's name
1260
+ # Corresponds to the JSON property `creators`
1261
+ # @return [Array<String>]
1262
+ attr_accessor :creators
1263
+
1264
+ # A field for creators of the SPDX file content to provide comments to the
1265
+ # consumers of the SPDX document
1266
+ # Corresponds to the JSON property `documentComment`
1267
+ # @return [String]
1268
+ attr_accessor :document_comment
1269
+
1270
+ # Identify any external SPDX documents referenced within this SPDX document
1271
+ # Corresponds to the JSON property `externalDocumentRefs`
1272
+ # @return [Array<String>]
1273
+ attr_accessor :external_document_refs
1274
+
1275
+ # Identify the current SPDX document which may be referenced in relationships by
1276
+ # other files, packages internally and documents externally
1277
+ # Corresponds to the JSON property `id`
1278
+ # @return [String]
1279
+ attr_accessor :id
1280
+
1281
+ # A field for creators of the SPDX file to provide the version of the SPDX
1282
+ # License List used when the SPDX file was created
1283
+ # Corresponds to the JSON property `licenseListVersion`
1284
+ # @return [String]
1285
+ attr_accessor :license_list_version
1286
+
1287
+ # Provide an SPDX document specific namespace as a unique absolute Uniform
1288
+ # Resource Identifier (URI) as specified in RFC-3986, with the exception of the ‘
1289
+ # #’ delimiter
1290
+ # Corresponds to the JSON property `namespace`
1291
+ # @return [String]
1292
+ attr_accessor :namespace
1293
+
1294
+ # Identify name of this document as designated by creator
1295
+ # Corresponds to the JSON property `title`
1296
+ # @return [String]
1297
+ attr_accessor :title
1298
+
1299
+ def initialize(**args)
1300
+ update!(**args)
1301
+ end
1302
+
1303
+ # Update properties of this object
1304
+ def update!(**args)
1305
+ @create_time = args[:create_time] if args.key?(:create_time)
1306
+ @creator_comment = args[:creator_comment] if args.key?(:creator_comment)
1307
+ @creators = args[:creators] if args.key?(:creators)
1308
+ @document_comment = args[:document_comment] if args.key?(:document_comment)
1309
+ @external_document_refs = args[:external_document_refs] if args.key?(:external_document_refs)
1310
+ @id = args[:id] if args.key?(:id)
1311
+ @license_list_version = args[:license_list_version] if args.key?(:license_list_version)
1312
+ @namespace = args[:namespace] if args.key?(:namespace)
1313
+ @title = args[:title] if args.key?(:title)
1314
+ end
1315
+ end
1316
+
1076
1317
  # A generic empty message that you can re-use to avoid defining duplicated empty
1077
1318
  # messages in your APIs. A typical example is to use it as the request or the
1078
1319
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1164,6 +1405,48 @@ module Google
1164
1405
  end
1165
1406
  end
1166
1407
 
1408
+ # An External Reference allows a Package to reference an external source of
1409
+ # additional information, metadata, enumerations, asset identifiers, or
1410
+ # downloadable content believed to be relevant to the Package
1411
+ class ExternalRef
1412
+ include Google::Apis::Core::Hashable
1413
+
1414
+ # An External Reference allows a Package to reference an external source of
1415
+ # additional information, metadata, enumerations, asset identifiers, or
1416
+ # downloadable content believed to be relevant to the Package
1417
+ # Corresponds to the JSON property `category`
1418
+ # @return [String]
1419
+ attr_accessor :category
1420
+
1421
+ # Human-readable information about the purpose and target of the reference
1422
+ # Corresponds to the JSON property `comment`
1423
+ # @return [String]
1424
+ attr_accessor :comment
1425
+
1426
+ # The unique string with no spaces necessary to access the package-specific
1427
+ # information, metadata, or content within the target location
1428
+ # Corresponds to the JSON property `locator`
1429
+ # @return [String]
1430
+ attr_accessor :locator
1431
+
1432
+ # Type of category (e.g. 'npm' for the PACKAGE_MANAGER category)
1433
+ # Corresponds to the JSON property `type`
1434
+ # @return [String]
1435
+ attr_accessor :type
1436
+
1437
+ def initialize(**args)
1438
+ update!(**args)
1439
+ end
1440
+
1441
+ # Update properties of this object
1442
+ def update!(**args)
1443
+ @category = args[:category] if args.key?(:category)
1444
+ @comment = args[:comment] if args.key?(:comment)
1445
+ @locator = args[:locator] if args.key?(:locator)
1446
+ @type = args[:type] if args.key?(:type)
1447
+ end
1448
+ end
1449
+
1167
1450
  # Container message for hashes of byte content of files, used in source messages
1168
1451
  # to verify integrity of source input to the build.
1169
1452
  class FileHashes
@@ -1184,6 +1467,108 @@ module Google
1184
1467
  end
1185
1468
  end
1186
1469
 
1470
+ # FileNote represents an SPDX File Information section: https://spdx.github.io/
1471
+ # spdx-spec/4-file-information/
1472
+ class FileNote
1473
+ include Google::Apis::Core::Hashable
1474
+
1475
+ # Provide a unique identifier to match analysis information on each specific
1476
+ # file in a package
1477
+ # Corresponds to the JSON property `checksum`
1478
+ # @return [Array<String>]
1479
+ attr_accessor :checksum
1480
+
1481
+ # This field provides information about the type of file identified
1482
+ # Corresponds to the JSON property `fileType`
1483
+ # @return [String]
1484
+ attr_accessor :file_type
1485
+
1486
+ # Identify the full path and filename that corresponds to the file information
1487
+ # in this section
1488
+ # Corresponds to the JSON property `title`
1489
+ # @return [String]
1490
+ attr_accessor :title
1491
+
1492
+ def initialize(**args)
1493
+ update!(**args)
1494
+ end
1495
+
1496
+ # Update properties of this object
1497
+ def update!(**args)
1498
+ @checksum = args[:checksum] if args.key?(:checksum)
1499
+ @file_type = args[:file_type] if args.key?(:file_type)
1500
+ @title = args[:title] if args.key?(:title)
1501
+ end
1502
+ end
1503
+
1504
+ # FileOccurrence represents an SPDX File Information section: https://spdx.
1505
+ # github.io/spdx-spec/4-file-information/
1506
+ class FileOccurrence
1507
+ include Google::Apis::Core::Hashable
1508
+
1509
+ # This field provides a place for the SPDX data creator to record, at the file
1510
+ # level, acknowledgements that may be needed to be communicated in some contexts
1511
+ # Corresponds to the JSON property `attributions`
1512
+ # @return [Array<String>]
1513
+ attr_accessor :attributions
1514
+
1515
+ # This field provides a place for the SPDX file creator to record any general
1516
+ # comments about the file
1517
+ # Corresponds to the JSON property `comment`
1518
+ # @return [String]
1519
+ attr_accessor :comment
1520
+
1521
+ # This field provides a place for the SPDX file creator to record file
1522
+ # contributors
1523
+ # Corresponds to the JSON property `contributors`
1524
+ # @return [Array<String>]
1525
+ attr_accessor :contributors
1526
+
1527
+ # Identify the copyright holder of the file, as well as any dates present
1528
+ # Corresponds to the JSON property `copyright`
1529
+ # @return [String]
1530
+ attr_accessor :copyright
1531
+
1532
+ # This field contains the license information actually found in the file, if any
1533
+ # Corresponds to the JSON property `filesLicenseInfo`
1534
+ # @return [Array<String>]
1535
+ attr_accessor :files_license_info
1536
+
1537
+ # Uniquely identify any element in an SPDX document which may be referenced by
1538
+ # other elements
1539
+ # Corresponds to the JSON property `id`
1540
+ # @return [String]
1541
+ attr_accessor :id
1542
+
1543
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
1544
+ # 315-declared-license
1545
+ # Corresponds to the JSON property `licenseConcluded`
1546
+ # @return [Google::Apis::ContaineranalysisV1beta1::License]
1547
+ attr_accessor :license_concluded
1548
+
1549
+ # This field provides a place for the SPDX file creator to record license
1550
+ # notices or other such related notices found in the file
1551
+ # Corresponds to the JSON property `notice`
1552
+ # @return [String]
1553
+ attr_accessor :notice
1554
+
1555
+ def initialize(**args)
1556
+ update!(**args)
1557
+ end
1558
+
1559
+ # Update properties of this object
1560
+ def update!(**args)
1561
+ @attributions = args[:attributions] if args.key?(:attributions)
1562
+ @comment = args[:comment] if args.key?(:comment)
1563
+ @contributors = args[:contributors] if args.key?(:contributors)
1564
+ @copyright = args[:copyright] if args.key?(:copyright)
1565
+ @files_license_info = args[:files_license_info] if args.key?(:files_license_info)
1566
+ @id = args[:id] if args.key?(:id)
1567
+ @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
1568
+ @notice = args[:notice] if args.key?(:notice)
1569
+ end
1570
+ end
1571
+
1187
1572
  # A set of properties that uniquely identify a given Docker image.
1188
1573
  class Fingerprint
1189
1574
  include Google::Apis::Core::Hashable
@@ -1632,7 +2017,13 @@ module Google
1632
2017
 
1633
2018
  # The distro assigned severity for this vulnerability when it is available, and
1634
2019
  # note provider assigned severity when distro has not yet assigned a severity
1635
- # for this vulnerability.
2020
+ # for this vulnerability. When there are multiple PackageIssues for this
2021
+ # vulnerability, they can have different effective severities because some might
2022
+ # be provided by the distro while others are provided by the language ecosystem
2023
+ # for a language pack. For this reason, it is advised to use the effective
2024
+ # severity on the PackageIssue level. In the case where multiple PackageIssues
2025
+ # have differing effective severities, this field should be the highest severity
2026
+ # for any of the PackageIssues.
1636
2027
  # Corresponds to the JSON property `effectiveSeverity`
1637
2028
  # @return [String]
1638
2029
  attr_accessor :effective_severity
@@ -1868,6 +2259,33 @@ module Google
1868
2259
  end
1869
2260
  end
1870
2261
 
2262
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2263
+ # 315-declared-license
2264
+ class License
2265
+ include Google::Apis::Core::Hashable
2266
+
2267
+ # Comments
2268
+ # Corresponds to the JSON property `comments`
2269
+ # @return [String]
2270
+ attr_accessor :comments
2271
+
2272
+ # Expression: https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-
2273
+ # expressions/
2274
+ # Corresponds to the JSON property `expression`
2275
+ # @return [String]
2276
+ attr_accessor :expression
2277
+
2278
+ def initialize(**args)
2279
+ update!(**args)
2280
+ end
2281
+
2282
+ # Update properties of this object
2283
+ def update!(**args)
2284
+ @comments = args[:comments] if args.key?(:comments)
2285
+ @expression = args[:expression] if args.key?(:expression)
2286
+ end
2287
+ end
2288
+
1871
2289
  # This corresponds to an in-toto link.
1872
2290
  class Link
1873
2291
  include Google::Apis::Core::Hashable
@@ -2149,11 +2567,35 @@ module Google
2149
2567
  # @return [Array<Google::Apis::ContaineranalysisV1beta1::RelatedUrl>]
2150
2568
  attr_accessor :related_url
2151
2569
 
2570
+ # DocumentNote represents an SPDX Document Creation Infromation section: https://
2571
+ # spdx.github.io/spdx-spec/2-document-creation-information/
2572
+ # Corresponds to the JSON property `sbom`
2573
+ # @return [Google::Apis::ContaineranalysisV1beta1::DocumentNote]
2574
+ attr_accessor :sbom
2575
+
2152
2576
  # A one sentence description of this note.
2153
2577
  # Corresponds to the JSON property `shortDescription`
2154
2578
  # @return [String]
2155
2579
  attr_accessor :short_description
2156
2580
 
2581
+ # FileNote represents an SPDX File Information section: https://spdx.github.io/
2582
+ # spdx-spec/4-file-information/
2583
+ # Corresponds to the JSON property `spdxFile`
2584
+ # @return [Google::Apis::ContaineranalysisV1beta1::FileNote]
2585
+ attr_accessor :spdx_file
2586
+
2587
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2588
+ # github.io/spdx-spec/3-package-information/
2589
+ # Corresponds to the JSON property `spdxPackage`
2590
+ # @return [Google::Apis::ContaineranalysisV1beta1::PackageInfoNote]
2591
+ attr_accessor :spdx_package
2592
+
2593
+ # RelationshipNote represents an SPDX Relationship section: https://spdx.github.
2594
+ # io/spdx-spec/7-relationships-between-SPDX-elements/
2595
+ # Corresponds to the JSON property `spdxRelationship`
2596
+ # @return [Google::Apis::ContaineranalysisV1beta1::RelationshipNote]
2597
+ attr_accessor :spdx_relationship
2598
+
2157
2599
  # Output only. The time this note was last updated. This field can be used as a
2158
2600
  # filter in list requests.
2159
2601
  # Corresponds to the JSON property `updateTime`
@@ -2185,7 +2627,11 @@ module Google
2185
2627
  @package = args[:package] if args.key?(:package)
2186
2628
  @related_note_names = args[:related_note_names] if args.key?(:related_note_names)
2187
2629
  @related_url = args[:related_url] if args.key?(:related_url)
2630
+ @sbom = args[:sbom] if args.key?(:sbom)
2188
2631
  @short_description = args[:short_description] if args.key?(:short_description)
2632
+ @spdx_file = args[:spdx_file] if args.key?(:spdx_file)
2633
+ @spdx_package = args[:spdx_package] if args.key?(:spdx_package)
2634
+ @spdx_relationship = args[:spdx_relationship] if args.key?(:spdx_relationship)
2189
2635
  @update_time = args[:update_time] if args.key?(:update_time)
2190
2636
  @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
2191
2637
  end
@@ -2266,6 +2712,30 @@ module Google
2266
2712
  # @return [Google::Apis::ContaineranalysisV1beta1::Resource]
2267
2713
  attr_accessor :resource
2268
2714
 
2715
+ # DocumentOccurrence represents an SPDX Document Creation Information section:
2716
+ # https://spdx.github.io/spdx-spec/2-document-creation-information/
2717
+ # Corresponds to the JSON property `sbom`
2718
+ # @return [Google::Apis::ContaineranalysisV1beta1::DocumentOccurrence]
2719
+ attr_accessor :sbom
2720
+
2721
+ # FileOccurrence represents an SPDX File Information section: https://spdx.
2722
+ # github.io/spdx-spec/4-file-information/
2723
+ # Corresponds to the JSON property `spdxFile`
2724
+ # @return [Google::Apis::ContaineranalysisV1beta1::FileOccurrence]
2725
+ attr_accessor :spdx_file
2726
+
2727
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
2728
+ # spdx.github.io/spdx-spec/3-package-information/
2729
+ # Corresponds to the JSON property `spdxPackage`
2730
+ # @return [Google::Apis::ContaineranalysisV1beta1::PackageInfoOccurrence]
2731
+ attr_accessor :spdx_package
2732
+
2733
+ # RelationshipOccurrence represents an SPDX Relationship section: https://spdx.
2734
+ # github.io/spdx-spec/7-relationships-between-SPDX-elements/
2735
+ # Corresponds to the JSON property `spdxRelationship`
2736
+ # @return [Google::Apis::ContaineranalysisV1beta1::RelationshipOccurrence]
2737
+ attr_accessor :spdx_relationship
2738
+
2269
2739
  # Output only. The time this occurrence was last updated.
2270
2740
  # Corresponds to the JSON property `updateTime`
2271
2741
  # @return [String]
@@ -2295,6 +2765,10 @@ module Google
2295
2765
  @note_name = args[:note_name] if args.key?(:note_name)
2296
2766
  @remediation = args[:remediation] if args.key?(:remediation)
2297
2767
  @resource = args[:resource] if args.key?(:resource)
2768
+ @sbom = args[:sbom] if args.key?(:sbom)
2769
+ @spdx_file = args[:spdx_file] if args.key?(:spdx_file)
2770
+ @spdx_package = args[:spdx_package] if args.key?(:spdx_package)
2771
+ @spdx_relationship = args[:spdx_relationship] if args.key?(:spdx_relationship)
2298
2772
  @update_time = args[:update_time] if args.key?(:update_time)
2299
2773
  @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
2300
2774
  end
@@ -2326,6 +2800,221 @@ module Google
2326
2800
  end
2327
2801
  end
2328
2802
 
2803
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2804
+ # github.io/spdx-spec/3-package-information/
2805
+ class PackageInfoNote
2806
+ include Google::Apis::Core::Hashable
2807
+
2808
+ # Indicates whether the file content of this package has been available for or
2809
+ # subjected to analysis when creating the SPDX document
2810
+ # Corresponds to the JSON property `analyzed`
2811
+ # @return [Boolean]
2812
+ attr_accessor :analyzed
2813
+ alias_method :analyzed?, :analyzed
2814
+
2815
+ # A place for the SPDX data creator to record, at the package level,
2816
+ # acknowledgements that may be needed to be communicated in some contexts
2817
+ # Corresponds to the JSON property `attribution`
2818
+ # @return [String]
2819
+ attr_accessor :attribution
2820
+
2821
+ # Provide an independently reproducible mechanism that permits unique
2822
+ # identification of a specific package that correlates to the data in this SPDX
2823
+ # file
2824
+ # Corresponds to the JSON property `checksum`
2825
+ # @return [String]
2826
+ attr_accessor :checksum
2827
+
2828
+ # Identify the copyright holders of the package, as well as any dates present
2829
+ # Corresponds to the JSON property `copyright`
2830
+ # @return [String]
2831
+ attr_accessor :copyright
2832
+
2833
+ # A more detailed description of the package
2834
+ # Corresponds to the JSON property `detailedDescription`
2835
+ # @return [String]
2836
+ attr_accessor :detailed_description
2837
+
2838
+ # This section identifies the download Universal Resource Locator (URL), or a
2839
+ # specific location within a version control system (VCS) for the package at the
2840
+ # time that the SPDX file was created
2841
+ # Corresponds to the JSON property `downloadLocation`
2842
+ # @return [String]
2843
+ attr_accessor :download_location
2844
+
2845
+ # ExternalRef
2846
+ # Corresponds to the JSON property `externalRefs`
2847
+ # @return [Array<Google::Apis::ContaineranalysisV1beta1::ExternalRef>]
2848
+ attr_accessor :external_refs
2849
+
2850
+ # Contain the license the SPDX file creator has concluded as governing the This
2851
+ # field is to contain a list of all licenses found in the package. The
2852
+ # relationship between licenses (i.e., conjunctive, disjunctive) is not
2853
+ # specified in this field – it is simply a listing of all licenses found
2854
+ # Corresponds to the JSON property `filesLicenseInfo`
2855
+ # @return [Array<String>]
2856
+ attr_accessor :files_license_info
2857
+
2858
+ # Provide a place for the SPDX file creator to record a web site that serves as
2859
+ # the package's home page
2860
+ # Corresponds to the JSON property `homePage`
2861
+ # @return [String]
2862
+ attr_accessor :home_page
2863
+
2864
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2865
+ # 315-declared-license
2866
+ # Corresponds to the JSON property `licenseDeclared`
2867
+ # @return [Google::Apis::ContaineranalysisV1beta1::License]
2868
+ attr_accessor :license_declared
2869
+
2870
+ # If the package identified in the SPDX file originated from a different person
2871
+ # or organization than identified as Package Supplier, this field identifies
2872
+ # from where or whom the package originally came
2873
+ # Corresponds to the JSON property `originator`
2874
+ # @return [String]
2875
+ attr_accessor :originator
2876
+
2877
+ # The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
2878
+ # Corresponds to the JSON property `packageType`
2879
+ # @return [String]
2880
+ attr_accessor :package_type
2881
+
2882
+ # A short description of the package
2883
+ # Corresponds to the JSON property `summaryDescription`
2884
+ # @return [String]
2885
+ attr_accessor :summary_description
2886
+
2887
+ # Identify the actual distribution source for the package/directory identified
2888
+ # in the SPDX file
2889
+ # Corresponds to the JSON property `supplier`
2890
+ # @return [String]
2891
+ attr_accessor :supplier
2892
+
2893
+ # Identify the full name of the package as given by the Package Originator
2894
+ # Corresponds to the JSON property `title`
2895
+ # @return [String]
2896
+ attr_accessor :title
2897
+
2898
+ # This field provides an independently reproducible mechanism identifying
2899
+ # specific contents of a package based on the actual files (except the SPDX file
2900
+ # itself, if it is included in the package) that make up each package and that
2901
+ # correlates to the data in this SPDX file
2902
+ # Corresponds to the JSON property `verificationCode`
2903
+ # @return [String]
2904
+ attr_accessor :verification_code
2905
+
2906
+ # Identify the version of the package
2907
+ # Corresponds to the JSON property `version`
2908
+ # @return [String]
2909
+ attr_accessor :version
2910
+
2911
+ def initialize(**args)
2912
+ update!(**args)
2913
+ end
2914
+
2915
+ # Update properties of this object
2916
+ def update!(**args)
2917
+ @analyzed = args[:analyzed] if args.key?(:analyzed)
2918
+ @attribution = args[:attribution] if args.key?(:attribution)
2919
+ @checksum = args[:checksum] if args.key?(:checksum)
2920
+ @copyright = args[:copyright] if args.key?(:copyright)
2921
+ @detailed_description = args[:detailed_description] if args.key?(:detailed_description)
2922
+ @download_location = args[:download_location] if args.key?(:download_location)
2923
+ @external_refs = args[:external_refs] if args.key?(:external_refs)
2924
+ @files_license_info = args[:files_license_info] if args.key?(:files_license_info)
2925
+ @home_page = args[:home_page] if args.key?(:home_page)
2926
+ @license_declared = args[:license_declared] if args.key?(:license_declared)
2927
+ @originator = args[:originator] if args.key?(:originator)
2928
+ @package_type = args[:package_type] if args.key?(:package_type)
2929
+ @summary_description = args[:summary_description] if args.key?(:summary_description)
2930
+ @supplier = args[:supplier] if args.key?(:supplier)
2931
+ @title = args[:title] if args.key?(:title)
2932
+ @verification_code = args[:verification_code] if args.key?(:verification_code)
2933
+ @version = args[:version] if args.key?(:version)
2934
+ end
2935
+ end
2936
+
2937
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
2938
+ # spdx.github.io/spdx-spec/3-package-information/
2939
+ class PackageInfoOccurrence
2940
+ include Google::Apis::Core::Hashable
2941
+
2942
+ # A place for the SPDX file creator to record any general comments about the
2943
+ # package being described
2944
+ # Corresponds to the JSON property `comment`
2945
+ # @return [String]
2946
+ attr_accessor :comment
2947
+
2948
+ # Provide the actual file name of the package, or path of the directory being
2949
+ # treated as a package
2950
+ # Corresponds to the JSON property `filename`
2951
+ # @return [String]
2952
+ attr_accessor :filename
2953
+
2954
+ # Output only. Provide a place for the SPDX file creator to record a web site
2955
+ # that serves as the package's home page
2956
+ # Corresponds to the JSON property `homePage`
2957
+ # @return [String]
2958
+ attr_accessor :home_page
2959
+
2960
+ # Uniquely identify any element in an SPDX document which may be referenced by
2961
+ # other elements
2962
+ # Corresponds to the JSON property `id`
2963
+ # @return [String]
2964
+ attr_accessor :id
2965
+
2966
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2967
+ # 315-declared-license
2968
+ # Corresponds to the JSON property `licenseConcluded`
2969
+ # @return [Google::Apis::ContaineranalysisV1beta1::License]
2970
+ attr_accessor :license_concluded
2971
+
2972
+ # Output only. The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
2973
+ # Corresponds to the JSON property `packageType`
2974
+ # @return [String]
2975
+ attr_accessor :package_type
2976
+
2977
+ # Provide a place for the SPDX file creator to record any relevant background
2978
+ # information or additional comments about the origin of the package
2979
+ # Corresponds to the JSON property `sourceInfo`
2980
+ # @return [String]
2981
+ attr_accessor :source_info
2982
+
2983
+ # Output only. A short description of the package
2984
+ # Corresponds to the JSON property `summaryDescription`
2985
+ # @return [String]
2986
+ attr_accessor :summary_description
2987
+
2988
+ # Output only. Identify the full name of the package as given by the Package
2989
+ # Originator
2990
+ # Corresponds to the JSON property `title`
2991
+ # @return [String]
2992
+ attr_accessor :title
2993
+
2994
+ # Output only. Identify the version of the package
2995
+ # Corresponds to the JSON property `version`
2996
+ # @return [String]
2997
+ attr_accessor :version
2998
+
2999
+ def initialize(**args)
3000
+ update!(**args)
3001
+ end
3002
+
3003
+ # Update properties of this object
3004
+ def update!(**args)
3005
+ @comment = args[:comment] if args.key?(:comment)
3006
+ @filename = args[:filename] if args.key?(:filename)
3007
+ @home_page = args[:home_page] if args.key?(:home_page)
3008
+ @id = args[:id] if args.key?(:id)
3009
+ @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
3010
+ @package_type = args[:package_type] if args.key?(:package_type)
3011
+ @source_info = args[:source_info] if args.key?(:source_info)
3012
+ @summary_description = args[:summary_description] if args.key?(:summary_description)
3013
+ @title = args[:title] if args.key?(:title)
3014
+ @version = args[:version] if args.key?(:version)
3015
+ end
3016
+ end
3017
+
2329
3018
  # This message wraps a location affected by a vulnerability and its associated
2330
3019
  # fix (if one is available).
2331
3020
  class PackageIssue
@@ -2336,11 +3025,23 @@ module Google
2336
3025
  # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation]
2337
3026
  attr_accessor :affected_location
2338
3027
 
3028
+ # Output only. The distro or language system assigned severity for this
3029
+ # vulnerability when that is available and note provider assigned severity when
3030
+ # it is not available.
3031
+ # Corresponds to the JSON property `effectiveSeverity`
3032
+ # @return [String]
3033
+ attr_accessor :effective_severity
3034
+
2339
3035
  # The location of the vulnerability.
2340
3036
  # Corresponds to the JSON property `fixedLocation`
2341
3037
  # @return [Google::Apis::ContaineranalysisV1beta1::VulnerabilityLocation]
2342
3038
  attr_accessor :fixed_location
2343
3039
 
3040
+ # The type of package (e.g. OS, MAVEN, GO).
3041
+ # Corresponds to the JSON property `packageType`
3042
+ # @return [String]
3043
+ attr_accessor :package_type
3044
+
2344
3045
  # Deprecated, use Details.effective_severity instead The severity (e.g., distro
2345
3046
  # assigned severity) for this vulnerability.
2346
3047
  # Corresponds to the JSON property `severityName`
@@ -2354,7 +3055,9 @@ module Google
2354
3055
  # Update properties of this object
2355
3056
  def update!(**args)
2356
3057
  @affected_location = args[:affected_location] if args.key?(:affected_location)
3058
+ @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
2357
3059
  @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
3060
+ @package_type = args[:package_type] if args.key?(:package_type)
2358
3061
  @severity_name = args[:severity_name] if args.key?(:severity_name)
2359
3062
  end
2360
3063
  end
@@ -2414,37 +3117,42 @@ module Google
2414
3117
 
2415
3118
  # An Identity and Access Management (IAM) policy, which specifies access
2416
3119
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2417
- # A `binding` binds one or more `members` to a single `role`. Members can be
2418
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2419
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2420
- # role or a user-created custom role. For some types of Google Cloud resources,
2421
- # a `binding` can also specify a `condition`, which is a logical expression that
2422
- # allows access to a resource only if the expression evaluates to `true`. A
2423
- # condition can add constraints based on attributes of the request, the resource,
2424
- # or both. To learn which resources support conditions in their IAM policies,
2425
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2426
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2427
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2428
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2429
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2430
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2431
- # title": "expirable access", "description": "Does not grant access after Sep
2432
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2433
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2434
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2435
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2436
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2437
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2438
- # description: Does not grant access after Sep 2020 expression: request.time <
2439
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2440
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2441
- # google.com/iam/docs/).
3120
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
3121
+ # Principals can be user accounts, service accounts, Google groups, and domains (
3122
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
3123
+ # an IAM predefined role or a user-created custom role. For some types of Google
3124
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
3125
+ # logical expression that allows access to a resource only if the expression
3126
+ # evaluates to `true`. A condition can add constraints based on attributes of
3127
+ # the request, the resource, or both. To learn which resources support
3128
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3129
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
3130
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3131
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3132
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3133
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3134
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
3135
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3136
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
3137
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
3138
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
3139
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
3140
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
3141
+ # access description: Does not grant access after Sep 2020 expression: request.
3142
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
3143
+ # a description of IAM and its features, see the [IAM documentation](https://
3144
+ # cloud.google.com/iam/docs/).
2442
3145
  class Policy
2443
3146
  include Google::Apis::Core::Hashable
2444
3147
 
2445
- # Associates a list of `members` to a `role`. Optionally, may specify a `
2446
- # condition` that determines how and when the `bindings` are applied. Each of
2447
- # the `bindings` must contain at least one member.
3148
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
3149
+ # specify a `condition` that determines how and when the `bindings` are applied.
3150
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
3151
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
3152
+ # can be Google groups. Each occurrence of a principal counts towards these
3153
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
3154
+ # example.com`, and not to any other principal, then you can add another 1,450
3155
+ # principals to the `bindings` in the `Policy`.
2448
3156
  # Corresponds to the JSON property `bindings`
2449
3157
  # @return [Array<Google::Apis::ContaineranalysisV1beta1::Binding>]
2450
3158
  attr_accessor :bindings
@@ -2547,6 +3255,70 @@ module Google
2547
3255
  end
2548
3256
  end
2549
3257
 
3258
+ # RelationshipNote represents an SPDX Relationship section: https://spdx.github.
3259
+ # io/spdx-spec/7-relationships-between-SPDX-elements/
3260
+ class RelationshipNote
3261
+ include Google::Apis::Core::Hashable
3262
+
3263
+ # The type of relationship between the source and target SPDX elements
3264
+ # Corresponds to the JSON property `type`
3265
+ # @return [String]
3266
+ attr_accessor :type
3267
+
3268
+ def initialize(**args)
3269
+ update!(**args)
3270
+ end
3271
+
3272
+ # Update properties of this object
3273
+ def update!(**args)
3274
+ @type = args[:type] if args.key?(:type)
3275
+ end
3276
+ end
3277
+
3278
+ # RelationshipOccurrence represents an SPDX Relationship section: https://spdx.
3279
+ # github.io/spdx-spec/7-relationships-between-SPDX-elements/
3280
+ class RelationshipOccurrence
3281
+ include Google::Apis::Core::Hashable
3282
+
3283
+ # A place for the SPDX file creator to record any general comments about the
3284
+ # relationship
3285
+ # Corresponds to the JSON property `comment`
3286
+ # @return [String]
3287
+ attr_accessor :comment
3288
+
3289
+ # Also referred to as SPDXRef-A The source SPDX element (file, package, etc)
3290
+ # Corresponds to the JSON property `source`
3291
+ # @return [String]
3292
+ attr_accessor :source
3293
+
3294
+ # Also referred to as SPDXRef-B The target SPDC element (file, package, etc) In
3295
+ # cases where there are "known unknowns", the use of the keyword NOASSERTION can
3296
+ # be used The keywords NONE can be used to indicate that an SPDX element (
3297
+ # package/file/snippet) has no other elements connected by some relationship to
3298
+ # it
3299
+ # Corresponds to the JSON property `target`
3300
+ # @return [String]
3301
+ attr_accessor :target
3302
+
3303
+ # Output only. The type of relationship between the source and target SPDX
3304
+ # elements
3305
+ # Corresponds to the JSON property `type`
3306
+ # @return [String]
3307
+ attr_accessor :type
3308
+
3309
+ def initialize(**args)
3310
+ update!(**args)
3311
+ end
3312
+
3313
+ # Update properties of this object
3314
+ def update!(**args)
3315
+ @comment = args[:comment] if args.key?(:comment)
3316
+ @source = args[:source] if args.key?(:source)
3317
+ @target = args[:target] if args.key?(:target)
3318
+ @type = args[:type] if args.key?(:type)
3319
+ end
3320
+ end
3321
+
2550
3322
  # A unique identifier for a Cloud Repo.
2551
3323
  class RepoId
2552
3324
  include Google::Apis::Core::Hashable
@@ -2659,31 +3431,31 @@ module Google
2659
3431
 
2660
3432
  # An Identity and Access Management (IAM) policy, which specifies access
2661
3433
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2662
- # A `binding` binds one or more `members` to a single `role`. Members can be
2663
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2664
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2665
- # role or a user-created custom role. For some types of Google Cloud resources,
2666
- # a `binding` can also specify a `condition`, which is a logical expression that
2667
- # allows access to a resource only if the expression evaluates to `true`. A
2668
- # condition can add constraints based on attributes of the request, the resource,
2669
- # or both. To learn which resources support conditions in their IAM policies,
2670
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2671
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2672
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2673
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2674
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2675
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2676
- # title": "expirable access", "description": "Does not grant access after Sep
2677
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2678
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2679
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2680
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2681
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2682
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2683
- # description: Does not grant access after Sep 2020 expression: request.time <
2684
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
2685
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2686
- # google.com/iam/docs/).
3434
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
3435
+ # Principals can be user accounts, service accounts, Google groups, and domains (
3436
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
3437
+ # an IAM predefined role or a user-created custom role. For some types of Google
3438
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
3439
+ # logical expression that allows access to a resource only if the expression
3440
+ # evaluates to `true`. A condition can add constraints based on attributes of
3441
+ # the request, the resource, or both. To learn which resources support
3442
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3443
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
3444
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3445
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3446
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3447
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3448
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
3449
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3450
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
3451
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
3452
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
3453
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
3454
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
3455
+ # access description: Does not grant access after Sep 2020 expression: request.
3456
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
3457
+ # a description of IAM and its features, see the [IAM documentation](https://
3458
+ # cloud.google.com/iam/docs/).
2687
3459
  # Corresponds to the JSON property `policy`
2688
3460
  # @return [Google::Apis::ContaineranalysisV1beta1::Policy]
2689
3461
  attr_accessor :policy
@@ -2962,6 +3734,31 @@ module Google
2962
3734
  end
2963
3735
  end
2964
3736
 
3737
+ # Start and end times for a build execution phase.
3738
+ class TimeSpan
3739
+ include Google::Apis::Core::Hashable
3740
+
3741
+ # End of time span.
3742
+ # Corresponds to the JSON property `endTime`
3743
+ # @return [String]
3744
+ attr_accessor :end_time
3745
+
3746
+ # Start of time span.
3747
+ # Corresponds to the JSON property `startTime`
3748
+ # @return [String]
3749
+ attr_accessor :start_time
3750
+
3751
+ def initialize(**args)
3752
+ update!(**args)
3753
+ end
3754
+
3755
+ # Update properties of this object
3756
+ def update!(**args)
3757
+ @end_time = args[:end_time] if args.key?(:end_time)
3758
+ @start_time = args[:start_time] if args.key?(:start_time)
3759
+ end
3760
+ end
3761
+
2965
3762
  # Version contains structured information about the version of a package.
2966
3763
  class Version
2967
3764
  include Google::Apis::Core::Hashable
@@ -3011,6 +3808,36 @@ module Google
3011
3808
  end
3012
3809
  end
3013
3810
 
3811
+ # Volume describes a Docker container volume which is mounted into build steps
3812
+ # in order to persist files across build step execution.
3813
+ class Volume
3814
+ include Google::Apis::Core::Hashable
3815
+
3816
+ # Name of the volume to mount. Volume names must be unique per build step and
3817
+ # must be valid names for Docker volumes. Each named volume must be used by at
3818
+ # least two build steps.
3819
+ # Corresponds to the JSON property `name`
3820
+ # @return [String]
3821
+ attr_accessor :name
3822
+
3823
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
3824
+ # with other volume paths on the same build step or with certain reserved volume
3825
+ # paths.
3826
+ # Corresponds to the JSON property `path`
3827
+ # @return [String]
3828
+ attr_accessor :path
3829
+
3830
+ def initialize(**args)
3831
+ update!(**args)
3832
+ end
3833
+
3834
+ # Update properties of this object
3835
+ def update!(**args)
3836
+ @name = args[:name] if args.key?(:name)
3837
+ @path = args[:path] if args.key?(:path)
3838
+ end
3839
+ end
3840
+
3014
3841
  # Vulnerability provides metadata about a security vulnerability in a Note.
3015
3842
  class Vulnerability
3016
3843
  include Google::Apis::Core::Hashable