google-apis-containeranalysis_v1 0.1.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -333,11 +333,19 @@ module Google
333
333
  class BuildOccurrence
334
334
  include Google::Apis::Core::Hashable
335
335
 
336
- # In-toto Provenance representation as defined in spec.
336
+ # Deprecated. See InTotoStatement for the replacement. In-toto Provenance
337
+ # representation as defined in spec.
337
338
  # Corresponds to the JSON property `intotoProvenance`
338
339
  # @return [Google::Apis::ContaineranalysisV1::InTotoProvenance]
339
340
  attr_accessor :intoto_provenance
340
341
 
342
+ # Spec defined at https://github.com/in-toto/attestation/tree/main/spec#
343
+ # statement The serialized InTotoStatement will be stored as Envelope.payload.
344
+ # Envelope.payloadType is always "application/vnd.in-toto+json".
345
+ # Corresponds to the JSON property `intotoStatement`
346
+ # @return [Google::Apis::ContaineranalysisV1::InTotoStatement]
347
+ attr_accessor :intoto_statement
348
+
341
349
  # Provenance of a build. Contains all information needed to verify the full
342
350
  # details about the build from source to completion.
343
351
  # Corresponds to the JSON property `provenance`
@@ -363,6 +371,7 @@ module Google
363
371
  # Update properties of this object
364
372
  def update!(**args)
365
373
  @intoto_provenance = args[:intoto_provenance] if args.key?(:intoto_provenance)
374
+ @intoto_statement = args[:intoto_statement] if args.key?(:intoto_statement)
366
375
  @provenance = args[:provenance] if args.key?(:provenance)
367
376
  @provenance_bytes = args[:provenance_bytes] if args.key?(:provenance_bytes)
368
377
  end
@@ -463,149 +472,93 @@ module Google
463
472
  end
464
473
  end
465
474
 
466
- # A step in the build pipeline.
467
- class BuildStep
475
+ #
476
+ class BuilderConfig
468
477
  include Google::Apis::Core::Hashable
469
478
 
470
- # A list of arguments that will be presented to the step when it is started. If
471
- # the image used to run the step's container has an entrypoint, the `args` are
472
- # used as arguments to that entrypoint. If the image does not define an
473
- # entrypoint, the first element in args is used as the entrypoint, and the
474
- # remainder will be used as arguments.
475
- # Corresponds to the JSON property `args`
476
- # @return [Array<String>]
477
- attr_accessor :args
478
-
479
- # Working directory to use when running this step's container. If this value is
480
- # a relative path, it is relative to the build's working directory. If this
481
- # value is absolute, it may be outside the build's working directory, in which
482
- # case the contents of the path may not be persisted across build step
483
- # executions, unless a `volume` for that path is specified. If the build
484
- # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
485
- # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
486
- # Corresponds to the JSON property `dir`
487
- # @return [String]
488
- attr_accessor :dir
489
-
490
- # Entrypoint to be used instead of the build step image's default entrypoint. If
491
- # unset, the image's default entrypoint is used.
492
- # Corresponds to the JSON property `entrypoint`
493
- # @return [String]
494
- attr_accessor :entrypoint
495
-
496
- # A list of environment variable definitions to be used when running a step. The
497
- # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
498
- # given the value "VALUE".
499
- # Corresponds to the JSON property `env`
500
- # @return [Array<String>]
501
- attr_accessor :env
502
-
503
- # Unique identifier for this build step, used in `wait_for` to reference this
504
- # build step as a dependency.
479
+ #
505
480
  # Corresponds to the JSON property `id`
506
481
  # @return [String]
507
482
  attr_accessor :id
508
483
 
509
- # Required. The name of the container image that will run this particular build
510
- # step. If the image is available in the host's Docker daemon's cache, it will
511
- # be run directly. If not, the host will attempt to pull the image first, using
512
- # the builder service account's credentials if necessary. The Docker daemon's
513
- # cache will already have the latest versions of all of the officially supported
514
- # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
515
- # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
516
- # have cached many of the layers for some popular images, like "ubuntu", "debian"
517
- # , but they will be refreshed at the time you attempt to use them. If you built
518
- # an image in a previous build step, it will be stored in the host's Docker
519
- # daemon's cache and is available to use as the name for a later build step.
520
- # Corresponds to the JSON property `name`
521
- # @return [String]
522
- attr_accessor :name
484
+ def initialize(**args)
485
+ update!(**args)
486
+ end
523
487
 
524
- # Start and end times for a build execution phase.
525
- # Corresponds to the JSON property `pullTiming`
526
- # @return [Google::Apis::ContaineranalysisV1::TimeSpan]
527
- attr_accessor :pull_timing
488
+ # Update properties of this object
489
+ def update!(**args)
490
+ @id = args[:id] if args.key?(:id)
491
+ end
492
+ end
528
493
 
529
- # A shell script to be executed in the step. When script is provided, the user
530
- # cannot specify the entrypoint or args.
531
- # Corresponds to the JSON property `script`
494
+ # Common Vulnerability Scoring System. For details, see https://www.first.org/
495
+ # cvss/specification-document This is a message we will try to use for storing
496
+ # multiple versions of CVSS. The intention is that as new versions of CVSS
497
+ # scores get added, we will be able to modify this message rather than adding
498
+ # new protos for each new version of the score.
499
+ class Cvss
500
+ include Google::Apis::Core::Hashable
501
+
502
+ #
503
+ # Corresponds to the JSON property `attackComplexity`
532
504
  # @return [String]
533
- attr_accessor :script
505
+ attr_accessor :attack_complexity
534
506
 
535
- # A list of environment variables which are encrypted using a Cloud Key
536
- # Management Service crypto key. These values must be specified in the build's `
537
- # Secret`.
538
- # Corresponds to the JSON property `secretEnv`
539
- # @return [Array<String>]
540
- attr_accessor :secret_env
507
+ # Base Metrics Represents the intrinsic characteristics of a vulnerability that
508
+ # are constant over time and across user environments.
509
+ # Corresponds to the JSON property `attackVector`
510
+ # @return [String]
511
+ attr_accessor :attack_vector
541
512
 
542
- # Output only. Status of the build step. At this time, build step status is only
543
- # updated on build completion; step status is not updated in real-time as the
544
- # build progresses.
545
- # Corresponds to the JSON property `status`
513
+ #
514
+ # Corresponds to the JSON property `authentication`
546
515
  # @return [String]
547
- attr_accessor :status
516
+ attr_accessor :authentication
548
517
 
549
- # Time limit for executing this build step. If not defined, the step has no time
550
- # limit and will be allowed to continue to run until either it completes or the
551
- # build itself times out.
552
- # Corresponds to the JSON property `timeout`
518
+ #
519
+ # Corresponds to the JSON property `availabilityImpact`
553
520
  # @return [String]
554
- attr_accessor :timeout
521
+ attr_accessor :availability_impact
555
522
 
556
- # Start and end times for a build execution phase.
557
- # Corresponds to the JSON property `timing`
558
- # @return [Google::Apis::ContaineranalysisV1::TimeSpan]
559
- attr_accessor :timing
523
+ # The base score is a function of the base metric scores.
524
+ # Corresponds to the JSON property `baseScore`
525
+ # @return [Float]
526
+ attr_accessor :base_score
560
527
 
561
- # List of volumes to mount into the build step. Each volume is created as an
562
- # empty volume prior to execution of the build step. Upon completion of the
563
- # build, volumes and their contents are discarded. Using a named volume in only
564
- # one step is not valid as it is indicative of a build request with an incorrect
565
- # configuration.
566
- # Corresponds to the JSON property `volumes`
567
- # @return [Array<Google::Apis::ContaineranalysisV1::Volume>]
568
- attr_accessor :volumes
528
+ #
529
+ # Corresponds to the JSON property `confidentialityImpact`
530
+ # @return [String]
531
+ attr_accessor :confidentiality_impact
569
532
 
570
- # The ID(s) of the step(s) that this build step depends on. This build step will
571
- # not start until all the build steps in `wait_for` have completed successfully.
572
- # If `wait_for` is empty, this build step will start when all previous build
573
- # steps in the `Build.Steps` list have completed successfully.
574
- # Corresponds to the JSON property `waitFor`
575
- # @return [Array<String>]
576
- attr_accessor :wait_for
533
+ #
534
+ # Corresponds to the JSON property `exploitabilityScore`
535
+ # @return [Float]
536
+ attr_accessor :exploitability_score
577
537
 
578
- def initialize(**args)
579
- update!(**args)
580
- end
538
+ #
539
+ # Corresponds to the JSON property `impactScore`
540
+ # @return [Float]
541
+ attr_accessor :impact_score
581
542
 
582
- # Update properties of this object
583
- def update!(**args)
584
- @args = args[:args] if args.key?(:args)
585
- @dir = args[:dir] if args.key?(:dir)
586
- @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
587
- @env = args[:env] if args.key?(:env)
588
- @id = args[:id] if args.key?(:id)
589
- @name = args[:name] if args.key?(:name)
590
- @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
591
- @script = args[:script] if args.key?(:script)
592
- @secret_env = args[:secret_env] if args.key?(:secret_env)
593
- @status = args[:status] if args.key?(:status)
594
- @timeout = args[:timeout] if args.key?(:timeout)
595
- @timing = args[:timing] if args.key?(:timing)
596
- @volumes = args[:volumes] if args.key?(:volumes)
597
- @wait_for = args[:wait_for] if args.key?(:wait_for)
598
- end
599
- end
543
+ #
544
+ # Corresponds to the JSON property `integrityImpact`
545
+ # @return [String]
546
+ attr_accessor :integrity_impact
600
547
 
601
- #
602
- class BuilderConfig
603
- include Google::Apis::Core::Hashable
548
+ #
549
+ # Corresponds to the JSON property `privilegesRequired`
550
+ # @return [String]
551
+ attr_accessor :privileges_required
604
552
 
605
553
  #
606
- # Corresponds to the JSON property `id`
554
+ # Corresponds to the JSON property `scope`
607
555
  # @return [String]
608
- attr_accessor :id
556
+ attr_accessor :scope
557
+
558
+ #
559
+ # Corresponds to the JSON property `userInteraction`
560
+ # @return [String]
561
+ attr_accessor :user_interaction
609
562
 
610
563
  def initialize(**args)
611
564
  update!(**args)
@@ -613,7 +566,18 @@ module Google
613
566
 
614
567
  # Update properties of this object
615
568
  def update!(**args)
616
- @id = args[:id] if args.key?(:id)
569
+ @attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
570
+ @attack_vector = args[:attack_vector] if args.key?(:attack_vector)
571
+ @authentication = args[:authentication] if args.key?(:authentication)
572
+ @availability_impact = args[:availability_impact] if args.key?(:availability_impact)
573
+ @base_score = args[:base_score] if args.key?(:base_score)
574
+ @confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
575
+ @exploitability_score = args[:exploitability_score] if args.key?(:exploitability_score)
576
+ @impact_score = args[:impact_score] if args.key?(:impact_score)
577
+ @integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
578
+ @privileges_required = args[:privileges_required] if args.key?(:privileges_required)
579
+ @scope = args[:scope] if args.key?(:scope)
580
+ @user_interaction = args[:user_interaction] if args.key?(:user_interaction)
617
581
  end
618
582
  end
619
583
 
@@ -698,19 +662,6 @@ module Google
698
662
  end
699
663
  end
700
664
 
701
- # The request message for Operations.CancelOperation.
702
- class CancelOperationRequest
703
- include Google::Apis::Core::Hashable
704
-
705
- def initialize(**args)
706
- update!(**args)
707
- end
708
-
709
- # Update properties of this object
710
- def update!(**args)
711
- end
712
- end
713
-
714
665
  # The category to which the update belongs.
715
666
  class Category
716
667
  include Google::Apis::Core::Hashable
@@ -808,27 +759,1239 @@ module Google
808
759
  # @return [String]
809
760
  attr_accessor :dir
810
761
 
811
- # Environment variables set before running this command.
812
- # Corresponds to the JSON property `env`
813
- # @return [Array<String>]
814
- attr_accessor :env
762
+ # Environment variables set before running this command.
763
+ # Corresponds to the JSON property `env`
764
+ # @return [Array<String>]
765
+ attr_accessor :env
766
+
767
+ # Optional unique identifier for this command, used in wait_for to reference
768
+ # this command as a dependency.
769
+ # Corresponds to the JSON property `id`
770
+ # @return [String]
771
+ attr_accessor :id
772
+
773
+ # Required. Name of the command, as presented on the command line, or if the
774
+ # command is packaged as a Docker container, as presented to `docker pull`.
775
+ # Corresponds to the JSON property `name`
776
+ # @return [String]
777
+ attr_accessor :name
778
+
779
+ # The ID(s) of the command(s) that this command depends on.
780
+ # Corresponds to the JSON property `waitFor`
781
+ # @return [Array<String>]
782
+ attr_accessor :wait_for
783
+
784
+ def initialize(**args)
785
+ update!(**args)
786
+ end
787
+
788
+ # Update properties of this object
789
+ def update!(**args)
790
+ @args = args[:args] if args.key?(:args)
791
+ @dir = args[:dir] if args.key?(:dir)
792
+ @env = args[:env] if args.key?(:env)
793
+ @id = args[:id] if args.key?(:id)
794
+ @name = args[:name] if args.key?(:name)
795
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
796
+ end
797
+ end
798
+
799
+ # Indicates that the builder claims certain fields in this message to be
800
+ # complete.
801
+ class Completeness
802
+ include Google::Apis::Core::Hashable
803
+
804
+ # If true, the builder claims that recipe.arguments is complete, meaning that
805
+ # all external inputs are properly captured in the recipe.
806
+ # Corresponds to the JSON property `arguments`
807
+ # @return [Boolean]
808
+ attr_accessor :arguments
809
+ alias_method :arguments?, :arguments
810
+
811
+ # If true, the builder claims that recipe.environment is claimed to be complete.
812
+ # Corresponds to the JSON property `environment`
813
+ # @return [Boolean]
814
+ attr_accessor :environment
815
+ alias_method :environment?, :environment
816
+
817
+ # If true, the builder claims that materials are complete, usually through some
818
+ # controls to prevent network access. Sometimes called "hermetic".
819
+ # Corresponds to the JSON property `materials`
820
+ # @return [Boolean]
821
+ attr_accessor :materials
822
+ alias_method :materials?, :materials
823
+
824
+ def initialize(**args)
825
+ update!(**args)
826
+ end
827
+
828
+ # Update properties of this object
829
+ def update!(**args)
830
+ @arguments = args[:arguments] if args.key?(:arguments)
831
+ @environment = args[:environment] if args.key?(:environment)
832
+ @materials = args[:materials] if args.key?(:materials)
833
+ end
834
+ end
835
+
836
+ #
837
+ class ComplianceNote
838
+ include Google::Apis::Core::Hashable
839
+
840
+ # A compliance check that is a CIS benchmark.
841
+ # Corresponds to the JSON property `cisBenchmark`
842
+ # @return [Google::Apis::ContaineranalysisV1::CisBenchmark]
843
+ attr_accessor :cis_benchmark
844
+
845
+ # A description about this compliance check.
846
+ # Corresponds to the JSON property `description`
847
+ # @return [String]
848
+ attr_accessor :description
849
+
850
+ # A rationale for the existence of this compliance check.
851
+ # Corresponds to the JSON property `rationale`
852
+ # @return [String]
853
+ attr_accessor :rationale
854
+
855
+ # A description of remediation steps if the compliance check fails.
856
+ # Corresponds to the JSON property `remediation`
857
+ # @return [String]
858
+ attr_accessor :remediation
859
+
860
+ # Serialized scan instructions with a predefined format.
861
+ # Corresponds to the JSON property `scanInstructions`
862
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
863
+ # @return [String]
864
+ attr_accessor :scan_instructions
865
+
866
+ # The title that identifies this compliance check.
867
+ # Corresponds to the JSON property `title`
868
+ # @return [String]
869
+ attr_accessor :title
870
+
871
+ # The OS and config versions the benchmark applies to.
872
+ # Corresponds to the JSON property `version`
873
+ # @return [Array<Google::Apis::ContaineranalysisV1::ComplianceVersion>]
874
+ attr_accessor :version
875
+
876
+ def initialize(**args)
877
+ update!(**args)
878
+ end
879
+
880
+ # Update properties of this object
881
+ def update!(**args)
882
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
883
+ @description = args[:description] if args.key?(:description)
884
+ @rationale = args[:rationale] if args.key?(:rationale)
885
+ @remediation = args[:remediation] if args.key?(:remediation)
886
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
887
+ @title = args[:title] if args.key?(:title)
888
+ @version = args[:version] if args.key?(:version)
889
+ end
890
+ end
891
+
892
+ # An indication that the compliance checks in the associated ComplianceNote were
893
+ # not satisfied for particular resources or a specified reason.
894
+ class ComplianceOccurrence
895
+ include Google::Apis::Core::Hashable
896
+
897
+ #
898
+ # Corresponds to the JSON property `nonComplianceReason`
899
+ # @return [String]
900
+ attr_accessor :non_compliance_reason
901
+
902
+ #
903
+ # Corresponds to the JSON property `nonCompliantFiles`
904
+ # @return [Array<Google::Apis::ContaineranalysisV1::NonCompliantFile>]
905
+ attr_accessor :non_compliant_files
906
+
907
+ def initialize(**args)
908
+ update!(**args)
909
+ end
910
+
911
+ # Update properties of this object
912
+ def update!(**args)
913
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
914
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
915
+ end
916
+ end
917
+
918
+ # Describes the CIS benchmark version that is applicable to a given OS and os
919
+ # version.
920
+ class ComplianceVersion
921
+ include Google::Apis::Core::Hashable
922
+
923
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
924
+ # applicable to.
925
+ # Corresponds to the JSON property `cpeUri`
926
+ # @return [String]
927
+ attr_accessor :cpe_uri
928
+
929
+ # The version of the benchmark. This is set to the version of the OS-specific
930
+ # CIS document the benchmark is defined in.
931
+ # Corresponds to the JSON property `version`
932
+ # @return [String]
933
+ attr_accessor :version
934
+
935
+ def initialize(**args)
936
+ update!(**args)
937
+ end
938
+
939
+ # Update properties of this object
940
+ def update!(**args)
941
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
942
+ @version = args[:version] if args.key?(:version)
943
+ end
944
+ end
945
+
946
+ # ApprovalConfig describes configuration for manual approval of a build.
947
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
948
+ include Google::Apis::Core::Hashable
949
+
950
+ # Whether or not approval is needed. If this is set on a build, it will become
951
+ # pending when created, and will need to be explicitly approved to start.
952
+ # Corresponds to the JSON property `approvalRequired`
953
+ # @return [Boolean]
954
+ attr_accessor :approval_required
955
+ alias_method :approval_required?, :approval_required
956
+
957
+ def initialize(**args)
958
+ update!(**args)
959
+ end
960
+
961
+ # Update properties of this object
962
+ def update!(**args)
963
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
964
+ end
965
+ end
966
+
967
+ # ApprovalResult describes the decision and associated metadata of a manual
968
+ # approval of a build.
969
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
970
+ include Google::Apis::Core::Hashable
971
+
972
+ # Output only. The time when the approval decision was made.
973
+ # Corresponds to the JSON property `approvalTime`
974
+ # @return [String]
975
+ attr_accessor :approval_time
976
+
977
+ # Output only. Email of the user that called the ApproveBuild API to approve or
978
+ # reject a build at the time that the API was called.
979
+ # Corresponds to the JSON property `approverAccount`
980
+ # @return [String]
981
+ attr_accessor :approver_account
982
+
983
+ # Optional. An optional comment for this manual approval result.
984
+ # Corresponds to the JSON property `comment`
985
+ # @return [String]
986
+ attr_accessor :comment
987
+
988
+ # Required. The decision of this manual approval.
989
+ # Corresponds to the JSON property `decision`
990
+ # @return [String]
991
+ attr_accessor :decision
992
+
993
+ # Optional. An optional URL tied to this manual approval result. This field is
994
+ # essentially the same as comment, except that it will be rendered by the UI
995
+ # differently. An example use case is a link to an external job that approved
996
+ # this Build.
997
+ # Corresponds to the JSON property `url`
998
+ # @return [String]
999
+ attr_accessor :url
1000
+
1001
+ def initialize(**args)
1002
+ update!(**args)
1003
+ end
1004
+
1005
+ # Update properties of this object
1006
+ def update!(**args)
1007
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
1008
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
1009
+ @comment = args[:comment] if args.key?(:comment)
1010
+ @decision = args[:decision] if args.key?(:decision)
1011
+ @url = args[:url] if args.key?(:url)
1012
+ end
1013
+ end
1014
+
1015
+ # Artifacts produced by a build that should be uploaded upon successful
1016
+ # completion of all build steps.
1017
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
1018
+ include Google::Apis::Core::Hashable
1019
+
1020
+ # A list of images to be pushed upon the successful completion of all build
1021
+ # steps. The images will be pushed using the builder service account's
1022
+ # credentials. The digests of the pushed images will be stored in the Build
1023
+ # resource's results field. If any of the images fail to be pushed, the build is
1024
+ # marked FAILURE.
1025
+ # Corresponds to the JSON property `images`
1026
+ # @return [Array<String>]
1027
+ attr_accessor :images
1028
+
1029
+ # Files in the workspace to upload to Cloud Storage upon successful completion
1030
+ # of all build steps.
1031
+ # Corresponds to the JSON property `objects`
1032
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
1033
+ attr_accessor :objects
1034
+
1035
+ def initialize(**args)
1036
+ update!(**args)
1037
+ end
1038
+
1039
+ # Update properties of this object
1040
+ def update!(**args)
1041
+ @images = args[:images] if args.key?(:images)
1042
+ @objects = args[:objects] if args.key?(:objects)
1043
+ end
1044
+ end
1045
+
1046
+ # Files in the workspace to upload to Cloud Storage upon successful completion
1047
+ # of all build steps.
1048
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
1049
+ include Google::Apis::Core::Hashable
1050
+
1051
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
1052
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
1053
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
1054
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
1055
+ # Corresponds to the JSON property `location`
1056
+ # @return [String]
1057
+ attr_accessor :location
1058
+
1059
+ # Path globs used to match files in the build's workspace.
1060
+ # Corresponds to the JSON property `paths`
1061
+ # @return [Array<String>]
1062
+ attr_accessor :paths
1063
+
1064
+ # Start and end times for a build execution phase.
1065
+ # Corresponds to the JSON property `timing`
1066
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1067
+ attr_accessor :timing
1068
+
1069
+ def initialize(**args)
1070
+ update!(**args)
1071
+ end
1072
+
1073
+ # Update properties of this object
1074
+ def update!(**args)
1075
+ @location = args[:location] if args.key?(:location)
1076
+ @paths = args[:paths] if args.key?(:paths)
1077
+ @timing = args[:timing] if args.key?(:timing)
1078
+ end
1079
+ end
1080
+
1081
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
1082
+ # where to find source code, how to build it (for example, the builder image to
1083
+ # run on the source), and where to store the built artifacts. Fields can include
1084
+ # the following variables, which will be expanded when the build is created: - $
1085
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
1086
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
1087
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
1088
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
1089
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
1090
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
1091
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
1092
+ # COMMIT_SHA.
1093
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
1094
+ include Google::Apis::Core::Hashable
1095
+
1096
+ # BuildApproval describes a build's approval configuration, state, and result.
1097
+ # Corresponds to the JSON property `approval`
1098
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
1099
+ attr_accessor :approval
1100
+
1101
+ # Artifacts produced by a build that should be uploaded upon successful
1102
+ # completion of all build steps.
1103
+ # Corresponds to the JSON property `artifacts`
1104
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
1105
+ attr_accessor :artifacts
1106
+
1107
+ # Secrets and secret environment variables.
1108
+ # Corresponds to the JSON property `availableSecrets`
1109
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
1110
+ attr_accessor :available_secrets
1111
+
1112
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
1113
+ # triggered automatically.
1114
+ # Corresponds to the JSON property `buildTriggerId`
1115
+ # @return [String]
1116
+ attr_accessor :build_trigger_id
1117
+
1118
+ # Output only. Time at which the request to create the build was received.
1119
+ # Corresponds to the JSON property `createTime`
1120
+ # @return [String]
1121
+ attr_accessor :create_time
1122
+
1123
+ # A fatal problem encountered during the execution of the build.
1124
+ # Corresponds to the JSON property `failureInfo`
1125
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
1126
+ attr_accessor :failure_info
1127
+
1128
+ # Output only. Time at which execution of the build was finished. The difference
1129
+ # between finish_time and start_time is the duration of the build's execution.
1130
+ # Corresponds to the JSON property `finishTime`
1131
+ # @return [String]
1132
+ attr_accessor :finish_time
1133
+
1134
+ # Output only. Unique identifier of the build.
1135
+ # Corresponds to the JSON property `id`
1136
+ # @return [String]
1137
+ attr_accessor :id
1138
+
1139
+ # A list of images to be pushed upon the successful completion of all build
1140
+ # steps. The images are pushed using the builder service account's credentials.
1141
+ # The digests of the pushed images will be stored in the `Build` resource's
1142
+ # results field. If any of the images fail to be pushed, the build status is
1143
+ # marked `FAILURE`.
1144
+ # Corresponds to the JSON property `images`
1145
+ # @return [Array<String>]
1146
+ attr_accessor :images
1147
+
1148
+ # Output only. URL to logs for this build in Google Cloud Console.
1149
+ # Corresponds to the JSON property `logUrl`
1150
+ # @return [String]
1151
+ attr_accessor :log_url
1152
+
1153
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
1154
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1155
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
1156
+ # Corresponds to the JSON property `logsBucket`
1157
+ # @return [String]
1158
+ attr_accessor :logs_bucket
1159
+
1160
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
1161
+ # location`/builds/`build``, where `build` is a unique identifier generated by
1162
+ # the service.
1163
+ # Corresponds to the JSON property `name`
1164
+ # @return [String]
1165
+ attr_accessor :name
1166
+
1167
+ # Optional arguments to enable specific features of builds.
1168
+ # Corresponds to the JSON property `options`
1169
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
1170
+ attr_accessor :options
1171
+
1172
+ # Output only. ID of the project.
1173
+ # Corresponds to the JSON property `projectId`
1174
+ # @return [String]
1175
+ attr_accessor :project_id
1176
+
1177
+ # TTL in queue for this build. If provided and the build is enqueued longer than
1178
+ # this value, the build will expire and the build status will be `EXPIRED`. The
1179
+ # TTL starts ticking from create_time.
1180
+ # Corresponds to the JSON property `queueTtl`
1181
+ # @return [String]
1182
+ attr_accessor :queue_ttl
1183
+
1184
+ # Artifacts created by the build pipeline.
1185
+ # Corresponds to the JSON property `results`
1186
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
1187
+ attr_accessor :results
1188
+
1189
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
1190
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
1191
+ # available_secrets` to configure builds to access secrets from Secret Manager.
1192
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
1193
+ # builds/use-secrets
1194
+ # Corresponds to the JSON property `secrets`
1195
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
1196
+ attr_accessor :secrets
1197
+
1198
+ # IAM service account whose credentials will be used at build runtime. Must be
1199
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
1200
+ # be email address or uniqueId of the service account.
1201
+ # Corresponds to the JSON property `serviceAccount`
1202
+ # @return [String]
1203
+ attr_accessor :service_account
1204
+
1205
+ # Location of the source in a supported storage service.
1206
+ # Corresponds to the JSON property `source`
1207
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
1208
+ attr_accessor :source
1209
+
1210
+ # Provenance of the source. Ways to find the original source, or verify that
1211
+ # some source was used for this build.
1212
+ # Corresponds to the JSON property `sourceProvenance`
1213
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
1214
+ attr_accessor :source_provenance
1215
+
1216
+ # Output only. Time at which execution of the build was started.
1217
+ # Corresponds to the JSON property `startTime`
1218
+ # @return [String]
1219
+ attr_accessor :start_time
1220
+
1221
+ # Output only. Status of the build.
1222
+ # Corresponds to the JSON property `status`
1223
+ # @return [String]
1224
+ attr_accessor :status
1225
+
1226
+ # Output only. Customer-readable message about the current status.
1227
+ # Corresponds to the JSON property `statusDetail`
1228
+ # @return [String]
1229
+ attr_accessor :status_detail
1230
+
1231
+ # Required. The operations to be performed on the workspace.
1232
+ # Corresponds to the JSON property `steps`
1233
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
1234
+ attr_accessor :steps
1235
+
1236
+ # Substitutions data for `Build` resource.
1237
+ # Corresponds to the JSON property `substitutions`
1238
+ # @return [Hash<String,String>]
1239
+ attr_accessor :substitutions
1240
+
1241
+ # Tags for annotation of a `Build`. These are not docker tags.
1242
+ # Corresponds to the JSON property `tags`
1243
+ # @return [Array<String>]
1244
+ attr_accessor :tags
1245
+
1246
+ # Amount of time that this build should be allowed to run, to second granularity.
1247
+ # If this amount of time elapses, work on the build will cease and the build
1248
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1249
+ # time is ten minutes.
1250
+ # Corresponds to the JSON property `timeout`
1251
+ # @return [String]
1252
+ attr_accessor :timeout
1253
+
1254
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1255
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1256
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1257
+ # build. If the build does not specify source or images, these keys will not be
1258
+ # included.
1259
+ # Corresponds to the JSON property `timing`
1260
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1261
+ attr_accessor :timing
1262
+
1263
+ # Output only. Non-fatal problems encountered during the execution of the build.
1264
+ # Corresponds to the JSON property `warnings`
1265
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1266
+ attr_accessor :warnings
1267
+
1268
+ def initialize(**args)
1269
+ update!(**args)
1270
+ end
1271
+
1272
+ # Update properties of this object
1273
+ def update!(**args)
1274
+ @approval = args[:approval] if args.key?(:approval)
1275
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1276
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1277
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1278
+ @create_time = args[:create_time] if args.key?(:create_time)
1279
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1280
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1281
+ @id = args[:id] if args.key?(:id)
1282
+ @images = args[:images] if args.key?(:images)
1283
+ @log_url = args[:log_url] if args.key?(:log_url)
1284
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1285
+ @name = args[:name] if args.key?(:name)
1286
+ @options = args[:options] if args.key?(:options)
1287
+ @project_id = args[:project_id] if args.key?(:project_id)
1288
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1289
+ @results = args[:results] if args.key?(:results)
1290
+ @secrets = args[:secrets] if args.key?(:secrets)
1291
+ @service_account = args[:service_account] if args.key?(:service_account)
1292
+ @source = args[:source] if args.key?(:source)
1293
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1294
+ @start_time = args[:start_time] if args.key?(:start_time)
1295
+ @status = args[:status] if args.key?(:status)
1296
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1297
+ @steps = args[:steps] if args.key?(:steps)
1298
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1299
+ @tags = args[:tags] if args.key?(:tags)
1300
+ @timeout = args[:timeout] if args.key?(:timeout)
1301
+ @timing = args[:timing] if args.key?(:timing)
1302
+ @warnings = args[:warnings] if args.key?(:warnings)
1303
+ end
1304
+ end
1305
+
1306
+ # BuildApproval describes a build's approval configuration, state, and result.
1307
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1308
+ include Google::Apis::Core::Hashable
1309
+
1310
+ # ApprovalConfig describes configuration for manual approval of a build.
1311
+ # Corresponds to the JSON property `config`
1312
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1313
+ attr_accessor :config
1314
+
1315
+ # ApprovalResult describes the decision and associated metadata of a manual
1316
+ # approval of a build.
1317
+ # Corresponds to the JSON property `result`
1318
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1319
+ attr_accessor :result
1320
+
1321
+ # Output only. The state of this build's approval.
1322
+ # Corresponds to the JSON property `state`
1323
+ # @return [String]
1324
+ attr_accessor :state
1325
+
1326
+ def initialize(**args)
1327
+ update!(**args)
1328
+ end
1329
+
1330
+ # Update properties of this object
1331
+ def update!(**args)
1332
+ @config = args[:config] if args.key?(:config)
1333
+ @result = args[:result] if args.key?(:result)
1334
+ @state = args[:state] if args.key?(:state)
1335
+ end
1336
+ end
1337
+
1338
+ # A fatal problem encountered during the execution of the build.
1339
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1340
+ include Google::Apis::Core::Hashable
1341
+
1342
+ # Explains the failure issue in more detail using hard-coded text.
1343
+ # Corresponds to the JSON property `detail`
1344
+ # @return [String]
1345
+ attr_accessor :detail
1346
+
1347
+ # The name of the failure.
1348
+ # Corresponds to the JSON property `type`
1349
+ # @return [String]
1350
+ attr_accessor :type
1351
+
1352
+ def initialize(**args)
1353
+ update!(**args)
1354
+ end
1355
+
1356
+ # Update properties of this object
1357
+ def update!(**args)
1358
+ @detail = args[:detail] if args.key?(:detail)
1359
+ @type = args[:type] if args.key?(:type)
1360
+ end
1361
+ end
1362
+
1363
+ # Optional arguments to enable specific features of builds.
1364
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1365
+ include Google::Apis::Core::Hashable
1366
+
1367
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1368
+ # disk free"; some of the space will be used by the operating system and build
1369
+ # utilities. Also note that this is the minimum disk size that will be allocated
1370
+ # for the build -- the build may run with a larger disk than requested. At
1371
+ # present, the maximum disk size is 1000GB; builds that request more than the
1372
+ # maximum are rejected with an error.
1373
+ # Corresponds to the JSON property `diskSizeGb`
1374
+ # @return [Fixnum]
1375
+ attr_accessor :disk_size_gb
1376
+
1377
+ # Option to specify whether or not to apply bash style string operations to the
1378
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1379
+ # overridden in the build configuration file.
1380
+ # Corresponds to the JSON property `dynamicSubstitutions`
1381
+ # @return [Boolean]
1382
+ attr_accessor :dynamic_substitutions
1383
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1384
+
1385
+ # A list of global environment variable definitions that will exist for all
1386
+ # build steps in this build. If a variable is defined in both globally and in a
1387
+ # build step, the variable will use the build step value. The elements are of
1388
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1389
+ # VALUE".
1390
+ # Corresponds to the JSON property `env`
1391
+ # @return [Array<String>]
1392
+ attr_accessor :env
1393
+
1394
+ # Option to define build log streaming behavior to Google Cloud Storage.
1395
+ # Corresponds to the JSON property `logStreamingOption`
1396
+ # @return [String]
1397
+ attr_accessor :log_streaming_option
1398
+
1399
+ # Option to specify the logging mode, which determines if and where build logs
1400
+ # are stored.
1401
+ # Corresponds to the JSON property `logging`
1402
+ # @return [String]
1403
+ attr_accessor :logging
1404
+
1405
+ # Compute Engine machine type on which to run the build.
1406
+ # Corresponds to the JSON property `machineType`
1407
+ # @return [String]
1408
+ attr_accessor :machine_type
1409
+
1410
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1411
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1412
+ # run-builds-in-private-pool) for more information.
1413
+ # Corresponds to the JSON property `pool`
1414
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1415
+ attr_accessor :pool
1416
+
1417
+ # Requested verifiability options.
1418
+ # Corresponds to the JSON property `requestedVerifyOption`
1419
+ # @return [String]
1420
+ attr_accessor :requested_verify_option
1421
+
1422
+ # A list of global environment variables, which are encrypted using a Cloud Key
1423
+ # Management Service crypto key. These values must be specified in the build's `
1424
+ # Secret`. These variables will be available to all build steps in this build.
1425
+ # Corresponds to the JSON property `secretEnv`
1426
+ # @return [Array<String>]
1427
+ attr_accessor :secret_env
1428
+
1429
+ # Requested hash for SourceProvenance.
1430
+ # Corresponds to the JSON property `sourceProvenanceHash`
1431
+ # @return [Array<String>]
1432
+ attr_accessor :source_provenance_hash
1433
+
1434
+ # Option to specify behavior when there is an error in the substitution checks.
1435
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1436
+ # overridden in the build configuration file.
1437
+ # Corresponds to the JSON property `substitutionOption`
1438
+ # @return [String]
1439
+ attr_accessor :substitution_option
1440
+
1441
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1442
+ # an empty volume prior to starting the build process. Upon completion of the
1443
+ # build, volumes and their contents are discarded. Global volume names and paths
1444
+ # cannot conflict with the volumes defined a build step. Using a global volume
1445
+ # in a build with only one step is not valid as it is indicative of a build
1446
+ # request with an incorrect configuration.
1447
+ # Corresponds to the JSON property `volumes`
1448
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1449
+ attr_accessor :volumes
1450
+
1451
+ # This field deprecated; please use `pool.name` instead.
1452
+ # Corresponds to the JSON property `workerPool`
1453
+ # @return [String]
1454
+ attr_accessor :worker_pool
1455
+
1456
+ def initialize(**args)
1457
+ update!(**args)
1458
+ end
1459
+
1460
+ # Update properties of this object
1461
+ def update!(**args)
1462
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1463
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1464
+ @env = args[:env] if args.key?(:env)
1465
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1466
+ @logging = args[:logging] if args.key?(:logging)
1467
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1468
+ @pool = args[:pool] if args.key?(:pool)
1469
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1470
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1471
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1472
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1473
+ @volumes = args[:volumes] if args.key?(:volumes)
1474
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1475
+ end
1476
+ end
1477
+
1478
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1479
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1480
+ # run-builds-in-private-pool) for more information.
1481
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1482
+ include Google::Apis::Core::Hashable
1483
+
1484
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1485
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1486
+ # project`/locations/`location`/workerPools/`workerPoolId`
1487
+ # Corresponds to the JSON property `name`
1488
+ # @return [String]
1489
+ attr_accessor :name
1490
+
1491
+ def initialize(**args)
1492
+ update!(**args)
1493
+ end
1494
+
1495
+ # Update properties of this object
1496
+ def update!(**args)
1497
+ @name = args[:name] if args.key?(:name)
1498
+ end
1499
+ end
1500
+
1501
+ # A step in the build pipeline.
1502
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
1503
+ include Google::Apis::Core::Hashable
1504
+
1505
+ # A list of arguments that will be presented to the step when it is started. If
1506
+ # the image used to run the step's container has an entrypoint, the `args` are
1507
+ # used as arguments to that entrypoint. If the image does not define an
1508
+ # entrypoint, the first element in args is used as the entrypoint, and the
1509
+ # remainder will be used as arguments.
1510
+ # Corresponds to the JSON property `args`
1511
+ # @return [Array<String>]
1512
+ attr_accessor :args
1513
+
1514
+ # Working directory to use when running this step's container. If this value is
1515
+ # a relative path, it is relative to the build's working directory. If this
1516
+ # value is absolute, it may be outside the build's working directory, in which
1517
+ # case the contents of the path may not be persisted across build step
1518
+ # executions, unless a `volume` for that path is specified. If the build
1519
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
1520
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
1521
+ # Corresponds to the JSON property `dir`
1522
+ # @return [String]
1523
+ attr_accessor :dir
1524
+
1525
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
1526
+ # unset, the image's default entrypoint is used.
1527
+ # Corresponds to the JSON property `entrypoint`
1528
+ # @return [String]
1529
+ attr_accessor :entrypoint
1530
+
1531
+ # A list of environment variable definitions to be used when running a step. The
1532
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
1533
+ # given the value "VALUE".
1534
+ # Corresponds to the JSON property `env`
1535
+ # @return [Array<String>]
1536
+ attr_accessor :env
1537
+
1538
+ # Unique identifier for this build step, used in `wait_for` to reference this
1539
+ # build step as a dependency.
1540
+ # Corresponds to the JSON property `id`
1541
+ # @return [String]
1542
+ attr_accessor :id
1543
+
1544
+ # Required. The name of the container image that will run this particular build
1545
+ # step. If the image is available in the host's Docker daemon's cache, it will
1546
+ # be run directly. If not, the host will attempt to pull the image first, using
1547
+ # the builder service account's credentials if necessary. The Docker daemon's
1548
+ # cache will already have the latest versions of all of the officially supported
1549
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
1550
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
1551
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
1552
+ # , but they will be refreshed at the time you attempt to use them. If you built
1553
+ # an image in a previous build step, it will be stored in the host's Docker
1554
+ # daemon's cache and is available to use as the name for a later build step.
1555
+ # Corresponds to the JSON property `name`
1556
+ # @return [String]
1557
+ attr_accessor :name
1558
+
1559
+ # Start and end times for a build execution phase.
1560
+ # Corresponds to the JSON property `pullTiming`
1561
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1562
+ attr_accessor :pull_timing
1563
+
1564
+ # A shell script to be executed in the step. When script is provided, the user
1565
+ # cannot specify the entrypoint or args.
1566
+ # Corresponds to the JSON property `script`
1567
+ # @return [String]
1568
+ attr_accessor :script
1569
+
1570
+ # A list of environment variables which are encrypted using a Cloud Key
1571
+ # Management Service crypto key. These values must be specified in the build's `
1572
+ # Secret`.
1573
+ # Corresponds to the JSON property `secretEnv`
1574
+ # @return [Array<String>]
1575
+ attr_accessor :secret_env
1576
+
1577
+ # Output only. Status of the build step. At this time, build step status is only
1578
+ # updated on build completion; step status is not updated in real-time as the
1579
+ # build progresses.
1580
+ # Corresponds to the JSON property `status`
1581
+ # @return [String]
1582
+ attr_accessor :status
1583
+
1584
+ # Time limit for executing this build step. If not defined, the step has no time
1585
+ # limit and will be allowed to continue to run until either it completes or the
1586
+ # build itself times out.
1587
+ # Corresponds to the JSON property `timeout`
1588
+ # @return [String]
1589
+ attr_accessor :timeout
1590
+
1591
+ # Start and end times for a build execution phase.
1592
+ # Corresponds to the JSON property `timing`
1593
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1594
+ attr_accessor :timing
1595
+
1596
+ # List of volumes to mount into the build step. Each volume is created as an
1597
+ # empty volume prior to execution of the build step. Upon completion of the
1598
+ # build, volumes and their contents are discarded. Using a named volume in only
1599
+ # one step is not valid as it is indicative of a build request with an incorrect
1600
+ # configuration.
1601
+ # Corresponds to the JSON property `volumes`
1602
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1603
+ attr_accessor :volumes
1604
+
1605
+ # The ID(s) of the step(s) that this build step depends on. This build step will
1606
+ # not start until all the build steps in `wait_for` have completed successfully.
1607
+ # If `wait_for` is empty, this build step will start when all previous build
1608
+ # steps in the `Build.Steps` list have completed successfully.
1609
+ # Corresponds to the JSON property `waitFor`
1610
+ # @return [Array<String>]
1611
+ attr_accessor :wait_for
1612
+
1613
+ def initialize(**args)
1614
+ update!(**args)
1615
+ end
1616
+
1617
+ # Update properties of this object
1618
+ def update!(**args)
1619
+ @args = args[:args] if args.key?(:args)
1620
+ @dir = args[:dir] if args.key?(:dir)
1621
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
1622
+ @env = args[:env] if args.key?(:env)
1623
+ @id = args[:id] if args.key?(:id)
1624
+ @name = args[:name] if args.key?(:name)
1625
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
1626
+ @script = args[:script] if args.key?(:script)
1627
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1628
+ @status = args[:status] if args.key?(:status)
1629
+ @timeout = args[:timeout] if args.key?(:timeout)
1630
+ @timing = args[:timing] if args.key?(:timing)
1631
+ @volumes = args[:volumes] if args.key?(:volumes)
1632
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
1633
+ end
1634
+ end
1635
+
1636
+ # A non-fatal problem encountered during the execution of the build.
1637
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1638
+ include Google::Apis::Core::Hashable
1639
+
1640
+ # The priority for this warning.
1641
+ # Corresponds to the JSON property `priority`
1642
+ # @return [String]
1643
+ attr_accessor :priority
1644
+
1645
+ # Explanation of the warning generated.
1646
+ # Corresponds to the JSON property `text`
1647
+ # @return [String]
1648
+ attr_accessor :text
1649
+
1650
+ def initialize(**args)
1651
+ update!(**args)
1652
+ end
1653
+
1654
+ # Update properties of this object
1655
+ def update!(**args)
1656
+ @priority = args[:priority] if args.key?(:priority)
1657
+ @text = args[:text] if args.key?(:text)
1658
+ end
1659
+ end
1660
+
1661
+ # An image built by the pipeline.
1662
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1663
+ include Google::Apis::Core::Hashable
1664
+
1665
+ # Docker Registry 2.0 digest.
1666
+ # Corresponds to the JSON property `digest`
1667
+ # @return [String]
1668
+ attr_accessor :digest
1669
+
1670
+ # Name used to push the container image to Google Container Registry, as
1671
+ # presented to `docker push`.
1672
+ # Corresponds to the JSON property `name`
1673
+ # @return [String]
1674
+ attr_accessor :name
1675
+
1676
+ # Start and end times for a build execution phase.
1677
+ # Corresponds to the JSON property `pushTiming`
1678
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1679
+ attr_accessor :push_timing
1680
+
1681
+ def initialize(**args)
1682
+ update!(**args)
1683
+ end
1684
+
1685
+ # Update properties of this object
1686
+ def update!(**args)
1687
+ @digest = args[:digest] if args.key?(:digest)
1688
+ @name = args[:name] if args.key?(:name)
1689
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1690
+ end
1691
+ end
1692
+
1693
+ # Container message for hashes of byte content of files, used in
1694
+ # SourceProvenance messages to verify integrity of source input to the build.
1695
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1696
+ include Google::Apis::Core::Hashable
1697
+
1698
+ # Collection of file hashes.
1699
+ # Corresponds to the JSON property `fileHash`
1700
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1701
+ attr_accessor :file_hash
1702
+
1703
+ def initialize(**args)
1704
+ update!(**args)
1705
+ end
1706
+
1707
+ # Update properties of this object
1708
+ def update!(**args)
1709
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1710
+ end
1711
+ end
1712
+
1713
+ # Container message for hash values.
1714
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # The type of hash that was performed.
1718
+ # Corresponds to the JSON property `type`
1719
+ # @return [String]
1720
+ attr_accessor :type
1721
+
1722
+ # The hash value.
1723
+ # Corresponds to the JSON property `value`
1724
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1725
+ # @return [String]
1726
+ attr_accessor :value
1727
+
1728
+ def initialize(**args)
1729
+ update!(**args)
1730
+ end
1731
+
1732
+ # Update properties of this object
1733
+ def update!(**args)
1734
+ @type = args[:type] if args.key?(:type)
1735
+ @value = args[:value] if args.key?(:value)
1736
+ end
1737
+ end
1738
+
1739
+ # Pairs a set of secret environment variables mapped to encrypted values with
1740
+ # the Cloud KMS key to use to decrypt the value.
1741
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1742
+ include Google::Apis::Core::Hashable
1743
+
1744
+ # Map of environment variable name to its encrypted value. Secret environment
1745
+ # variables must be unique across all of a build's secrets, and must be used by
1746
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1747
+ # most 100 secret values across all of a build's secrets.
1748
+ # Corresponds to the JSON property `envMap`
1749
+ # @return [Hash<String,String>]
1750
+ attr_accessor :env_map
1751
+
1752
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1753
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1754
+ # Corresponds to the JSON property `kmsKeyName`
1755
+ # @return [String]
1756
+ attr_accessor :kms_key_name
1757
+
1758
+ def initialize(**args)
1759
+ update!(**args)
1760
+ end
1761
+
1762
+ # Update properties of this object
1763
+ def update!(**args)
1764
+ @env_map = args[:env_map] if args.key?(:env_map)
1765
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1766
+ end
1767
+ end
1768
+
1769
+ # Location of the source in a Google Cloud Source Repository.
1770
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1771
+ include Google::Apis::Core::Hashable
1772
+
1773
+ # Regex matching branches to build. The syntax of the regular expressions
1774
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1775
+ # google/re2/wiki/Syntax
1776
+ # Corresponds to the JSON property `branchName`
1777
+ # @return [String]
1778
+ attr_accessor :branch_name
1779
+
1780
+ # Explicit commit SHA to build.
1781
+ # Corresponds to the JSON property `commitSha`
1782
+ # @return [String]
1783
+ attr_accessor :commit_sha
1784
+
1785
+ # Directory, relative to the source root, in which to run the build. This must
1786
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1787
+ # this value is ignored for that step's execution.
1788
+ # Corresponds to the JSON property `dir`
1789
+ # @return [String]
1790
+ attr_accessor :dir
1791
+
1792
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1793
+ # Corresponds to the JSON property `invertRegex`
1794
+ # @return [Boolean]
1795
+ attr_accessor :invert_regex
1796
+ alias_method :invert_regex?, :invert_regex
1797
+
1798
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1799
+ # project ID requesting the build is assumed.
1800
+ # Corresponds to the JSON property `projectId`
1801
+ # @return [String]
1802
+ attr_accessor :project_id
1803
+
1804
+ # Name of the Cloud Source Repository.
1805
+ # Corresponds to the JSON property `repoName`
1806
+ # @return [String]
1807
+ attr_accessor :repo_name
1808
+
1809
+ # Substitutions to use in a triggered build. Should only be used with
1810
+ # RunBuildTrigger
1811
+ # Corresponds to the JSON property `substitutions`
1812
+ # @return [Hash<String,String>]
1813
+ attr_accessor :substitutions
1814
+
1815
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1816
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1817
+ # wiki/Syntax
1818
+ # Corresponds to the JSON property `tagName`
1819
+ # @return [String]
1820
+ attr_accessor :tag_name
1821
+
1822
+ def initialize(**args)
1823
+ update!(**args)
1824
+ end
1825
+
1826
+ # Update properties of this object
1827
+ def update!(**args)
1828
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1829
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1830
+ @dir = args[:dir] if args.key?(:dir)
1831
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1832
+ @project_id = args[:project_id] if args.key?(:project_id)
1833
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1834
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1835
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1836
+ end
1837
+ end
1838
+
1839
+ # Artifacts created by the build pipeline.
1840
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1841
+ include Google::Apis::Core::Hashable
1842
+
1843
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1844
+ # Corresponds to the JSON property `artifactManifest`
1845
+ # @return [String]
1846
+ attr_accessor :artifact_manifest
1847
+
1848
+ # Start and end times for a build execution phase.
1849
+ # Corresponds to the JSON property `artifactTiming`
1850
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1851
+ attr_accessor :artifact_timing
1852
+
1853
+ # List of build step digests, in the order corresponding to build step indices.
1854
+ # Corresponds to the JSON property `buildStepImages`
1855
+ # @return [Array<String>]
1856
+ attr_accessor :build_step_images
1857
+
1858
+ # List of build step outputs, produced by builder images, in the order
1859
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1860
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1861
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1862
+ # Corresponds to the JSON property `buildStepOutputs`
1863
+ # @return [Array<String>]
1864
+ attr_accessor :build_step_outputs
1865
+
1866
+ # Container images that were built as a part of the build.
1867
+ # Corresponds to the JSON property `images`
1868
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1869
+ attr_accessor :images
1870
+
1871
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1872
+ # Corresponds to the JSON property `numArtifacts`
1873
+ # @return [Fixnum]
1874
+ attr_accessor :num_artifacts
1875
+
1876
+ def initialize(**args)
1877
+ update!(**args)
1878
+ end
1879
+
1880
+ # Update properties of this object
1881
+ def update!(**args)
1882
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1883
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1884
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1885
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1886
+ @images = args[:images] if args.key?(:images)
1887
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1888
+ end
1889
+ end
1890
+
1891
+ # Pairs a set of secret environment variables containing encrypted values with
1892
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1893
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1894
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1895
+ # use-encrypted-credentials.
1896
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
1897
+ include Google::Apis::Core::Hashable
1898
+
1899
+ # Cloud KMS key name to use to decrypt these envs.
1900
+ # Corresponds to the JSON property `kmsKeyName`
1901
+ # @return [String]
1902
+ attr_accessor :kms_key_name
1903
+
1904
+ # Map of environment variable name to its encrypted value. Secret environment
1905
+ # variables must be unique across all of a build's secrets, and must be used by
1906
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1907
+ # most 100 secret values across all of a build's secrets.
1908
+ # Corresponds to the JSON property `secretEnv`
1909
+ # @return [Hash<String,String>]
1910
+ attr_accessor :secret_env
1911
+
1912
+ def initialize(**args)
1913
+ update!(**args)
1914
+ end
1915
+
1916
+ # Update properties of this object
1917
+ def update!(**args)
1918
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1919
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1920
+ end
1921
+ end
1922
+
1923
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1924
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
1925
+ include Google::Apis::Core::Hashable
1926
+
1927
+ # Environment variable name to associate with the secret. Secret environment
1928
+ # variables must be unique across all of a build's secrets, and must be used by
1929
+ # at least one build step.
1930
+ # Corresponds to the JSON property `env`
1931
+ # @return [String]
1932
+ attr_accessor :env
1933
+
1934
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1935
+ # Corresponds to the JSON property `versionName`
1936
+ # @return [String]
1937
+ attr_accessor :version_name
1938
+
1939
+ def initialize(**args)
1940
+ update!(**args)
1941
+ end
1942
+
1943
+ # Update properties of this object
1944
+ def update!(**args)
1945
+ @env = args[:env] if args.key?(:env)
1946
+ @version_name = args[:version_name] if args.key?(:version_name)
1947
+ end
1948
+ end
1949
+
1950
+ # Secrets and secret environment variables.
1951
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
1952
+ include Google::Apis::Core::Hashable
1953
+
1954
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1955
+ # Corresponds to the JSON property `inline`
1956
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1957
+ attr_accessor :inline
1958
+
1959
+ # Secrets in Secret Manager and associated secret environment variable.
1960
+ # Corresponds to the JSON property `secretManager`
1961
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1962
+ attr_accessor :secret_manager
1963
+
1964
+ def initialize(**args)
1965
+ update!(**args)
1966
+ end
1967
+
1968
+ # Update properties of this object
1969
+ def update!(**args)
1970
+ @inline = args[:inline] if args.key?(:inline)
1971
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
1972
+ end
1973
+ end
815
1974
 
816
- # Optional unique identifier for this command, used in wait_for to reference
817
- # this command as a dependency.
818
- # Corresponds to the JSON property `id`
819
- # @return [String]
820
- attr_accessor :id
1975
+ # Location of the source in a supported storage service.
1976
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
1977
+ include Google::Apis::Core::Hashable
821
1978
 
822
- # Required. Name of the command, as presented on the command line, or if the
823
- # command is packaged as a Docker container, as presented to `docker pull`.
824
- # Corresponds to the JSON property `name`
825
- # @return [String]
826
- attr_accessor :name
1979
+ # Location of the source in a Google Cloud Source Repository.
1980
+ # Corresponds to the JSON property `repoSource`
1981
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1982
+ attr_accessor :repo_source
827
1983
 
828
- # The ID(s) of the command(s) that this command depends on.
829
- # Corresponds to the JSON property `waitFor`
830
- # @return [Array<String>]
831
- attr_accessor :wait_for
1984
+ # Location of the source in an archive file in Google Cloud Storage.
1985
+ # Corresponds to the JSON property `storageSource`
1986
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1987
+ attr_accessor :storage_source
1988
+
1989
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1990
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1991
+ # builders/tree/master/gcs-fetcher).
1992
+ # Corresponds to the JSON property `storageSourceManifest`
1993
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1994
+ attr_accessor :storage_source_manifest
832
1995
 
833
1996
  def initialize(**args)
834
1997
  update!(**args)
@@ -836,39 +1999,44 @@ module Google
836
1999
 
837
2000
  # Update properties of this object
838
2001
  def update!(**args)
839
- @args = args[:args] if args.key?(:args)
840
- @dir = args[:dir] if args.key?(:dir)
841
- @env = args[:env] if args.key?(:env)
842
- @id = args[:id] if args.key?(:id)
843
- @name = args[:name] if args.key?(:name)
844
- @wait_for = args[:wait_for] if args.key?(:wait_for)
2002
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
2003
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
2004
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
845
2005
  end
846
2006
  end
847
2007
 
848
- # Indicates that the builder claims certain fields in this message to be
849
- # complete.
850
- class Completeness
2008
+ # Provenance of the source. Ways to find the original source, or verify that
2009
+ # some source was used for this build.
2010
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
851
2011
  include Google::Apis::Core::Hashable
852
2012
 
853
- # If true, the builder claims that recipe.arguments is complete, meaning that
854
- # all external inputs are properly captured in the recipe.
855
- # Corresponds to the JSON property `arguments`
856
- # @return [Boolean]
857
- attr_accessor :arguments
858
- alias_method :arguments?, :arguments
2013
+ # Output only. Hash(es) of the build source, which can be used to verify that
2014
+ # the original source integrity was maintained in the build. Note that `
2015
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
2016
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
2017
+ # source and the values contain the hash values for those files. If the build
2018
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
2019
+ # FileHash` will be for the single path to that file.
2020
+ # Corresponds to the JSON property `fileHashes`
2021
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
2022
+ attr_accessor :file_hashes
859
2023
 
860
- # If true, the builder claims that recipe.environment is claimed to be complete.
861
- # Corresponds to the JSON property `environment`
862
- # @return [Boolean]
863
- attr_accessor :environment
864
- alias_method :environment?, :environment
2024
+ # Location of the source in a Google Cloud Source Repository.
2025
+ # Corresponds to the JSON property `resolvedRepoSource`
2026
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
2027
+ attr_accessor :resolved_repo_source
865
2028
 
866
- # If true, the builder claims that materials are complete, usually through some
867
- # controls to prevent network access. Sometimes called "hermetic".
868
- # Corresponds to the JSON property `materials`
869
- # @return [Boolean]
870
- attr_accessor :materials
871
- alias_method :materials?, :materials
2029
+ # Location of the source in an archive file in Google Cloud Storage.
2030
+ # Corresponds to the JSON property `resolvedStorageSource`
2031
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
2032
+ attr_accessor :resolved_storage_source
2033
+
2034
+ # Location of the source manifest in Google Cloud Storage. This feature is in
2035
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
2036
+ # builders/tree/master/gcs-fetcher).
2037
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
2038
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
2039
+ attr_accessor :resolved_storage_source_manifest
872
2040
 
873
2041
  def initialize(**args)
874
2042
  update!(**args)
@@ -876,51 +2044,72 @@ module Google
876
2044
 
877
2045
  # Update properties of this object
878
2046
  def update!(**args)
879
- @arguments = args[:arguments] if args.key?(:arguments)
880
- @environment = args[:environment] if args.key?(:environment)
881
- @materials = args[:materials] if args.key?(:materials)
2047
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
2048
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
2049
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
2050
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
882
2051
  end
883
2052
  end
884
2053
 
885
- #
886
- class ComplianceNote
2054
+ # Location of the source in an archive file in Google Cloud Storage.
2055
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
887
2056
  include Google::Apis::Core::Hashable
888
2057
 
889
- # A compliance check that is a CIS benchmark.
890
- # Corresponds to the JSON property `cisBenchmark`
891
- # @return [Google::Apis::ContaineranalysisV1::CisBenchmark]
892
- attr_accessor :cis_benchmark
893
-
894
- # A description about this compliance check.
895
- # Corresponds to the JSON property `description`
2058
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
2059
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
2060
+ # ).
2061
+ # Corresponds to the JSON property `bucket`
896
2062
  # @return [String]
897
- attr_accessor :description
2063
+ attr_accessor :bucket
898
2064
 
899
- # A rationale for the existence of this compliance check.
900
- # Corresponds to the JSON property `rationale`
901
- # @return [String]
902
- attr_accessor :rationale
2065
+ # Google Cloud Storage generation for the object. If the generation is omitted,
2066
+ # the latest generation will be used.
2067
+ # Corresponds to the JSON property `generation`
2068
+ # @return [Fixnum]
2069
+ attr_accessor :generation
903
2070
 
904
- # A description of remediation steps if the compliance check fails.
905
- # Corresponds to the JSON property `remediation`
2071
+ # Google Cloud Storage object containing the source. This object must be a
2072
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
2073
+ # Corresponds to the JSON property `object`
906
2074
  # @return [String]
907
- attr_accessor :remediation
2075
+ attr_accessor :object
908
2076
 
909
- # Serialized scan instructions with a predefined format.
910
- # Corresponds to the JSON property `scanInstructions`
911
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
912
- # @return [String]
913
- attr_accessor :scan_instructions
2077
+ def initialize(**args)
2078
+ update!(**args)
2079
+ end
914
2080
 
915
- # The title that identifies this compliance check.
916
- # Corresponds to the JSON property `title`
2081
+ # Update properties of this object
2082
+ def update!(**args)
2083
+ @bucket = args[:bucket] if args.key?(:bucket)
2084
+ @generation = args[:generation] if args.key?(:generation)
2085
+ @object = args[:object] if args.key?(:object)
2086
+ end
2087
+ end
2088
+
2089
+ # Location of the source manifest in Google Cloud Storage. This feature is in
2090
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
2091
+ # builders/tree/master/gcs-fetcher).
2092
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
2093
+ include Google::Apis::Core::Hashable
2094
+
2095
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
2096
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
2097
+ # ).
2098
+ # Corresponds to the JSON property `bucket`
917
2099
  # @return [String]
918
- attr_accessor :title
2100
+ attr_accessor :bucket
919
2101
 
920
- # The OS and config versions the benchmark applies to.
921
- # Corresponds to the JSON property `version`
922
- # @return [Array<Google::Apis::ContaineranalysisV1::ComplianceVersion>]
923
- attr_accessor :version
2102
+ # Google Cloud Storage generation for the object. If the generation is omitted,
2103
+ # the latest generation will be used.
2104
+ # Corresponds to the JSON property `generation`
2105
+ # @return [Fixnum]
2106
+ attr_accessor :generation
2107
+
2108
+ # Google Cloud Storage object containing the source manifest. This object must
2109
+ # be a JSON file.
2110
+ # Corresponds to the JSON property `object`
2111
+ # @return [String]
2112
+ attr_accessor :object
924
2113
 
925
2114
  def initialize(**args)
926
2115
  update!(**args)
@@ -928,30 +2117,25 @@ module Google
928
2117
 
929
2118
  # Update properties of this object
930
2119
  def update!(**args)
931
- @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
932
- @description = args[:description] if args.key?(:description)
933
- @rationale = args[:rationale] if args.key?(:rationale)
934
- @remediation = args[:remediation] if args.key?(:remediation)
935
- @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
936
- @title = args[:title] if args.key?(:title)
937
- @version = args[:version] if args.key?(:version)
2120
+ @bucket = args[:bucket] if args.key?(:bucket)
2121
+ @generation = args[:generation] if args.key?(:generation)
2122
+ @object = args[:object] if args.key?(:object)
938
2123
  end
939
2124
  end
940
2125
 
941
- # An indication that the compliance checks in the associated ComplianceNote were
942
- # not satisfied for particular resources or a specified reason.
943
- class ComplianceOccurrence
2126
+ # Start and end times for a build execution phase.
2127
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
944
2128
  include Google::Apis::Core::Hashable
945
2129
 
946
- #
947
- # Corresponds to the JSON property `nonComplianceReason`
2130
+ # End of time span.
2131
+ # Corresponds to the JSON property `endTime`
948
2132
  # @return [String]
949
- attr_accessor :non_compliance_reason
2133
+ attr_accessor :end_time
950
2134
 
951
- #
952
- # Corresponds to the JSON property `nonCompliantFiles`
953
- # @return [Array<Google::Apis::ContaineranalysisV1::NonCompliantFile>]
954
- attr_accessor :non_compliant_files
2135
+ # Start of time span.
2136
+ # Corresponds to the JSON property `startTime`
2137
+ # @return [String]
2138
+ attr_accessor :start_time
955
2139
 
956
2140
  def initialize(**args)
957
2141
  update!(**args)
@@ -959,27 +2143,29 @@ module Google
959
2143
 
960
2144
  # Update properties of this object
961
2145
  def update!(**args)
962
- @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
963
- @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
2146
+ @end_time = args[:end_time] if args.key?(:end_time)
2147
+ @start_time = args[:start_time] if args.key?(:start_time)
964
2148
  end
965
2149
  end
966
2150
 
967
- # Describes the CIS benchmark version that is applicable to a given OS and os
968
- # version.
969
- class ComplianceVersion
2151
+ # Volume describes a Docker container volume which is mounted into build steps
2152
+ # in order to persist files across build step execution.
2153
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
970
2154
  include Google::Apis::Core::Hashable
971
2155
 
972
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
973
- # applicable to.
974
- # Corresponds to the JSON property `cpeUri`
2156
+ # Name of the volume to mount. Volume names must be unique per build step and
2157
+ # must be valid names for Docker volumes. Each named volume must be used by at
2158
+ # least two build steps.
2159
+ # Corresponds to the JSON property `name`
975
2160
  # @return [String]
976
- attr_accessor :cpe_uri
2161
+ attr_accessor :name
977
2162
 
978
- # The version of the benchmark. This is set to the version of the OS-specific
979
- # CIS document the benchmark is defined in.
980
- # Corresponds to the JSON property `version`
2163
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
2164
+ # with other volume paths on the same build step or with certain reserved volume
2165
+ # paths.
2166
+ # Corresponds to the JSON property `path`
981
2167
  # @return [String]
982
- attr_accessor :version
2168
+ attr_accessor :path
983
2169
 
984
2170
  def initialize(**args)
985
2171
  update!(**args)
@@ -987,8 +2173,8 @@ module Google
987
2173
 
988
2174
  # Update properties of this object
989
2175
  def update!(**args)
990
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
991
- @version = args[:version] if args.key?(:version)
2176
+ @name = args[:name] if args.key?(:name)
2177
+ @path = args[:path] if args.key?(:path)
992
2178
  end
993
2179
  end
994
2180
 
@@ -1016,7 +2202,8 @@ module Google
1016
2202
  end
1017
2203
  end
1018
2204
 
1019
- #
2205
+ # Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at
2206
+ # the top level of the Occurrence.
1020
2207
  class DsseAttestationOccurrence
1021
2208
  include Google::Apis::Core::Hashable
1022
2209
 
@@ -1292,6 +2479,12 @@ module Google
1292
2479
  # @return [Google::Apis::ContaineranalysisV1::Status]
1293
2480
  attr_accessor :analysis_status_error
1294
2481
 
2482
+ # Output only. The time occurrences related to this discovery occurrence were
2483
+ # archived.
2484
+ # Corresponds to the JSON property `archiveTime`
2485
+ # @return [String]
2486
+ attr_accessor :archive_time
2487
+
1295
2488
  # Whether the resource is continuously analyzed.
1296
2489
  # Corresponds to the JSON property `continuousAnalysis`
1297
2490
  # @return [String]
@@ -1315,6 +2508,7 @@ module Google
1315
2508
  def update!(**args)
1316
2509
  @analysis_status = args[:analysis_status] if args.key?(:analysis_status)
1317
2510
  @analysis_status_error = args[:analysis_status_error] if args.key?(:analysis_status_error)
2511
+ @archive_time = args[:archive_time] if args.key?(:archive_time)
1318
2512
  @continuous_analysis = args[:continuous_analysis] if args.key?(:continuous_analysis)
1319
2513
  @cpe = args[:cpe] if args.key?(:cpe)
1320
2514
  @last_scan_time = args[:last_scan_time] if args.key?(:last_scan_time)
@@ -1656,13 +2850,16 @@ module Google
1656
2850
  class GetPolicyOptions
1657
2851
  include Google::Apis::Core::Hashable
1658
2852
 
1659
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1660
- # 3. Requests specifying an invalid value will be rejected. Requests for
1661
- # policies with any conditional bindings must specify version 3. Policies
1662
- # without any conditional bindings may specify any valid value or leave the
1663
- # field unset. To learn which resources support conditions in their IAM policies,
1664
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1665
- # resource-policies).
2853
+ # Optional. The maximum policy version that will be used to format the policy.
2854
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2855
+ # rejected. Requests for policies with any conditional role bindings must
2856
+ # specify version 3. Policies with no conditional role bindings may specify any
2857
+ # valid value or leave the field unset. The policy in the response might use the
2858
+ # policy version that you specified, or it might use a lower policy version. For
2859
+ # example, if you specify version 3, but the policy has no conditional role
2860
+ # bindings, the response uses version 1. To learn which resources support
2861
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2862
+ # google.com/iam/help/conditions/resource-policies).
1666
2863
  # Corresponds to the JSON property `requestedPolicyVersion`
1667
2864
  # @return [Fixnum]
1668
2865
  attr_accessor :requested_policy_version
@@ -1921,7 +3118,12 @@ module Google
1921
3118
  class InTotoStatement
1922
3119
  include Google::Apis::Core::Hashable
1923
3120
 
1924
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3121
+ # Always `https://in-toto.io/Statement/v0.1`.
3122
+ # Corresponds to the JSON property `_type`
3123
+ # @return [String]
3124
+ attr_accessor :_type
3125
+
3126
+ # `https://slsa.dev/provenance/v0.1` for SlsaProvenance.
1925
3127
  # Corresponds to the JSON property `predicateType`
1926
3128
  # @return [String]
1927
3129
  attr_accessor :predicate_type
@@ -1931,26 +3133,27 @@ module Google
1931
3133
  # @return [Google::Apis::ContaineranalysisV1::InTotoProvenance]
1932
3134
  attr_accessor :provenance
1933
3135
 
3136
+ #
3137
+ # Corresponds to the JSON property `slsaProvenance`
3138
+ # @return [Google::Apis::ContaineranalysisV1::SlsaProvenance]
3139
+ attr_accessor :slsa_provenance
3140
+
1934
3141
  #
1935
3142
  # Corresponds to the JSON property `subject`
1936
3143
  # @return [Array<Google::Apis::ContaineranalysisV1::Subject>]
1937
3144
  attr_accessor :subject
1938
3145
 
1939
- # Always "https://in-toto.io/Statement/v0.1".
1940
- # Corresponds to the JSON property `type`
1941
- # @return [String]
1942
- attr_accessor :type
1943
-
1944
3146
  def initialize(**args)
1945
3147
  update!(**args)
1946
3148
  end
1947
3149
 
1948
3150
  # Update properties of this object
1949
3151
  def update!(**args)
3152
+ @_type = args[:_type] if args.key?(:_type)
1950
3153
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
1951
3154
  @provenance = args[:provenance] if args.key?(:provenance)
3155
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
1952
3156
  @subject = args[:subject] if args.key?(:subject)
1953
- @type = args[:type] if args.key?(:type)
1954
3157
  end
1955
3158
  end
1956
3159
 
@@ -2104,31 +3307,6 @@ module Google
2104
3307
  end
2105
3308
  end
2106
3309
 
2107
- # The response message for Operations.ListOperations.
2108
- class ListOperationsResponse
2109
- include Google::Apis::Core::Hashable
2110
-
2111
- # The standard List next-page token.
2112
- # Corresponds to the JSON property `nextPageToken`
2113
- # @return [String]
2114
- attr_accessor :next_page_token
2115
-
2116
- # A list of operations that matches the specified filter in the request.
2117
- # Corresponds to the JSON property `operations`
2118
- # @return [Array<Google::Apis::ContaineranalysisV1::Operation>]
2119
- attr_accessor :operations
2120
-
2121
- def initialize(**args)
2122
- update!(**args)
2123
- end
2124
-
2125
- # Update properties of this object
2126
- def update!(**args)
2127
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2128
- @operations = args[:operations] if args.key?(:operations)
2129
- end
2130
- end
2131
-
2132
3310
  # An occurrence of a particular package installation found within a system's
2133
3311
  # filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.
2134
3312
  class Location
@@ -2162,6 +3340,31 @@ module Google
2162
3340
  end
2163
3341
  end
2164
3342
 
3343
+ #
3344
+ class Material
3345
+ include Google::Apis::Core::Hashable
3346
+
3347
+ #
3348
+ # Corresponds to the JSON property `digest`
3349
+ # @return [Hash<String,String>]
3350
+ attr_accessor :digest
3351
+
3352
+ #
3353
+ # Corresponds to the JSON property `uri`
3354
+ # @return [String]
3355
+ attr_accessor :uri
3356
+
3357
+ def initialize(**args)
3358
+ update!(**args)
3359
+ end
3360
+
3361
+ # Update properties of this object
3362
+ def update!(**args)
3363
+ @digest = args[:digest] if args.key?(:digest)
3364
+ @uri = args[:uri] if args.key?(:uri)
3365
+ end
3366
+ end
3367
+
2165
3368
  # Other properties of the build.
2166
3369
  class Metadata
2167
3370
  include Google::Apis::Core::Hashable
@@ -2210,7 +3413,10 @@ module Google
2210
3413
  end
2211
3414
  end
2212
3415
 
2213
- # Details about files that caused a compliance check to fail.
3416
+ # Details about files that caused a compliance check to fail. display_command is
3417
+ # a single command that can be used to display a list of non compliant files.
3418
+ # When there is no such command, we can also iterate a list of non compliant
3419
+ # file using 'path'.
2214
3420
  class NonCompliantFile
2215
3421
  include Google::Apis::Core::Hashable
2216
3422
 
@@ -2219,9 +3425,7 @@ module Google
2219
3425
  # @return [String]
2220
3426
  attr_accessor :display_command
2221
3427
 
2222
- # display_command is a single command that can be used to display a list of non
2223
- # compliant files. When there is no such command, we can also iterate a list of
2224
- # non compliant file using 'path'. Empty if `display_command` is set.
3428
+ # Empty if `display_command` is set.
2225
3429
  # Corresponds to the JSON property `path`
2226
3430
  # @return [String]
2227
3431
  attr_accessor :path
@@ -2431,7 +3635,8 @@ module Google
2431
3635
  # @return [Google::Apis::ContaineranalysisV1::DiscoveryOccurrence]
2432
3636
  attr_accessor :discovery
2433
3637
 
2434
- # Describes an attestation of an artifact using dsse.
3638
+ # Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at
3639
+ # the top level of the Occurrence.
2435
3640
  # Corresponds to the JSON property `dsseAttestation`
2436
3641
  # @return [Google::Apis::ContaineranalysisV1::DsseAttestationOccurrence]
2437
3642
  attr_accessor :dsse_attestation
@@ -2512,83 +3717,21 @@ module Google
2512
3717
  @attestation = args[:attestation] if args.key?(:attestation)
2513
3718
  @build = args[:build] if args.key?(:build)
2514
3719
  @compliance = args[:compliance] if args.key?(:compliance)
2515
- @create_time = args[:create_time] if args.key?(:create_time)
2516
- @deployment = args[:deployment] if args.key?(:deployment)
2517
- @discovery = args[:discovery] if args.key?(:discovery)
2518
- @dsse_attestation = args[:dsse_attestation] if args.key?(:dsse_attestation)
2519
- @envelope = args[:envelope] if args.key?(:envelope)
2520
- @image = args[:image] if args.key?(:image)
2521
- @kind = args[:kind] if args.key?(:kind)
2522
- @name = args[:name] if args.key?(:name)
2523
- @note_name = args[:note_name] if args.key?(:note_name)
2524
- @package = args[:package] if args.key?(:package)
2525
- @remediation = args[:remediation] if args.key?(:remediation)
2526
- @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
2527
- @update_time = args[:update_time] if args.key?(:update_time)
2528
- @upgrade = args[:upgrade] if args.key?(:upgrade)
2529
- @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
2530
- end
2531
- end
2532
-
2533
- # This resource represents a long-running operation that is the result of a
2534
- # network API call.
2535
- class Operation
2536
- include Google::Apis::Core::Hashable
2537
-
2538
- # If the value is `false`, it means the operation is still in progress. If `true`
2539
- # , the operation is completed, and either `error` or `response` is available.
2540
- # Corresponds to the JSON property `done`
2541
- # @return [Boolean]
2542
- attr_accessor :done
2543
- alias_method :done?, :done
2544
-
2545
- # The `Status` type defines a logical error model that is suitable for different
2546
- # programming environments, including REST APIs and RPC APIs. It is used by [
2547
- # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2548
- # data: error code, error message, and error details. You can find out more
2549
- # about this error model and how to work with it in the [API Design Guide](https:
2550
- # //cloud.google.com/apis/design/errors).
2551
- # Corresponds to the JSON property `error`
2552
- # @return [Google::Apis::ContaineranalysisV1::Status]
2553
- attr_accessor :error
2554
-
2555
- # Service-specific metadata associated with the operation. It typically contains
2556
- # progress information and common metadata such as create time. Some services
2557
- # might not provide such metadata. Any method that returns a long-running
2558
- # operation should document the metadata type, if any.
2559
- # Corresponds to the JSON property `metadata`
2560
- # @return [Hash<String,Object>]
2561
- attr_accessor :metadata
2562
-
2563
- # The server-assigned name, which is only unique within the same service that
2564
- # originally returns it. If you use the default HTTP mapping, the `name` should
2565
- # be a resource name ending with `operations/`unique_id``.
2566
- # Corresponds to the JSON property `name`
2567
- # @return [String]
2568
- attr_accessor :name
2569
-
2570
- # The normal response of the operation in case of success. If the original
2571
- # method returns no data on success, such as `Delete`, the response is `google.
2572
- # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
2573
- # the response should be the resource. For other methods, the response should
2574
- # have the type `XxxResponse`, where `Xxx` is the original method name. For
2575
- # example, if the original method name is `TakeSnapshot()`, the inferred
2576
- # response type is `TakeSnapshotResponse`.
2577
- # Corresponds to the JSON property `response`
2578
- # @return [Hash<String,Object>]
2579
- attr_accessor :response
2580
-
2581
- def initialize(**args)
2582
- update!(**args)
2583
- end
2584
-
2585
- # Update properties of this object
2586
- def update!(**args)
2587
- @done = args[:done] if args.key?(:done)
2588
- @error = args[:error] if args.key?(:error)
2589
- @metadata = args[:metadata] if args.key?(:metadata)
3720
+ @create_time = args[:create_time] if args.key?(:create_time)
3721
+ @deployment = args[:deployment] if args.key?(:deployment)
3722
+ @discovery = args[:discovery] if args.key?(:discovery)
3723
+ @dsse_attestation = args[:dsse_attestation] if args.key?(:dsse_attestation)
3724
+ @envelope = args[:envelope] if args.key?(:envelope)
3725
+ @image = args[:image] if args.key?(:image)
3726
+ @kind = args[:kind] if args.key?(:kind)
2590
3727
  @name = args[:name] if args.key?(:name)
2591
- @response = args[:response] if args.key?(:response)
3728
+ @note_name = args[:note_name] if args.key?(:note_name)
3729
+ @package = args[:package] if args.key?(:package)
3730
+ @remediation = args[:remediation] if args.key?(:remediation)
3731
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
3732
+ @update_time = args[:update_time] if args.key?(:update_time)
3733
+ @upgrade = args[:upgrade] if args.key?(:upgrade)
3734
+ @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
2592
3735
  end
2593
3736
  end
2594
3737
 
@@ -3045,6 +4188,210 @@ module Google
3045
4188
  end
3046
4189
  end
3047
4190
 
4191
+ #
4192
+ class SlsaBuilder
4193
+ include Google::Apis::Core::Hashable
4194
+
4195
+ #
4196
+ # Corresponds to the JSON property `id`
4197
+ # @return [String]
4198
+ attr_accessor :id
4199
+
4200
+ def initialize(**args)
4201
+ update!(**args)
4202
+ end
4203
+
4204
+ # Update properties of this object
4205
+ def update!(**args)
4206
+ @id = args[:id] if args.key?(:id)
4207
+ end
4208
+ end
4209
+
4210
+ # Indicates that the builder claims certain fields in this message to be
4211
+ # complete.
4212
+ class SlsaCompleteness
4213
+ include Google::Apis::Core::Hashable
4214
+
4215
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4216
+ # all external inputs are properly captured in the recipe.
4217
+ # Corresponds to the JSON property `arguments`
4218
+ # @return [Boolean]
4219
+ attr_accessor :arguments
4220
+ alias_method :arguments?, :arguments
4221
+
4222
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4223
+ # Corresponds to the JSON property `environment`
4224
+ # @return [Boolean]
4225
+ attr_accessor :environment
4226
+ alias_method :environment?, :environment
4227
+
4228
+ # If true, the builder claims that materials are complete, usually through some
4229
+ # controls to prevent network access. Sometimes called "hermetic".
4230
+ # Corresponds to the JSON property `materials`
4231
+ # @return [Boolean]
4232
+ attr_accessor :materials
4233
+ alias_method :materials?, :materials
4234
+
4235
+ def initialize(**args)
4236
+ update!(**args)
4237
+ end
4238
+
4239
+ # Update properties of this object
4240
+ def update!(**args)
4241
+ @arguments = args[:arguments] if args.key?(:arguments)
4242
+ @environment = args[:environment] if args.key?(:environment)
4243
+ @materials = args[:materials] if args.key?(:materials)
4244
+ end
4245
+ end
4246
+
4247
+ # Other properties of the build.
4248
+ class SlsaMetadata
4249
+ include Google::Apis::Core::Hashable
4250
+
4251
+ # The timestamp of when the build completed.
4252
+ # Corresponds to the JSON property `buildFinishedOn`
4253
+ # @return [String]
4254
+ attr_accessor :build_finished_on
4255
+
4256
+ # Identifies the particular build invocation, which can be useful for finding
4257
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4258
+ # per in-toto Provenance spec.
4259
+ # Corresponds to the JSON property `buildInvocationId`
4260
+ # @return [String]
4261
+ attr_accessor :build_invocation_id
4262
+
4263
+ # The timestamp of when the build started.
4264
+ # Corresponds to the JSON property `buildStartedOn`
4265
+ # @return [String]
4266
+ attr_accessor :build_started_on
4267
+
4268
+ # Indicates that the builder claims certain fields in this message to be
4269
+ # complete.
4270
+ # Corresponds to the JSON property `completeness`
4271
+ # @return [Google::Apis::ContaineranalysisV1::SlsaCompleteness]
4272
+ attr_accessor :completeness
4273
+
4274
+ # If true, the builder claims that running the recipe on materials will produce
4275
+ # bit-for-bit identical output.
4276
+ # Corresponds to the JSON property `reproducible`
4277
+ # @return [Boolean]
4278
+ attr_accessor :reproducible
4279
+ alias_method :reproducible?, :reproducible
4280
+
4281
+ def initialize(**args)
4282
+ update!(**args)
4283
+ end
4284
+
4285
+ # Update properties of this object
4286
+ def update!(**args)
4287
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4288
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4289
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4290
+ @completeness = args[:completeness] if args.key?(:completeness)
4291
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4292
+ end
4293
+ end
4294
+
4295
+ #
4296
+ class SlsaProvenance
4297
+ include Google::Apis::Core::Hashable
4298
+
4299
+ # required
4300
+ # Corresponds to the JSON property `builder`
4301
+ # @return [Google::Apis::ContaineranalysisV1::SlsaBuilder]
4302
+ attr_accessor :builder
4303
+
4304
+ # The collection of artifacts that influenced the build including sources,
4305
+ # dependencies, build tools, base images, and so on. This is considered to be
4306
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4307
+ # equivalent to empty.
4308
+ # Corresponds to the JSON property `materials`
4309
+ # @return [Array<Google::Apis::ContaineranalysisV1::Material>]
4310
+ attr_accessor :materials
4311
+
4312
+ # Other properties of the build.
4313
+ # Corresponds to the JSON property `metadata`
4314
+ # @return [Google::Apis::ContaineranalysisV1::SlsaMetadata]
4315
+ attr_accessor :metadata
4316
+
4317
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4318
+ # corresponds to one step in the recipe.
4319
+ # Corresponds to the JSON property `recipe`
4320
+ # @return [Google::Apis::ContaineranalysisV1::SlsaRecipe]
4321
+ attr_accessor :recipe
4322
+
4323
+ def initialize(**args)
4324
+ update!(**args)
4325
+ end
4326
+
4327
+ # Update properties of this object
4328
+ def update!(**args)
4329
+ @builder = args[:builder] if args.key?(:builder)
4330
+ @materials = args[:materials] if args.key?(:materials)
4331
+ @metadata = args[:metadata] if args.key?(:metadata)
4332
+ @recipe = args[:recipe] if args.key?(:recipe)
4333
+ end
4334
+ end
4335
+
4336
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4337
+ # corresponds to one step in the recipe.
4338
+ class SlsaRecipe
4339
+ include Google::Apis::Core::Hashable
4340
+
4341
+ # Collection of all external inputs that influenced the build on top of recipe.
4342
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4343
+ # make", then this might be the flags passed to make aside from the target,
4344
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4345
+ # structure may be different.
4346
+ # Corresponds to the JSON property `arguments`
4347
+ # @return [Hash<String,Object>]
4348
+ attr_accessor :arguments
4349
+
4350
+ # Index in materials containing the recipe steps that are not implied by recipe.
4351
+ # type. For example, if the recipe type were "make", then this would point to
4352
+ # the source containing the Makefile, not the make program itself. Set to -1 if
4353
+ # the recipe doesn't come from a material, as zero is default unset value for
4354
+ # int64.
4355
+ # Corresponds to the JSON property `definedInMaterial`
4356
+ # @return [Fixnum]
4357
+ attr_accessor :defined_in_material
4358
+
4359
+ # String identifying the entry point into the build. This is often a path to a
4360
+ # configuration file and/or a target label within that file. The syntax and
4361
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
4362
+ # , then this would reference the directory in which to run make as well as
4363
+ # which target to use.
4364
+ # Corresponds to the JSON property `entryPoint`
4365
+ # @return [String]
4366
+ attr_accessor :entry_point
4367
+
4368
+ # Any other builder-controlled inputs necessary for correctly evaluating the
4369
+ # recipe. Usually only needed for reproducing the build but not evaluated as
4370
+ # part of policy. Depending on the recipe Type, the structure may be different.
4371
+ # Corresponds to the JSON property `environment`
4372
+ # @return [Hash<String,Object>]
4373
+ attr_accessor :environment
4374
+
4375
+ # URI indicating what type of recipe was performed. It determines the meaning of
4376
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
4377
+ # Corresponds to the JSON property `type`
4378
+ # @return [String]
4379
+ attr_accessor :type
4380
+
4381
+ def initialize(**args)
4382
+ update!(**args)
4383
+ end
4384
+
4385
+ # Update properties of this object
4386
+ def update!(**args)
4387
+ @arguments = args[:arguments] if args.key?(:arguments)
4388
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
4389
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
4390
+ @environment = args[:environment] if args.key?(:environment)
4391
+ @type = args[:type] if args.key?(:type)
4392
+ end
4393
+ end
4394
+
3048
4395
  # Source describes the location of the source used for the build.
3049
4396
  class Source
3050
4397
  include Google::Apis::Core::Hashable
@@ -3173,7 +4520,8 @@ module Google
3173
4520
  class Subject
3174
4521
  include Google::Apis::Core::Hashable
3175
4522
 
3176
- # "": ""
4523
+ # `"": ""` Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
4524
+ # attestation/blob/main/spec/field_types.md#DigestSet
3177
4525
  # Corresponds to the JSON property `digest`
3178
4526
  # @return [Hash<String,String>]
3179
4527
  attr_accessor :digest
@@ -3234,31 +4582,6 @@ module Google
3234
4582
  end
3235
4583
  end
3236
4584
 
3237
- # Start and end times for a build execution phase.
3238
- class TimeSpan
3239
- include Google::Apis::Core::Hashable
3240
-
3241
- # End of time span.
3242
- # Corresponds to the JSON property `endTime`
3243
- # @return [String]
3244
- attr_accessor :end_time
3245
-
3246
- # Start of time span.
3247
- # Corresponds to the JSON property `startTime`
3248
- # @return [String]
3249
- attr_accessor :start_time
3250
-
3251
- def initialize(**args)
3252
- update!(**args)
3253
- end
3254
-
3255
- # Update properties of this object
3256
- def update!(**args)
3257
- @end_time = args[:end_time] if args.key?(:end_time)
3258
- @start_time = args[:start_time] if args.key?(:start_time)
3259
- end
3260
- end
3261
-
3262
4585
  # The Upgrade Distribution represents metadata about the Upgrade for each
3263
4586
  # operating system (CPE). Some distributions have additional metadata around
3264
4587
  # updates, classifying them into various categories and severities.
@@ -3447,36 +4770,6 @@ module Google
3447
4770
  end
3448
4771
  end
3449
4772
 
3450
- # Volume describes a Docker container volume which is mounted into build steps
3451
- # in order to persist files across build step execution.
3452
- class Volume
3453
- include Google::Apis::Core::Hashable
3454
-
3455
- # Name of the volume to mount. Volume names must be unique per build step and
3456
- # must be valid names for Docker volumes. Each named volume must be used by at
3457
- # least two build steps.
3458
- # Corresponds to the JSON property `name`
3459
- # @return [String]
3460
- attr_accessor :name
3461
-
3462
- # Path at which to mount the volume. Paths must be absolute and cannot conflict
3463
- # with other volume paths on the same build step or with certain reserved volume
3464
- # paths.
3465
- # Corresponds to the JSON property `path`
3466
- # @return [String]
3467
- attr_accessor :path
3468
-
3469
- def initialize(**args)
3470
- update!(**args)
3471
- end
3472
-
3473
- # Update properties of this object
3474
- def update!(**args)
3475
- @name = args[:name] if args.key?(:name)
3476
- @path = args[:path] if args.key?(:path)
3477
- end
3478
- end
3479
-
3480
4773
  # A security vulnerability that can be found in resources.
3481
4774
  class VulnerabilityNote
3482
4775
  include Google::Apis::Core::Hashable
@@ -3543,6 +4836,15 @@ module Google
3543
4836
  # @return [Float]
3544
4837
  attr_accessor :cvss_score
3545
4838
 
4839
+ # Common Vulnerability Scoring System. For details, see https://www.first.org/
4840
+ # cvss/specification-document This is a message we will try to use for storing
4841
+ # multiple versions of CVSS. The intention is that as new versions of CVSS
4842
+ # scores get added, we will be able to modify this message rather than adding
4843
+ # new protos for each new version of the score.
4844
+ # Corresponds to the JSON property `cvssv3`
4845
+ # @return [Google::Apis::ContaineranalysisV1::Cvss]
4846
+ attr_accessor :cvssv3
4847
+
3546
4848
  # The distro assigned severity for this vulnerability when it is available,
3547
4849
  # otherwise this is the note provider assigned severity. When there are multiple
3548
4850
  # PackageIssues for this vulnerability, they can have different effective
@@ -3600,6 +4902,7 @@ module Google
3600
4902
  # Update properties of this object
3601
4903
  def update!(**args)
3602
4904
  @cvss_score = args[:cvss_score] if args.key?(:cvss_score)
4905
+ @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
3603
4906
  @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
3604
4907
  @fix_available = args[:fix_available] if args.key?(:fix_available)
3605
4908
  @long_description = args[:long_description] if args.key?(:long_description)