google-apis-containeranalysis_v1 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,141 +472,6 @@ module Google
463
472
  end
464
473
  end
465
474
 
466
- # A step in the build pipeline.
467
- class BuildStep
468
- include Google::Apis::Core::Hashable
469
-
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.
505
- # Corresponds to the JSON property `id`
506
- # @return [String]
507
- attr_accessor :id
508
-
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
523
-
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
528
-
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`
532
- # @return [String]
533
- attr_accessor :script
534
-
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
541
-
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`
546
- # @return [String]
547
- attr_accessor :status
548
-
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`
553
- # @return [String]
554
- attr_accessor :timeout
555
-
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
560
-
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
569
-
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
577
-
578
- def initialize(**args)
579
- update!(**args)
580
- end
581
-
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
600
-
601
475
  #
602
476
  class BuilderConfig
603
477
  include Google::Apis::Core::Hashable
@@ -698,32 +572,1292 @@ module Google
698
572
  end
699
573
  end
700
574
 
701
- # The request message for Operations.CancelOperation.
702
- class CancelOperationRequest
575
+ # The request message for Operations.CancelOperation.
576
+ class CancelOperationRequest
577
+ include Google::Apis::Core::Hashable
578
+
579
+ def initialize(**args)
580
+ update!(**args)
581
+ end
582
+
583
+ # Update properties of this object
584
+ def update!(**args)
585
+ end
586
+ end
587
+
588
+ # The category to which the update belongs.
589
+ class Category
590
+ include Google::Apis::Core::Hashable
591
+
592
+ # The identifier of the category.
593
+ # Corresponds to the JSON property `categoryId`
594
+ # @return [String]
595
+ attr_accessor :category_id
596
+
597
+ # The localized name of the category.
598
+ # Corresponds to the JSON property `name`
599
+ # @return [String]
600
+ attr_accessor :name
601
+
602
+ def initialize(**args)
603
+ update!(**args)
604
+ end
605
+
606
+ # Update properties of this object
607
+ def update!(**args)
608
+ @category_id = args[:category_id] if args.key?(:category_id)
609
+ @name = args[:name] if args.key?(:name)
610
+ end
611
+ end
612
+
613
+ # A compliance check that is a CIS benchmark.
614
+ class CisBenchmark
615
+ include Google::Apis::Core::Hashable
616
+
617
+ #
618
+ # Corresponds to the JSON property `profileLevel`
619
+ # @return [Fixnum]
620
+ attr_accessor :profile_level
621
+
622
+ #
623
+ # Corresponds to the JSON property `severity`
624
+ # @return [String]
625
+ attr_accessor :severity
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ @profile_level = args[:profile_level] if args.key?(:profile_level)
634
+ @severity = args[:severity] if args.key?(:severity)
635
+ end
636
+ end
637
+
638
+ # A CloudRepoSourceContext denotes a particular revision in a Google Cloud
639
+ # Source Repo.
640
+ class CloudRepoSourceContext
641
+ include Google::Apis::Core::Hashable
642
+
643
+ # An alias to a repo revision.
644
+ # Corresponds to the JSON property `aliasContext`
645
+ # @return [Google::Apis::ContaineranalysisV1::AliasContext]
646
+ attr_accessor :alias_context
647
+
648
+ # A unique identifier for a Cloud Repo.
649
+ # Corresponds to the JSON property `repoId`
650
+ # @return [Google::Apis::ContaineranalysisV1::RepoId]
651
+ attr_accessor :repo_id
652
+
653
+ # A revision ID.
654
+ # Corresponds to the JSON property `revisionId`
655
+ # @return [String]
656
+ attr_accessor :revision_id
657
+
658
+ def initialize(**args)
659
+ update!(**args)
660
+ end
661
+
662
+ # Update properties of this object
663
+ def update!(**args)
664
+ @alias_context = args[:alias_context] if args.key?(:alias_context)
665
+ @repo_id = args[:repo_id] if args.key?(:repo_id)
666
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
667
+ end
668
+ end
669
+
670
+ # Command describes a step performed as part of the build pipeline.
671
+ class Command
672
+ include Google::Apis::Core::Hashable
673
+
674
+ # Command-line arguments used when executing this command.
675
+ # Corresponds to the JSON property `args`
676
+ # @return [Array<String>]
677
+ attr_accessor :args
678
+
679
+ # Working directory (relative to project source root) used when running this
680
+ # command.
681
+ # Corresponds to the JSON property `dir`
682
+ # @return [String]
683
+ attr_accessor :dir
684
+
685
+ # Environment variables set before running this command.
686
+ # Corresponds to the JSON property `env`
687
+ # @return [Array<String>]
688
+ attr_accessor :env
689
+
690
+ # Optional unique identifier for this command, used in wait_for to reference
691
+ # this command as a dependency.
692
+ # Corresponds to the JSON property `id`
693
+ # @return [String]
694
+ attr_accessor :id
695
+
696
+ # Required. Name of the command, as presented on the command line, or if the
697
+ # command is packaged as a Docker container, as presented to `docker pull`.
698
+ # Corresponds to the JSON property `name`
699
+ # @return [String]
700
+ attr_accessor :name
701
+
702
+ # The ID(s) of the command(s) that this command depends on.
703
+ # Corresponds to the JSON property `waitFor`
704
+ # @return [Array<String>]
705
+ attr_accessor :wait_for
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @args = args[:args] if args.key?(:args)
714
+ @dir = args[:dir] if args.key?(:dir)
715
+ @env = args[:env] if args.key?(:env)
716
+ @id = args[:id] if args.key?(:id)
717
+ @name = args[:name] if args.key?(:name)
718
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
719
+ end
720
+ end
721
+
722
+ # Indicates that the builder claims certain fields in this message to be
723
+ # complete.
724
+ class Completeness
725
+ include Google::Apis::Core::Hashable
726
+
727
+ # If true, the builder claims that recipe.arguments is complete, meaning that
728
+ # all external inputs are properly captured in the recipe.
729
+ # Corresponds to the JSON property `arguments`
730
+ # @return [Boolean]
731
+ attr_accessor :arguments
732
+ alias_method :arguments?, :arguments
733
+
734
+ # If true, the builder claims that recipe.environment is claimed to be complete.
735
+ # Corresponds to the JSON property `environment`
736
+ # @return [Boolean]
737
+ attr_accessor :environment
738
+ alias_method :environment?, :environment
739
+
740
+ # If true, the builder claims that materials are complete, usually through some
741
+ # controls to prevent network access. Sometimes called "hermetic".
742
+ # Corresponds to the JSON property `materials`
743
+ # @return [Boolean]
744
+ attr_accessor :materials
745
+ alias_method :materials?, :materials
746
+
747
+ def initialize(**args)
748
+ update!(**args)
749
+ end
750
+
751
+ # Update properties of this object
752
+ def update!(**args)
753
+ @arguments = args[:arguments] if args.key?(:arguments)
754
+ @environment = args[:environment] if args.key?(:environment)
755
+ @materials = args[:materials] if args.key?(:materials)
756
+ end
757
+ end
758
+
759
+ #
760
+ class ComplianceNote
761
+ include Google::Apis::Core::Hashable
762
+
763
+ # A compliance check that is a CIS benchmark.
764
+ # Corresponds to the JSON property `cisBenchmark`
765
+ # @return [Google::Apis::ContaineranalysisV1::CisBenchmark]
766
+ attr_accessor :cis_benchmark
767
+
768
+ # A description about this compliance check.
769
+ # Corresponds to the JSON property `description`
770
+ # @return [String]
771
+ attr_accessor :description
772
+
773
+ # A rationale for the existence of this compliance check.
774
+ # Corresponds to the JSON property `rationale`
775
+ # @return [String]
776
+ attr_accessor :rationale
777
+
778
+ # A description of remediation steps if the compliance check fails.
779
+ # Corresponds to the JSON property `remediation`
780
+ # @return [String]
781
+ attr_accessor :remediation
782
+
783
+ # Serialized scan instructions with a predefined format.
784
+ # Corresponds to the JSON property `scanInstructions`
785
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
786
+ # @return [String]
787
+ attr_accessor :scan_instructions
788
+
789
+ # The title that identifies this compliance check.
790
+ # Corresponds to the JSON property `title`
791
+ # @return [String]
792
+ attr_accessor :title
793
+
794
+ # The OS and config versions the benchmark applies to.
795
+ # Corresponds to the JSON property `version`
796
+ # @return [Array<Google::Apis::ContaineranalysisV1::ComplianceVersion>]
797
+ attr_accessor :version
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
806
+ @description = args[:description] if args.key?(:description)
807
+ @rationale = args[:rationale] if args.key?(:rationale)
808
+ @remediation = args[:remediation] if args.key?(:remediation)
809
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
810
+ @title = args[:title] if args.key?(:title)
811
+ @version = args[:version] if args.key?(:version)
812
+ end
813
+ end
814
+
815
+ # An indication that the compliance checks in the associated ComplianceNote were
816
+ # not satisfied for particular resources or a specified reason.
817
+ class ComplianceOccurrence
818
+ include Google::Apis::Core::Hashable
819
+
820
+ #
821
+ # Corresponds to the JSON property `nonComplianceReason`
822
+ # @return [String]
823
+ attr_accessor :non_compliance_reason
824
+
825
+ #
826
+ # Corresponds to the JSON property `nonCompliantFiles`
827
+ # @return [Array<Google::Apis::ContaineranalysisV1::NonCompliantFile>]
828
+ attr_accessor :non_compliant_files
829
+
830
+ def initialize(**args)
831
+ update!(**args)
832
+ end
833
+
834
+ # Update properties of this object
835
+ def update!(**args)
836
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
837
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
838
+ end
839
+ end
840
+
841
+ # Describes the CIS benchmark version that is applicable to a given OS and os
842
+ # version.
843
+ class ComplianceVersion
844
+ include Google::Apis::Core::Hashable
845
+
846
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
847
+ # applicable to.
848
+ # Corresponds to the JSON property `cpeUri`
849
+ # @return [String]
850
+ attr_accessor :cpe_uri
851
+
852
+ # The version of the benchmark. This is set to the version of the OS-specific
853
+ # CIS document the benchmark is defined in.
854
+ # Corresponds to the JSON property `version`
855
+ # @return [String]
856
+ attr_accessor :version
857
+
858
+ def initialize(**args)
859
+ update!(**args)
860
+ end
861
+
862
+ # Update properties of this object
863
+ def update!(**args)
864
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
865
+ @version = args[:version] if args.key?(:version)
866
+ end
867
+ end
868
+
869
+ # ApprovalConfig describes configuration for manual approval of a build.
870
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
871
+ include Google::Apis::Core::Hashable
872
+
873
+ # Whether or not approval is needed. If this is set on a build, it will become
874
+ # pending when created, and will need to be explicitly approved to start.
875
+ # Corresponds to the JSON property `approvalRequired`
876
+ # @return [Boolean]
877
+ attr_accessor :approval_required
878
+ alias_method :approval_required?, :approval_required
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
887
+ end
888
+ end
889
+
890
+ # ApprovalResult describes the decision and associated metadata of a manual
891
+ # approval of a build.
892
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
893
+ include Google::Apis::Core::Hashable
894
+
895
+ # Output only. The time when the approval decision was made.
896
+ # Corresponds to the JSON property `approvalTime`
897
+ # @return [String]
898
+ attr_accessor :approval_time
899
+
900
+ # Output only. Email of the user that called the ApproveBuild API to approve or
901
+ # reject a build at the time that the API was called.
902
+ # Corresponds to the JSON property `approverAccount`
903
+ # @return [String]
904
+ attr_accessor :approver_account
905
+
906
+ # Optional. An optional comment for this manual approval result.
907
+ # Corresponds to the JSON property `comment`
908
+ # @return [String]
909
+ attr_accessor :comment
910
+
911
+ # Required. The decision of this manual approval.
912
+ # Corresponds to the JSON property `decision`
913
+ # @return [String]
914
+ attr_accessor :decision
915
+
916
+ # Optional. An optional URL tied to this manual approval result. This field is
917
+ # essentially the same as comment, except that it will be rendered by the UI
918
+ # differently. An example use case is a link to an external job that approved
919
+ # this Build.
920
+ # Corresponds to the JSON property `url`
921
+ # @return [String]
922
+ attr_accessor :url
923
+
924
+ def initialize(**args)
925
+ update!(**args)
926
+ end
927
+
928
+ # Update properties of this object
929
+ def update!(**args)
930
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
931
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
932
+ @comment = args[:comment] if args.key?(:comment)
933
+ @decision = args[:decision] if args.key?(:decision)
934
+ @url = args[:url] if args.key?(:url)
935
+ end
936
+ end
937
+
938
+ # Artifacts produced by a build that should be uploaded upon successful
939
+ # completion of all build steps.
940
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
941
+ include Google::Apis::Core::Hashable
942
+
943
+ # A list of images to be pushed upon the successful completion of all build
944
+ # steps. The images will be pushed using the builder service account's
945
+ # credentials. The digests of the pushed images will be stored in the Build
946
+ # resource's results field. If any of the images fail to be pushed, the build is
947
+ # marked FAILURE.
948
+ # Corresponds to the JSON property `images`
949
+ # @return [Array<String>]
950
+ attr_accessor :images
951
+
952
+ # Files in the workspace to upload to Cloud Storage upon successful completion
953
+ # of all build steps.
954
+ # Corresponds to the JSON property `objects`
955
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
956
+ attr_accessor :objects
957
+
958
+ def initialize(**args)
959
+ update!(**args)
960
+ end
961
+
962
+ # Update properties of this object
963
+ def update!(**args)
964
+ @images = args[:images] if args.key?(:images)
965
+ @objects = args[:objects] if args.key?(:objects)
966
+ end
967
+ end
968
+
969
+ # Files in the workspace to upload to Cloud Storage upon successful completion
970
+ # of all build steps.
971
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
972
+ include Google::Apis::Core::Hashable
973
+
974
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
975
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
976
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
977
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
978
+ # Corresponds to the JSON property `location`
979
+ # @return [String]
980
+ attr_accessor :location
981
+
982
+ # Path globs used to match files in the build's workspace.
983
+ # Corresponds to the JSON property `paths`
984
+ # @return [Array<String>]
985
+ attr_accessor :paths
986
+
987
+ # Start and end times for a build execution phase.
988
+ # Corresponds to the JSON property `timing`
989
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
990
+ attr_accessor :timing
991
+
992
+ def initialize(**args)
993
+ update!(**args)
994
+ end
995
+
996
+ # Update properties of this object
997
+ def update!(**args)
998
+ @location = args[:location] if args.key?(:location)
999
+ @paths = args[:paths] if args.key?(:paths)
1000
+ @timing = args[:timing] if args.key?(:timing)
1001
+ end
1002
+ end
1003
+
1004
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
1005
+ # where to find source code, how to build it (for example, the builder image to
1006
+ # run on the source), and where to store the built artifacts. Fields can include
1007
+ # the following variables, which will be expanded when the build is created: - $
1008
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
1009
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
1010
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
1011
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
1012
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
1013
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
1014
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
1015
+ # COMMIT_SHA.
1016
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
1017
+ include Google::Apis::Core::Hashable
1018
+
1019
+ # BuildApproval describes a build's approval configuration, state, and result.
1020
+ # Corresponds to the JSON property `approval`
1021
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
1022
+ attr_accessor :approval
1023
+
1024
+ # Artifacts produced by a build that should be uploaded upon successful
1025
+ # completion of all build steps.
1026
+ # Corresponds to the JSON property `artifacts`
1027
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
1028
+ attr_accessor :artifacts
1029
+
1030
+ # Secrets and secret environment variables.
1031
+ # Corresponds to the JSON property `availableSecrets`
1032
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
1033
+ attr_accessor :available_secrets
1034
+
1035
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
1036
+ # triggered automatically.
1037
+ # Corresponds to the JSON property `buildTriggerId`
1038
+ # @return [String]
1039
+ attr_accessor :build_trigger_id
1040
+
1041
+ # Output only. Time at which the request to create the build was received.
1042
+ # Corresponds to the JSON property `createTime`
1043
+ # @return [String]
1044
+ attr_accessor :create_time
1045
+
1046
+ # A fatal problem encountered during the execution of the build.
1047
+ # Corresponds to the JSON property `failureInfo`
1048
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
1049
+ attr_accessor :failure_info
1050
+
1051
+ # Output only. Time at which execution of the build was finished. The difference
1052
+ # between finish_time and start_time is the duration of the build's execution.
1053
+ # Corresponds to the JSON property `finishTime`
1054
+ # @return [String]
1055
+ attr_accessor :finish_time
1056
+
1057
+ # Output only. Unique identifier of the build.
1058
+ # Corresponds to the JSON property `id`
1059
+ # @return [String]
1060
+ attr_accessor :id
1061
+
1062
+ # A list of images to be pushed upon the successful completion of all build
1063
+ # steps. The images are pushed using the builder service account's credentials.
1064
+ # The digests of the pushed images will be stored in the `Build` resource's
1065
+ # results field. If any of the images fail to be pushed, the build status is
1066
+ # marked `FAILURE`.
1067
+ # Corresponds to the JSON property `images`
1068
+ # @return [Array<String>]
1069
+ attr_accessor :images
1070
+
1071
+ # Output only. URL to logs for this build in Google Cloud Console.
1072
+ # Corresponds to the JSON property `logUrl`
1073
+ # @return [String]
1074
+ attr_accessor :log_url
1075
+
1076
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
1077
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1078
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
1079
+ # Corresponds to the JSON property `logsBucket`
1080
+ # @return [String]
1081
+ attr_accessor :logs_bucket
1082
+
1083
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
1084
+ # location`/builds/`build``, where `build` is a unique identifier generated by
1085
+ # the service.
1086
+ # Corresponds to the JSON property `name`
1087
+ # @return [String]
1088
+ attr_accessor :name
1089
+
1090
+ # Optional arguments to enable specific features of builds.
1091
+ # Corresponds to the JSON property `options`
1092
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
1093
+ attr_accessor :options
1094
+
1095
+ # Output only. ID of the project.
1096
+ # Corresponds to the JSON property `projectId`
1097
+ # @return [String]
1098
+ attr_accessor :project_id
1099
+
1100
+ # TTL in queue for this build. If provided and the build is enqueued longer than
1101
+ # this value, the build will expire and the build status will be `EXPIRED`. The
1102
+ # TTL starts ticking from create_time.
1103
+ # Corresponds to the JSON property `queueTtl`
1104
+ # @return [String]
1105
+ attr_accessor :queue_ttl
1106
+
1107
+ # Artifacts created by the build pipeline.
1108
+ # Corresponds to the JSON property `results`
1109
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
1110
+ attr_accessor :results
1111
+
1112
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
1113
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
1114
+ # available_secrets` to configure builds to access secrets from Secret Manager.
1115
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
1116
+ # builds/use-secrets
1117
+ # Corresponds to the JSON property `secrets`
1118
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
1119
+ attr_accessor :secrets
1120
+
1121
+ # IAM service account whose credentials will be used at build runtime. Must be
1122
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
1123
+ # be email address or uniqueId of the service account.
1124
+ # Corresponds to the JSON property `serviceAccount`
1125
+ # @return [String]
1126
+ attr_accessor :service_account
1127
+
1128
+ # Location of the source in a supported storage service.
1129
+ # Corresponds to the JSON property `source`
1130
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
1131
+ attr_accessor :source
1132
+
1133
+ # Provenance of the source. Ways to find the original source, or verify that
1134
+ # some source was used for this build.
1135
+ # Corresponds to the JSON property `sourceProvenance`
1136
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
1137
+ attr_accessor :source_provenance
1138
+
1139
+ # Output only. Time at which execution of the build was started.
1140
+ # Corresponds to the JSON property `startTime`
1141
+ # @return [String]
1142
+ attr_accessor :start_time
1143
+
1144
+ # Output only. Status of the build.
1145
+ # Corresponds to the JSON property `status`
1146
+ # @return [String]
1147
+ attr_accessor :status
1148
+
1149
+ # Output only. Customer-readable message about the current status.
1150
+ # Corresponds to the JSON property `statusDetail`
1151
+ # @return [String]
1152
+ attr_accessor :status_detail
1153
+
1154
+ # Required. The operations to be performed on the workspace.
1155
+ # Corresponds to the JSON property `steps`
1156
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
1157
+ attr_accessor :steps
1158
+
1159
+ # Substitutions data for `Build` resource.
1160
+ # Corresponds to the JSON property `substitutions`
1161
+ # @return [Hash<String,String>]
1162
+ attr_accessor :substitutions
1163
+
1164
+ # Tags for annotation of a `Build`. These are not docker tags.
1165
+ # Corresponds to the JSON property `tags`
1166
+ # @return [Array<String>]
1167
+ attr_accessor :tags
1168
+
1169
+ # Amount of time that this build should be allowed to run, to second granularity.
1170
+ # If this amount of time elapses, work on the build will cease and the build
1171
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1172
+ # time is ten minutes.
1173
+ # Corresponds to the JSON property `timeout`
1174
+ # @return [String]
1175
+ attr_accessor :timeout
1176
+
1177
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1178
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1179
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1180
+ # build. If the build does not specify source or images, these keys will not be
1181
+ # included.
1182
+ # Corresponds to the JSON property `timing`
1183
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1184
+ attr_accessor :timing
1185
+
1186
+ # Output only. Non-fatal problems encountered during the execution of the build.
1187
+ # Corresponds to the JSON property `warnings`
1188
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1189
+ attr_accessor :warnings
1190
+
1191
+ def initialize(**args)
1192
+ update!(**args)
1193
+ end
1194
+
1195
+ # Update properties of this object
1196
+ def update!(**args)
1197
+ @approval = args[:approval] if args.key?(:approval)
1198
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1199
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1200
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1201
+ @create_time = args[:create_time] if args.key?(:create_time)
1202
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1203
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1204
+ @id = args[:id] if args.key?(:id)
1205
+ @images = args[:images] if args.key?(:images)
1206
+ @log_url = args[:log_url] if args.key?(:log_url)
1207
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1208
+ @name = args[:name] if args.key?(:name)
1209
+ @options = args[:options] if args.key?(:options)
1210
+ @project_id = args[:project_id] if args.key?(:project_id)
1211
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1212
+ @results = args[:results] if args.key?(:results)
1213
+ @secrets = args[:secrets] if args.key?(:secrets)
1214
+ @service_account = args[:service_account] if args.key?(:service_account)
1215
+ @source = args[:source] if args.key?(:source)
1216
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1217
+ @start_time = args[:start_time] if args.key?(:start_time)
1218
+ @status = args[:status] if args.key?(:status)
1219
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1220
+ @steps = args[:steps] if args.key?(:steps)
1221
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1222
+ @tags = args[:tags] if args.key?(:tags)
1223
+ @timeout = args[:timeout] if args.key?(:timeout)
1224
+ @timing = args[:timing] if args.key?(:timing)
1225
+ @warnings = args[:warnings] if args.key?(:warnings)
1226
+ end
1227
+ end
1228
+
1229
+ # BuildApproval describes a build's approval configuration, state, and result.
1230
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1231
+ include Google::Apis::Core::Hashable
1232
+
1233
+ # ApprovalConfig describes configuration for manual approval of a build.
1234
+ # Corresponds to the JSON property `config`
1235
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1236
+ attr_accessor :config
1237
+
1238
+ # ApprovalResult describes the decision and associated metadata of a manual
1239
+ # approval of a build.
1240
+ # Corresponds to the JSON property `result`
1241
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1242
+ attr_accessor :result
1243
+
1244
+ # Output only. The state of this build's approval.
1245
+ # Corresponds to the JSON property `state`
1246
+ # @return [String]
1247
+ attr_accessor :state
1248
+
1249
+ def initialize(**args)
1250
+ update!(**args)
1251
+ end
1252
+
1253
+ # Update properties of this object
1254
+ def update!(**args)
1255
+ @config = args[:config] if args.key?(:config)
1256
+ @result = args[:result] if args.key?(:result)
1257
+ @state = args[:state] if args.key?(:state)
1258
+ end
1259
+ end
1260
+
1261
+ # A fatal problem encountered during the execution of the build.
1262
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1263
+ include Google::Apis::Core::Hashable
1264
+
1265
+ # Explains the failure issue in more detail using hard-coded text.
1266
+ # Corresponds to the JSON property `detail`
1267
+ # @return [String]
1268
+ attr_accessor :detail
1269
+
1270
+ # The name of the failure.
1271
+ # Corresponds to the JSON property `type`
1272
+ # @return [String]
1273
+ attr_accessor :type
1274
+
1275
+ def initialize(**args)
1276
+ update!(**args)
1277
+ end
1278
+
1279
+ # Update properties of this object
1280
+ def update!(**args)
1281
+ @detail = args[:detail] if args.key?(:detail)
1282
+ @type = args[:type] if args.key?(:type)
1283
+ end
1284
+ end
1285
+
1286
+ # Optional arguments to enable specific features of builds.
1287
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1288
+ include Google::Apis::Core::Hashable
1289
+
1290
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1291
+ # disk free"; some of the space will be used by the operating system and build
1292
+ # utilities. Also note that this is the minimum disk size that will be allocated
1293
+ # for the build -- the build may run with a larger disk than requested. At
1294
+ # present, the maximum disk size is 1000GB; builds that request more than the
1295
+ # maximum are rejected with an error.
1296
+ # Corresponds to the JSON property `diskSizeGb`
1297
+ # @return [Fixnum]
1298
+ attr_accessor :disk_size_gb
1299
+
1300
+ # Option to specify whether or not to apply bash style string operations to the
1301
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1302
+ # overridden in the build configuration file.
1303
+ # Corresponds to the JSON property `dynamicSubstitutions`
1304
+ # @return [Boolean]
1305
+ attr_accessor :dynamic_substitutions
1306
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1307
+
1308
+ # A list of global environment variable definitions that will exist for all
1309
+ # build steps in this build. If a variable is defined in both globally and in a
1310
+ # build step, the variable will use the build step value. The elements are of
1311
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1312
+ # VALUE".
1313
+ # Corresponds to the JSON property `env`
1314
+ # @return [Array<String>]
1315
+ attr_accessor :env
1316
+
1317
+ # Option to define build log streaming behavior to Google Cloud Storage.
1318
+ # Corresponds to the JSON property `logStreamingOption`
1319
+ # @return [String]
1320
+ attr_accessor :log_streaming_option
1321
+
1322
+ # Option to specify the logging mode, which determines if and where build logs
1323
+ # are stored.
1324
+ # Corresponds to the JSON property `logging`
1325
+ # @return [String]
1326
+ attr_accessor :logging
1327
+
1328
+ # Compute Engine machine type on which to run the build.
1329
+ # Corresponds to the JSON property `machineType`
1330
+ # @return [String]
1331
+ attr_accessor :machine_type
1332
+
1333
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1334
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1335
+ # run-builds-in-private-pool) for more information.
1336
+ # Corresponds to the JSON property `pool`
1337
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1338
+ attr_accessor :pool
1339
+
1340
+ # Requested verifiability options.
1341
+ # Corresponds to the JSON property `requestedVerifyOption`
1342
+ # @return [String]
1343
+ attr_accessor :requested_verify_option
1344
+
1345
+ # A list of global environment variables, which are encrypted using a Cloud Key
1346
+ # Management Service crypto key. These values must be specified in the build's `
1347
+ # Secret`. These variables will be available to all build steps in this build.
1348
+ # Corresponds to the JSON property `secretEnv`
1349
+ # @return [Array<String>]
1350
+ attr_accessor :secret_env
1351
+
1352
+ # Requested hash for SourceProvenance.
1353
+ # Corresponds to the JSON property `sourceProvenanceHash`
1354
+ # @return [Array<String>]
1355
+ attr_accessor :source_provenance_hash
1356
+
1357
+ # Option to specify behavior when there is an error in the substitution checks.
1358
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1359
+ # overridden in the build configuration file.
1360
+ # Corresponds to the JSON property `substitutionOption`
1361
+ # @return [String]
1362
+ attr_accessor :substitution_option
1363
+
1364
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1365
+ # an empty volume prior to starting the build process. Upon completion of the
1366
+ # build, volumes and their contents are discarded. Global volume names and paths
1367
+ # cannot conflict with the volumes defined a build step. Using a global volume
1368
+ # in a build with only one step is not valid as it is indicative of a build
1369
+ # request with an incorrect configuration.
1370
+ # Corresponds to the JSON property `volumes`
1371
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1372
+ attr_accessor :volumes
1373
+
1374
+ # This field deprecated; please use `pool.name` instead.
1375
+ # Corresponds to the JSON property `workerPool`
1376
+ # @return [String]
1377
+ attr_accessor :worker_pool
1378
+
1379
+ def initialize(**args)
1380
+ update!(**args)
1381
+ end
1382
+
1383
+ # Update properties of this object
1384
+ def update!(**args)
1385
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1386
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1387
+ @env = args[:env] if args.key?(:env)
1388
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1389
+ @logging = args[:logging] if args.key?(:logging)
1390
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1391
+ @pool = args[:pool] if args.key?(:pool)
1392
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1393
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1394
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1395
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1396
+ @volumes = args[:volumes] if args.key?(:volumes)
1397
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1398
+ end
1399
+ end
1400
+
1401
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1402
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1403
+ # run-builds-in-private-pool) for more information.
1404
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1405
+ include Google::Apis::Core::Hashable
1406
+
1407
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1408
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1409
+ # project`/locations/`location`/workerPools/`workerPoolId`
1410
+ # Corresponds to the JSON property `name`
1411
+ # @return [String]
1412
+ attr_accessor :name
1413
+
1414
+ def initialize(**args)
1415
+ update!(**args)
1416
+ end
1417
+
1418
+ # Update properties of this object
1419
+ def update!(**args)
1420
+ @name = args[:name] if args.key?(:name)
1421
+ end
1422
+ end
1423
+
1424
+ # A step in the build pipeline.
1425
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
1426
+ include Google::Apis::Core::Hashable
1427
+
1428
+ # A list of arguments that will be presented to the step when it is started. If
1429
+ # the image used to run the step's container has an entrypoint, the `args` are
1430
+ # used as arguments to that entrypoint. If the image does not define an
1431
+ # entrypoint, the first element in args is used as the entrypoint, and the
1432
+ # remainder will be used as arguments.
1433
+ # Corresponds to the JSON property `args`
1434
+ # @return [Array<String>]
1435
+ attr_accessor :args
1436
+
1437
+ # Working directory to use when running this step's container. If this value is
1438
+ # a relative path, it is relative to the build's working directory. If this
1439
+ # value is absolute, it may be outside the build's working directory, in which
1440
+ # case the contents of the path may not be persisted across build step
1441
+ # executions, unless a `volume` for that path is specified. If the build
1442
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
1443
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
1444
+ # Corresponds to the JSON property `dir`
1445
+ # @return [String]
1446
+ attr_accessor :dir
1447
+
1448
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
1449
+ # unset, the image's default entrypoint is used.
1450
+ # Corresponds to the JSON property `entrypoint`
1451
+ # @return [String]
1452
+ attr_accessor :entrypoint
1453
+
1454
+ # A list of environment variable definitions to be used when running a step. The
1455
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
1456
+ # given the value "VALUE".
1457
+ # Corresponds to the JSON property `env`
1458
+ # @return [Array<String>]
1459
+ attr_accessor :env
1460
+
1461
+ # Unique identifier for this build step, used in `wait_for` to reference this
1462
+ # build step as a dependency.
1463
+ # Corresponds to the JSON property `id`
1464
+ # @return [String]
1465
+ attr_accessor :id
1466
+
1467
+ # Required. The name of the container image that will run this particular build
1468
+ # step. If the image is available in the host's Docker daemon's cache, it will
1469
+ # be run directly. If not, the host will attempt to pull the image first, using
1470
+ # the builder service account's credentials if necessary. The Docker daemon's
1471
+ # cache will already have the latest versions of all of the officially supported
1472
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
1473
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
1474
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
1475
+ # , but they will be refreshed at the time you attempt to use them. If you built
1476
+ # an image in a previous build step, it will be stored in the host's Docker
1477
+ # daemon's cache and is available to use as the name for a later build step.
1478
+ # Corresponds to the JSON property `name`
1479
+ # @return [String]
1480
+ attr_accessor :name
1481
+
1482
+ # Start and end times for a build execution phase.
1483
+ # Corresponds to the JSON property `pullTiming`
1484
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1485
+ attr_accessor :pull_timing
1486
+
1487
+ # A shell script to be executed in the step. When script is provided, the user
1488
+ # cannot specify the entrypoint or args.
1489
+ # Corresponds to the JSON property `script`
1490
+ # @return [String]
1491
+ attr_accessor :script
1492
+
1493
+ # A list of environment variables which are encrypted using a Cloud Key
1494
+ # Management Service crypto key. These values must be specified in the build's `
1495
+ # Secret`.
1496
+ # Corresponds to the JSON property `secretEnv`
1497
+ # @return [Array<String>]
1498
+ attr_accessor :secret_env
1499
+
1500
+ # Output only. Status of the build step. At this time, build step status is only
1501
+ # updated on build completion; step status is not updated in real-time as the
1502
+ # build progresses.
1503
+ # Corresponds to the JSON property `status`
1504
+ # @return [String]
1505
+ attr_accessor :status
1506
+
1507
+ # Time limit for executing this build step. If not defined, the step has no time
1508
+ # limit and will be allowed to continue to run until either it completes or the
1509
+ # build itself times out.
1510
+ # Corresponds to the JSON property `timeout`
1511
+ # @return [String]
1512
+ attr_accessor :timeout
1513
+
1514
+ # Start and end times for a build execution phase.
1515
+ # Corresponds to the JSON property `timing`
1516
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1517
+ attr_accessor :timing
1518
+
1519
+ # List of volumes to mount into the build step. Each volume is created as an
1520
+ # empty volume prior to execution of the build step. Upon completion of the
1521
+ # build, volumes and their contents are discarded. Using a named volume in only
1522
+ # one step is not valid as it is indicative of a build request with an incorrect
1523
+ # configuration.
1524
+ # Corresponds to the JSON property `volumes`
1525
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1526
+ attr_accessor :volumes
1527
+
1528
+ # The ID(s) of the step(s) that this build step depends on. This build step will
1529
+ # not start until all the build steps in `wait_for` have completed successfully.
1530
+ # If `wait_for` is empty, this build step will start when all previous build
1531
+ # steps in the `Build.Steps` list have completed successfully.
1532
+ # Corresponds to the JSON property `waitFor`
1533
+ # @return [Array<String>]
1534
+ attr_accessor :wait_for
1535
+
1536
+ def initialize(**args)
1537
+ update!(**args)
1538
+ end
1539
+
1540
+ # Update properties of this object
1541
+ def update!(**args)
1542
+ @args = args[:args] if args.key?(:args)
1543
+ @dir = args[:dir] if args.key?(:dir)
1544
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
1545
+ @env = args[:env] if args.key?(:env)
1546
+ @id = args[:id] if args.key?(:id)
1547
+ @name = args[:name] if args.key?(:name)
1548
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
1549
+ @script = args[:script] if args.key?(:script)
1550
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1551
+ @status = args[:status] if args.key?(:status)
1552
+ @timeout = args[:timeout] if args.key?(:timeout)
1553
+ @timing = args[:timing] if args.key?(:timing)
1554
+ @volumes = args[:volumes] if args.key?(:volumes)
1555
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
1556
+ end
1557
+ end
1558
+
1559
+ # A non-fatal problem encountered during the execution of the build.
1560
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1561
+ include Google::Apis::Core::Hashable
1562
+
1563
+ # The priority for this warning.
1564
+ # Corresponds to the JSON property `priority`
1565
+ # @return [String]
1566
+ attr_accessor :priority
1567
+
1568
+ # Explanation of the warning generated.
1569
+ # Corresponds to the JSON property `text`
1570
+ # @return [String]
1571
+ attr_accessor :text
1572
+
1573
+ def initialize(**args)
1574
+ update!(**args)
1575
+ end
1576
+
1577
+ # Update properties of this object
1578
+ def update!(**args)
1579
+ @priority = args[:priority] if args.key?(:priority)
1580
+ @text = args[:text] if args.key?(:text)
1581
+ end
1582
+ end
1583
+
1584
+ # An image built by the pipeline.
1585
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1586
+ include Google::Apis::Core::Hashable
1587
+
1588
+ # Docker Registry 2.0 digest.
1589
+ # Corresponds to the JSON property `digest`
1590
+ # @return [String]
1591
+ attr_accessor :digest
1592
+
1593
+ # Name used to push the container image to Google Container Registry, as
1594
+ # presented to `docker push`.
1595
+ # Corresponds to the JSON property `name`
1596
+ # @return [String]
1597
+ attr_accessor :name
1598
+
1599
+ # Start and end times for a build execution phase.
1600
+ # Corresponds to the JSON property `pushTiming`
1601
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1602
+ attr_accessor :push_timing
1603
+
1604
+ def initialize(**args)
1605
+ update!(**args)
1606
+ end
1607
+
1608
+ # Update properties of this object
1609
+ def update!(**args)
1610
+ @digest = args[:digest] if args.key?(:digest)
1611
+ @name = args[:name] if args.key?(:name)
1612
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1613
+ end
1614
+ end
1615
+
1616
+ # Container message for hashes of byte content of files, used in
1617
+ # SourceProvenance messages to verify integrity of source input to the build.
1618
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1619
+ include Google::Apis::Core::Hashable
1620
+
1621
+ # Collection of file hashes.
1622
+ # Corresponds to the JSON property `fileHash`
1623
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1624
+ attr_accessor :file_hash
1625
+
1626
+ def initialize(**args)
1627
+ update!(**args)
1628
+ end
1629
+
1630
+ # Update properties of this object
1631
+ def update!(**args)
1632
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1633
+ end
1634
+ end
1635
+
1636
+ # Container message for hash values.
1637
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1638
+ include Google::Apis::Core::Hashable
1639
+
1640
+ # The type of hash that was performed.
1641
+ # Corresponds to the JSON property `type`
1642
+ # @return [String]
1643
+ attr_accessor :type
1644
+
1645
+ # The hash value.
1646
+ # Corresponds to the JSON property `value`
1647
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1648
+ # @return [String]
1649
+ attr_accessor :value
1650
+
1651
+ def initialize(**args)
1652
+ update!(**args)
1653
+ end
1654
+
1655
+ # Update properties of this object
1656
+ def update!(**args)
1657
+ @type = args[:type] if args.key?(:type)
1658
+ @value = args[:value] if args.key?(:value)
1659
+ end
1660
+ end
1661
+
1662
+ # Pairs a set of secret environment variables mapped to encrypted values with
1663
+ # the Cloud KMS key to use to decrypt the value.
1664
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1665
+ include Google::Apis::Core::Hashable
1666
+
1667
+ # Map of environment variable name to its encrypted value. Secret environment
1668
+ # variables must be unique across all of a build's secrets, and must be used by
1669
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1670
+ # most 100 secret values across all of a build's secrets.
1671
+ # Corresponds to the JSON property `envMap`
1672
+ # @return [Hash<String,String>]
1673
+ attr_accessor :env_map
1674
+
1675
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1676
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1677
+ # Corresponds to the JSON property `kmsKeyName`
1678
+ # @return [String]
1679
+ attr_accessor :kms_key_name
1680
+
1681
+ def initialize(**args)
1682
+ update!(**args)
1683
+ end
1684
+
1685
+ # Update properties of this object
1686
+ def update!(**args)
1687
+ @env_map = args[:env_map] if args.key?(:env_map)
1688
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1689
+ end
1690
+ end
1691
+
1692
+ # Location of the source in a Google Cloud Source Repository.
1693
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # Regex matching branches to build. The syntax of the regular expressions
1697
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1698
+ # google/re2/wiki/Syntax
1699
+ # Corresponds to the JSON property `branchName`
1700
+ # @return [String]
1701
+ attr_accessor :branch_name
1702
+
1703
+ # Explicit commit SHA to build.
1704
+ # Corresponds to the JSON property `commitSha`
1705
+ # @return [String]
1706
+ attr_accessor :commit_sha
1707
+
1708
+ # Directory, relative to the source root, in which to run the build. This must
1709
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1710
+ # this value is ignored for that step's execution.
1711
+ # Corresponds to the JSON property `dir`
1712
+ # @return [String]
1713
+ attr_accessor :dir
1714
+
1715
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1716
+ # Corresponds to the JSON property `invertRegex`
1717
+ # @return [Boolean]
1718
+ attr_accessor :invert_regex
1719
+ alias_method :invert_regex?, :invert_regex
1720
+
1721
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1722
+ # project ID requesting the build is assumed.
1723
+ # Corresponds to the JSON property `projectId`
1724
+ # @return [String]
1725
+ attr_accessor :project_id
1726
+
1727
+ # Name of the Cloud Source Repository.
1728
+ # Corresponds to the JSON property `repoName`
1729
+ # @return [String]
1730
+ attr_accessor :repo_name
1731
+
1732
+ # Substitutions to use in a triggered build. Should only be used with
1733
+ # RunBuildTrigger
1734
+ # Corresponds to the JSON property `substitutions`
1735
+ # @return [Hash<String,String>]
1736
+ attr_accessor :substitutions
1737
+
1738
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1739
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1740
+ # wiki/Syntax
1741
+ # Corresponds to the JSON property `tagName`
1742
+ # @return [String]
1743
+ attr_accessor :tag_name
1744
+
1745
+ def initialize(**args)
1746
+ update!(**args)
1747
+ end
1748
+
1749
+ # Update properties of this object
1750
+ def update!(**args)
1751
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1752
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1753
+ @dir = args[:dir] if args.key?(:dir)
1754
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1755
+ @project_id = args[:project_id] if args.key?(:project_id)
1756
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1757
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1758
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1759
+ end
1760
+ end
1761
+
1762
+ # Artifacts created by the build pipeline.
1763
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1764
+ include Google::Apis::Core::Hashable
1765
+
1766
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1767
+ # Corresponds to the JSON property `artifactManifest`
1768
+ # @return [String]
1769
+ attr_accessor :artifact_manifest
1770
+
1771
+ # Start and end times for a build execution phase.
1772
+ # Corresponds to the JSON property `artifactTiming`
1773
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1774
+ attr_accessor :artifact_timing
1775
+
1776
+ # List of build step digests, in the order corresponding to build step indices.
1777
+ # Corresponds to the JSON property `buildStepImages`
1778
+ # @return [Array<String>]
1779
+ attr_accessor :build_step_images
1780
+
1781
+ # List of build step outputs, produced by builder images, in the order
1782
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1783
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1784
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1785
+ # Corresponds to the JSON property `buildStepOutputs`
1786
+ # @return [Array<String>]
1787
+ attr_accessor :build_step_outputs
1788
+
1789
+ # Container images that were built as a part of the build.
1790
+ # Corresponds to the JSON property `images`
1791
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1792
+ attr_accessor :images
1793
+
1794
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1795
+ # Corresponds to the JSON property `numArtifacts`
1796
+ # @return [Fixnum]
1797
+ attr_accessor :num_artifacts
1798
+
1799
+ def initialize(**args)
1800
+ update!(**args)
1801
+ end
1802
+
1803
+ # Update properties of this object
1804
+ def update!(**args)
1805
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1806
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1807
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1808
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1809
+ @images = args[:images] if args.key?(:images)
1810
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1811
+ end
1812
+ end
1813
+
1814
+ # Pairs a set of secret environment variables containing encrypted values with
1815
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1816
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1817
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1818
+ # use-encrypted-credentials.
1819
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
703
1820
  include Google::Apis::Core::Hashable
704
1821
 
1822
+ # Cloud KMS key name to use to decrypt these envs.
1823
+ # Corresponds to the JSON property `kmsKeyName`
1824
+ # @return [String]
1825
+ attr_accessor :kms_key_name
1826
+
1827
+ # Map of environment variable name to its encrypted value. Secret environment
1828
+ # variables must be unique across all of a build's secrets, and must be used by
1829
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1830
+ # most 100 secret values across all of a build's secrets.
1831
+ # Corresponds to the JSON property `secretEnv`
1832
+ # @return [Hash<String,String>]
1833
+ attr_accessor :secret_env
1834
+
705
1835
  def initialize(**args)
706
1836
  update!(**args)
707
1837
  end
708
1838
 
709
1839
  # Update properties of this object
710
1840
  def update!(**args)
1841
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1842
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
711
1843
  end
712
1844
  end
713
1845
 
714
- # The category to which the update belongs.
715
- class Category
1846
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1847
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
716
1848
  include Google::Apis::Core::Hashable
717
1849
 
718
- # The identifier of the category.
719
- # Corresponds to the JSON property `categoryId`
1850
+ # Environment variable name to associate with the secret. Secret environment
1851
+ # variables must be unique across all of a build's secrets, and must be used by
1852
+ # at least one build step.
1853
+ # Corresponds to the JSON property `env`
720
1854
  # @return [String]
721
- attr_accessor :category_id
1855
+ attr_accessor :env
722
1856
 
723
- # The localized name of the category.
724
- # Corresponds to the JSON property `name`
1857
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1858
+ # Corresponds to the JSON property `versionName`
725
1859
  # @return [String]
726
- attr_accessor :name
1860
+ attr_accessor :version_name
727
1861
 
728
1862
  def initialize(**args)
729
1863
  update!(**args)
@@ -731,24 +1865,24 @@ module Google
731
1865
 
732
1866
  # Update properties of this object
733
1867
  def update!(**args)
734
- @category_id = args[:category_id] if args.key?(:category_id)
735
- @name = args[:name] if args.key?(:name)
1868
+ @env = args[:env] if args.key?(:env)
1869
+ @version_name = args[:version_name] if args.key?(:version_name)
736
1870
  end
737
1871
  end
738
1872
 
739
- # A compliance check that is a CIS benchmark.
740
- class CisBenchmark
1873
+ # Secrets and secret environment variables.
1874
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
741
1875
  include Google::Apis::Core::Hashable
742
1876
 
743
- #
744
- # Corresponds to the JSON property `profileLevel`
745
- # @return [Fixnum]
746
- attr_accessor :profile_level
1877
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1878
+ # Corresponds to the JSON property `inline`
1879
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1880
+ attr_accessor :inline
747
1881
 
748
- #
749
- # Corresponds to the JSON property `severity`
750
- # @return [String]
751
- attr_accessor :severity
1882
+ # Secrets in Secret Manager and associated secret environment variable.
1883
+ # Corresponds to the JSON property `secretManager`
1884
+ # @return [Array<Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1885
+ attr_accessor :secret_manager
752
1886
 
753
1887
  def initialize(**args)
754
1888
  update!(**args)
@@ -756,30 +1890,31 @@ module Google
756
1890
 
757
1891
  # Update properties of this object
758
1892
  def update!(**args)
759
- @profile_level = args[:profile_level] if args.key?(:profile_level)
760
- @severity = args[:severity] if args.key?(:severity)
1893
+ @inline = args[:inline] if args.key?(:inline)
1894
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
761
1895
  end
762
1896
  end
763
1897
 
764
- # A CloudRepoSourceContext denotes a particular revision in a Google Cloud
765
- # Source Repo.
766
- class CloudRepoSourceContext
1898
+ # Location of the source in a supported storage service.
1899
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
767
1900
  include Google::Apis::Core::Hashable
768
1901
 
769
- # An alias to a repo revision.
770
- # Corresponds to the JSON property `aliasContext`
771
- # @return [Google::Apis::ContaineranalysisV1::AliasContext]
772
- attr_accessor :alias_context
1902
+ # Location of the source in a Google Cloud Source Repository.
1903
+ # Corresponds to the JSON property `repoSource`
1904
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1905
+ attr_accessor :repo_source
773
1906
 
774
- # A unique identifier for a Cloud Repo.
775
- # Corresponds to the JSON property `repoId`
776
- # @return [Google::Apis::ContaineranalysisV1::RepoId]
777
- attr_accessor :repo_id
1907
+ # Location of the source in an archive file in Google Cloud Storage.
1908
+ # Corresponds to the JSON property `storageSource`
1909
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1910
+ attr_accessor :storage_source
778
1911
 
779
- # A revision ID.
780
- # Corresponds to the JSON property `revisionId`
781
- # @return [String]
782
- attr_accessor :revision_id
1912
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1913
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1914
+ # builders/tree/master/gcs-fetcher).
1915
+ # Corresponds to the JSON property `storageSourceManifest`
1916
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1917
+ attr_accessor :storage_source_manifest
783
1918
 
784
1919
  def initialize(**args)
785
1920
  update!(**args)
@@ -787,48 +1922,44 @@ module Google
787
1922
 
788
1923
  # Update properties of this object
789
1924
  def update!(**args)
790
- @alias_context = args[:alias_context] if args.key?(:alias_context)
791
- @repo_id = args[:repo_id] if args.key?(:repo_id)
792
- @revision_id = args[:revision_id] if args.key?(:revision_id)
1925
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1926
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1927
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
793
1928
  end
794
1929
  end
795
1930
 
796
- # Command describes a step performed as part of the build pipeline.
797
- class Command
1931
+ # Provenance of the source. Ways to find the original source, or verify that
1932
+ # some source was used for this build.
1933
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
798
1934
  include Google::Apis::Core::Hashable
799
1935
 
800
- # Command-line arguments used when executing this command.
801
- # Corresponds to the JSON property `args`
802
- # @return [Array<String>]
803
- attr_accessor :args
804
-
805
- # Working directory (relative to project source root) used when running this
806
- # command.
807
- # Corresponds to the JSON property `dir`
808
- # @return [String]
809
- attr_accessor :dir
810
-
811
- # Environment variables set before running this command.
812
- # Corresponds to the JSON property `env`
813
- # @return [Array<String>]
814
- attr_accessor :env
1936
+ # Output only. Hash(es) of the build source, which can be used to verify that
1937
+ # the original source integrity was maintained in the build. Note that `
1938
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
1939
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
1940
+ # source and the values contain the hash values for those files. If the build
1941
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
1942
+ # FileHash` will be for the single path to that file.
1943
+ # Corresponds to the JSON property `fileHashes`
1944
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
1945
+ attr_accessor :file_hashes
815
1946
 
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
1947
+ # Location of the source in a Google Cloud Source Repository.
1948
+ # Corresponds to the JSON property `resolvedRepoSource`
1949
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1950
+ attr_accessor :resolved_repo_source
821
1951
 
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
1952
+ # Location of the source in an archive file in Google Cloud Storage.
1953
+ # Corresponds to the JSON property `resolvedStorageSource`
1954
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1955
+ attr_accessor :resolved_storage_source
827
1956
 
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
1957
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1958
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1959
+ # builders/tree/master/gcs-fetcher).
1960
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
1961
+ # @return [Google::Apis::ContaineranalysisV1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1962
+ attr_accessor :resolved_storage_source_manifest
832
1963
 
833
1964
  def initialize(**args)
834
1965
  update!(**args)
@@ -836,39 +1967,35 @@ module Google
836
1967
 
837
1968
  # Update properties of this object
838
1969
  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)
1970
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
1971
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1972
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1973
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
845
1974
  end
846
1975
  end
847
1976
 
848
- # Indicates that the builder claims certain fields in this message to be
849
- # complete.
850
- class Completeness
1977
+ # Location of the source in an archive file in Google Cloud Storage.
1978
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
851
1979
  include Google::Apis::Core::Hashable
852
1980
 
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
1981
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1982
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1983
+ # ).
1984
+ # Corresponds to the JSON property `bucket`
1985
+ # @return [String]
1986
+ attr_accessor :bucket
859
1987
 
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
1988
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1989
+ # the latest generation will be used.
1990
+ # Corresponds to the JSON property `generation`
1991
+ # @return [Fixnum]
1992
+ attr_accessor :generation
865
1993
 
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
1994
+ # Google Cloud Storage object containing the source. This object must be a
1995
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
1996
+ # Corresponds to the JSON property `object`
1997
+ # @return [String]
1998
+ attr_accessor :object
872
1999
 
873
2000
  def initialize(**args)
874
2001
  update!(**args)
@@ -876,51 +2003,36 @@ module Google
876
2003
 
877
2004
  # Update properties of this object
878
2005
  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)
2006
+ @bucket = args[:bucket] if args.key?(:bucket)
2007
+ @generation = args[:generation] if args.key?(:generation)
2008
+ @object = args[:object] if args.key?(:object)
882
2009
  end
883
2010
  end
884
2011
 
885
- #
886
- class ComplianceNote
2012
+ # Location of the source manifest in Google Cloud Storage. This feature is in
2013
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
2014
+ # builders/tree/master/gcs-fetcher).
2015
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
887
2016
  include Google::Apis::Core::Hashable
888
2017
 
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`
896
- # @return [String]
897
- attr_accessor :description
898
-
899
- # A rationale for the existence of this compliance check.
900
- # Corresponds to the JSON property `rationale`
901
- # @return [String]
902
- attr_accessor :rationale
903
-
904
- # A description of remediation steps if the compliance check fails.
905
- # Corresponds to the JSON property `remediation`
2018
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
2019
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
2020
+ # ).
2021
+ # Corresponds to the JSON property `bucket`
906
2022
  # @return [String]
907
- attr_accessor :remediation
2023
+ attr_accessor :bucket
908
2024
 
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
2025
+ # Google Cloud Storage generation for the object. If the generation is omitted,
2026
+ # the latest generation will be used.
2027
+ # Corresponds to the JSON property `generation`
2028
+ # @return [Fixnum]
2029
+ attr_accessor :generation
914
2030
 
915
- # The title that identifies this compliance check.
916
- # Corresponds to the JSON property `title`
2031
+ # Google Cloud Storage object containing the source manifest. This object must
2032
+ # be a JSON file.
2033
+ # Corresponds to the JSON property `object`
917
2034
  # @return [String]
918
- attr_accessor :title
919
-
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
2035
+ attr_accessor :object
924
2036
 
925
2037
  def initialize(**args)
926
2038
  update!(**args)
@@ -928,30 +2040,25 @@ module Google
928
2040
 
929
2041
  # Update properties of this object
930
2042
  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)
2043
+ @bucket = args[:bucket] if args.key?(:bucket)
2044
+ @generation = args[:generation] if args.key?(:generation)
2045
+ @object = args[:object] if args.key?(:object)
938
2046
  end
939
2047
  end
940
2048
 
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
2049
+ # Start and end times for a build execution phase.
2050
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
944
2051
  include Google::Apis::Core::Hashable
945
2052
 
946
- #
947
- # Corresponds to the JSON property `nonComplianceReason`
2053
+ # End of time span.
2054
+ # Corresponds to the JSON property `endTime`
948
2055
  # @return [String]
949
- attr_accessor :non_compliance_reason
2056
+ attr_accessor :end_time
950
2057
 
951
- #
952
- # Corresponds to the JSON property `nonCompliantFiles`
953
- # @return [Array<Google::Apis::ContaineranalysisV1::NonCompliantFile>]
954
- attr_accessor :non_compliant_files
2058
+ # Start of time span.
2059
+ # Corresponds to the JSON property `startTime`
2060
+ # @return [String]
2061
+ attr_accessor :start_time
955
2062
 
956
2063
  def initialize(**args)
957
2064
  update!(**args)
@@ -959,27 +2066,29 @@ module Google
959
2066
 
960
2067
  # Update properties of this object
961
2068
  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)
2069
+ @end_time = args[:end_time] if args.key?(:end_time)
2070
+ @start_time = args[:start_time] if args.key?(:start_time)
964
2071
  end
965
2072
  end
966
2073
 
967
- # Describes the CIS benchmark version that is applicable to a given OS and os
968
- # version.
969
- class ComplianceVersion
2074
+ # Volume describes a Docker container volume which is mounted into build steps
2075
+ # in order to persist files across build step execution.
2076
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
970
2077
  include Google::Apis::Core::Hashable
971
2078
 
972
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
973
- # applicable to.
974
- # Corresponds to the JSON property `cpeUri`
2079
+ # Name of the volume to mount. Volume names must be unique per build step and
2080
+ # must be valid names for Docker volumes. Each named volume must be used by at
2081
+ # least two build steps.
2082
+ # Corresponds to the JSON property `name`
975
2083
  # @return [String]
976
- attr_accessor :cpe_uri
2084
+ attr_accessor :name
977
2085
 
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`
2086
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
2087
+ # with other volume paths on the same build step or with certain reserved volume
2088
+ # paths.
2089
+ # Corresponds to the JSON property `path`
981
2090
  # @return [String]
982
- attr_accessor :version
2091
+ attr_accessor :path
983
2092
 
984
2093
  def initialize(**args)
985
2094
  update!(**args)
@@ -987,8 +2096,8 @@ module Google
987
2096
 
988
2097
  # Update properties of this object
989
2098
  def update!(**args)
990
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
991
- @version = args[:version] if args.key?(:version)
2099
+ @name = args[:name] if args.key?(:name)
2100
+ @path = args[:path] if args.key?(:path)
992
2101
  end
993
2102
  end
994
2103
 
@@ -1016,7 +2125,8 @@ module Google
1016
2125
  end
1017
2126
  end
1018
2127
 
1019
- #
2128
+ # Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at
2129
+ # the top level of the Occurrence.
1020
2130
  class DsseAttestationOccurrence
1021
2131
  include Google::Apis::Core::Hashable
1022
2132
 
@@ -1656,13 +2766,16 @@ module Google
1656
2766
  class GetPolicyOptions
1657
2767
  include Google::Apis::Core::Hashable
1658
2768
 
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).
2769
+ # Optional. The maximum policy version that will be used to format the policy.
2770
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2771
+ # rejected. Requests for policies with any conditional role bindings must
2772
+ # specify version 3. Policies with no conditional role bindings may specify any
2773
+ # valid value or leave the field unset. The policy in the response might use the
2774
+ # policy version that you specified, or it might use a lower policy version. For
2775
+ # example, if you specify version 3, but the policy has no conditional role
2776
+ # bindings, the response uses version 1. To learn which resources support
2777
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2778
+ # google.com/iam/help/conditions/resource-policies).
1666
2779
  # Corresponds to the JSON property `requestedPolicyVersion`
1667
2780
  # @return [Fixnum]
1668
2781
  attr_accessor :requested_policy_version
@@ -1921,7 +3034,12 @@ module Google
1921
3034
  class InTotoStatement
1922
3035
  include Google::Apis::Core::Hashable
1923
3036
 
1924
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3037
+ # Always "https://in-toto.io/Statement/v0.1".
3038
+ # Corresponds to the JSON property `_type`
3039
+ # @return [String]
3040
+ attr_accessor :_type
3041
+
3042
+ # "https://slsa.dev/provenance/v0.1" for SlsaProvenance.
1925
3043
  # Corresponds to the JSON property `predicateType`
1926
3044
  # @return [String]
1927
3045
  attr_accessor :predicate_type
@@ -1931,26 +3049,27 @@ module Google
1931
3049
  # @return [Google::Apis::ContaineranalysisV1::InTotoProvenance]
1932
3050
  attr_accessor :provenance
1933
3051
 
3052
+ #
3053
+ # Corresponds to the JSON property `slsaProvenance`
3054
+ # @return [Google::Apis::ContaineranalysisV1::SlsaProvenance]
3055
+ attr_accessor :slsa_provenance
3056
+
1934
3057
  #
1935
3058
  # Corresponds to the JSON property `subject`
1936
3059
  # @return [Array<Google::Apis::ContaineranalysisV1::Subject>]
1937
3060
  attr_accessor :subject
1938
3061
 
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
3062
  def initialize(**args)
1945
3063
  update!(**args)
1946
3064
  end
1947
3065
 
1948
3066
  # Update properties of this object
1949
3067
  def update!(**args)
3068
+ @_type = args[:_type] if args.key?(:_type)
1950
3069
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
1951
3070
  @provenance = args[:provenance] if args.key?(:provenance)
3071
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
1952
3072
  @subject = args[:subject] if args.key?(:subject)
1953
- @type = args[:type] if args.key?(:type)
1954
3073
  end
1955
3074
  end
1956
3075
 
@@ -2140,15 +3259,41 @@ module Google
2140
3259
  # @return [String]
2141
3260
  attr_accessor :cpe_uri
2142
3261
 
2143
- # The path from which we gathered that this package/version is installed.
2144
- # Corresponds to the JSON property `path`
3262
+ # The path from which we gathered that this package/version is installed.
3263
+ # Corresponds to the JSON property `path`
3264
+ # @return [String]
3265
+ attr_accessor :path
3266
+
3267
+ # Version contains structured information about the version of a package.
3268
+ # Corresponds to the JSON property `version`
3269
+ # @return [Google::Apis::ContaineranalysisV1::Version]
3270
+ attr_accessor :version
3271
+
3272
+ def initialize(**args)
3273
+ update!(**args)
3274
+ end
3275
+
3276
+ # Update properties of this object
3277
+ def update!(**args)
3278
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
3279
+ @path = args[:path] if args.key?(:path)
3280
+ @version = args[:version] if args.key?(:version)
3281
+ end
3282
+ end
3283
+
3284
+ #
3285
+ class Material
3286
+ include Google::Apis::Core::Hashable
3287
+
3288
+ #
3289
+ # Corresponds to the JSON property `digest`
3290
+ # @return [Hash<String,String>]
3291
+ attr_accessor :digest
3292
+
3293
+ #
3294
+ # Corresponds to the JSON property `uri`
2145
3295
  # @return [String]
2146
- attr_accessor :path
2147
-
2148
- # Version contains structured information about the version of a package.
2149
- # Corresponds to the JSON property `version`
2150
- # @return [Google::Apis::ContaineranalysisV1::Version]
2151
- attr_accessor :version
3296
+ attr_accessor :uri
2152
3297
 
2153
3298
  def initialize(**args)
2154
3299
  update!(**args)
@@ -2156,9 +3301,8 @@ module Google
2156
3301
 
2157
3302
  # Update properties of this object
2158
3303
  def update!(**args)
2159
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
2160
- @path = args[:path] if args.key?(:path)
2161
- @version = args[:version] if args.key?(:version)
3304
+ @digest = args[:digest] if args.key?(:digest)
3305
+ @uri = args[:uri] if args.key?(:uri)
2162
3306
  end
2163
3307
  end
2164
3308
 
@@ -2431,7 +3575,8 @@ module Google
2431
3575
  # @return [Google::Apis::ContaineranalysisV1::DiscoveryOccurrence]
2432
3576
  attr_accessor :discovery
2433
3577
 
2434
- # Describes an attestation of an artifact using dsse.
3578
+ # Deprecated. Prefer to use a regular Occurrence, and populate the Envelope at
3579
+ # the top level of the Occurrence.
2435
3580
  # Corresponds to the JSON property `dsseAttestation`
2436
3581
  # @return [Google::Apis::ContaineranalysisV1::DsseAttestationOccurrence]
2437
3582
  attr_accessor :dsse_attestation
@@ -3045,6 +4190,210 @@ module Google
3045
4190
  end
3046
4191
  end
3047
4192
 
4193
+ #
4194
+ class SlsaBuilder
4195
+ include Google::Apis::Core::Hashable
4196
+
4197
+ #
4198
+ # Corresponds to the JSON property `id`
4199
+ # @return [String]
4200
+ attr_accessor :id
4201
+
4202
+ def initialize(**args)
4203
+ update!(**args)
4204
+ end
4205
+
4206
+ # Update properties of this object
4207
+ def update!(**args)
4208
+ @id = args[:id] if args.key?(:id)
4209
+ end
4210
+ end
4211
+
4212
+ # Indicates that the builder claims certain fields in this message to be
4213
+ # complete.
4214
+ class SlsaCompleteness
4215
+ include Google::Apis::Core::Hashable
4216
+
4217
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4218
+ # all external inputs are properly captured in the recipe.
4219
+ # Corresponds to the JSON property `arguments`
4220
+ # @return [Boolean]
4221
+ attr_accessor :arguments
4222
+ alias_method :arguments?, :arguments
4223
+
4224
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4225
+ # Corresponds to the JSON property `environment`
4226
+ # @return [Boolean]
4227
+ attr_accessor :environment
4228
+ alias_method :environment?, :environment
4229
+
4230
+ # If true, the builder claims that materials are complete, usually through some
4231
+ # controls to prevent network access. Sometimes called "hermetic".
4232
+ # Corresponds to the JSON property `materials`
4233
+ # @return [Boolean]
4234
+ attr_accessor :materials
4235
+ alias_method :materials?, :materials
4236
+
4237
+ def initialize(**args)
4238
+ update!(**args)
4239
+ end
4240
+
4241
+ # Update properties of this object
4242
+ def update!(**args)
4243
+ @arguments = args[:arguments] if args.key?(:arguments)
4244
+ @environment = args[:environment] if args.key?(:environment)
4245
+ @materials = args[:materials] if args.key?(:materials)
4246
+ end
4247
+ end
4248
+
4249
+ # Other properties of the build.
4250
+ class SlsaMetadata
4251
+ include Google::Apis::Core::Hashable
4252
+
4253
+ # The timestamp of when the build completed.
4254
+ # Corresponds to the JSON property `buildFinishedOn`
4255
+ # @return [String]
4256
+ attr_accessor :build_finished_on
4257
+
4258
+ # Identifies the particular build invocation, which can be useful for finding
4259
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4260
+ # per in-toto Provenance spec.
4261
+ # Corresponds to the JSON property `buildInvocationId`
4262
+ # @return [String]
4263
+ attr_accessor :build_invocation_id
4264
+
4265
+ # The timestamp of when the build started.
4266
+ # Corresponds to the JSON property `buildStartedOn`
4267
+ # @return [String]
4268
+ attr_accessor :build_started_on
4269
+
4270
+ # Indicates that the builder claims certain fields in this message to be
4271
+ # complete.
4272
+ # Corresponds to the JSON property `completeness`
4273
+ # @return [Google::Apis::ContaineranalysisV1::SlsaCompleteness]
4274
+ attr_accessor :completeness
4275
+
4276
+ # If true, the builder claims that running the recipe on materials will produce
4277
+ # bit-for-bit identical output.
4278
+ # Corresponds to the JSON property `reproducible`
4279
+ # @return [Boolean]
4280
+ attr_accessor :reproducible
4281
+ alias_method :reproducible?, :reproducible
4282
+
4283
+ def initialize(**args)
4284
+ update!(**args)
4285
+ end
4286
+
4287
+ # Update properties of this object
4288
+ def update!(**args)
4289
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4290
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4291
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4292
+ @completeness = args[:completeness] if args.key?(:completeness)
4293
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4294
+ end
4295
+ end
4296
+
4297
+ #
4298
+ class SlsaProvenance
4299
+ include Google::Apis::Core::Hashable
4300
+
4301
+ # required
4302
+ # Corresponds to the JSON property `builder`
4303
+ # @return [Google::Apis::ContaineranalysisV1::SlsaBuilder]
4304
+ attr_accessor :builder
4305
+
4306
+ # The collection of artifacts that influenced the build including sources,
4307
+ # dependencies, build tools, base images, and so on. This is considered to be
4308
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4309
+ # equivalent to empty.
4310
+ # Corresponds to the JSON property `materials`
4311
+ # @return [Array<Google::Apis::ContaineranalysisV1::Material>]
4312
+ attr_accessor :materials
4313
+
4314
+ # Other properties of the build.
4315
+ # Corresponds to the JSON property `metadata`
4316
+ # @return [Google::Apis::ContaineranalysisV1::SlsaMetadata]
4317
+ attr_accessor :metadata
4318
+
4319
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4320
+ # corresponds to one step in the recipe.
4321
+ # Corresponds to the JSON property `recipe`
4322
+ # @return [Google::Apis::ContaineranalysisV1::SlsaRecipe]
4323
+ attr_accessor :recipe
4324
+
4325
+ def initialize(**args)
4326
+ update!(**args)
4327
+ end
4328
+
4329
+ # Update properties of this object
4330
+ def update!(**args)
4331
+ @builder = args[:builder] if args.key?(:builder)
4332
+ @materials = args[:materials] if args.key?(:materials)
4333
+ @metadata = args[:metadata] if args.key?(:metadata)
4334
+ @recipe = args[:recipe] if args.key?(:recipe)
4335
+ end
4336
+ end
4337
+
4338
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4339
+ # corresponds to one step in the recipe.
4340
+ class SlsaRecipe
4341
+ include Google::Apis::Core::Hashable
4342
+
4343
+ # Collection of all external inputs that influenced the build on top of recipe.
4344
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4345
+ # make", then this might be the flags passed to make aside from the target,
4346
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4347
+ # structure may be different.
4348
+ # Corresponds to the JSON property `arguments`
4349
+ # @return [Hash<String,Object>]
4350
+ attr_accessor :arguments
4351
+
4352
+ # Index in materials containing the recipe steps that are not implied by recipe.
4353
+ # type. For example, if the recipe type were "make", then this would point to
4354
+ # the source containing the Makefile, not the make program itself. Set to -1 if
4355
+ # the recipe doesn't come from a material, as zero is default unset value for
4356
+ # int64.
4357
+ # Corresponds to the JSON property `definedInMaterial`
4358
+ # @return [Fixnum]
4359
+ attr_accessor :defined_in_material
4360
+
4361
+ # String identifying the entry point into the build. This is often a path to a
4362
+ # configuration file and/or a target label within that file. The syntax and
4363
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
4364
+ # , then this would reference the directory in which to run make as well as
4365
+ # which target to use.
4366
+ # Corresponds to the JSON property `entryPoint`
4367
+ # @return [String]
4368
+ attr_accessor :entry_point
4369
+
4370
+ # Any other builder-controlled inputs necessary for correctly evaluating the
4371
+ # recipe. Usually only needed for reproducing the build but not evaluated as
4372
+ # part of policy. Depending on the recipe Type, the structure may be different.
4373
+ # Corresponds to the JSON property `environment`
4374
+ # @return [Hash<String,Object>]
4375
+ attr_accessor :environment
4376
+
4377
+ # URI indicating what type of recipe was performed. It determines the meaning of
4378
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
4379
+ # Corresponds to the JSON property `type`
4380
+ # @return [String]
4381
+ attr_accessor :type
4382
+
4383
+ def initialize(**args)
4384
+ update!(**args)
4385
+ end
4386
+
4387
+ # Update properties of this object
4388
+ def update!(**args)
4389
+ @arguments = args[:arguments] if args.key?(:arguments)
4390
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
4391
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
4392
+ @environment = args[:environment] if args.key?(:environment)
4393
+ @type = args[:type] if args.key?(:type)
4394
+ end
4395
+ end
4396
+
3048
4397
  # Source describes the location of the source used for the build.
3049
4398
  class Source
3050
4399
  include Google::Apis::Core::Hashable
@@ -3173,7 +4522,8 @@ module Google
3173
4522
  class Subject
3174
4523
  include Google::Apis::Core::Hashable
3175
4524
 
3176
- # "": ""
4525
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
4526
+ # attestation/blob/main/spec/field_types.md#DigestSet
3177
4527
  # Corresponds to the JSON property `digest`
3178
4528
  # @return [Hash<String,String>]
3179
4529
  attr_accessor :digest
@@ -3234,31 +4584,6 @@ module Google
3234
4584
  end
3235
4585
  end
3236
4586
 
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
4587
  # The Upgrade Distribution represents metadata about the Upgrade for each
3263
4588
  # operating system (CPE). Some distributions have additional metadata around
3264
4589
  # updates, classifying them into various categories and severities.
@@ -3447,36 +4772,6 @@ module Google
3447
4772
  end
3448
4773
  end
3449
4774
 
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
4775
  # A security vulnerability that can be found in resources.
3481
4776
  class VulnerabilityNote
3482
4777
  include Google::Apis::Core::Hashable