google-apis-containeranalysis_v1alpha1 0.16.0 → 0.17.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.
@@ -438,8 +438,832 @@ module Google
438
438
  end
439
439
  end
440
440
 
441
+ # Note holding the version of the provider's builder and the signature of the
442
+ # provenance message in linked BuildDetails.
443
+ class BuildType
444
+ include Google::Apis::Core::Hashable
445
+
446
+ # Version of the builder which produced this Note.
447
+ # Corresponds to the JSON property `builderVersion`
448
+ # @return [String]
449
+ attr_accessor :builder_version
450
+
451
+ # Message encapsulating the signature of the verified build.
452
+ # Corresponds to the JSON property `signature`
453
+ # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
454
+ attr_accessor :signature
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @builder_version = args[:builder_version] if args.key?(:builder_version)
463
+ @signature = args[:signature] if args.key?(:signature)
464
+ end
465
+ end
466
+
467
+ #
468
+ class BuilderConfig
469
+ include Google::Apis::Core::Hashable
470
+
471
+ #
472
+ # Corresponds to the JSON property `id`
473
+ # @return [String]
474
+ attr_accessor :id
475
+
476
+ def initialize(**args)
477
+ update!(**args)
478
+ end
479
+
480
+ # Update properties of this object
481
+ def update!(**args)
482
+ @id = args[:id] if args.key?(:id)
483
+ end
484
+ end
485
+
486
+ # A compliance check that is a CIS benchmark.
487
+ class CisBenchmark
488
+ include Google::Apis::Core::Hashable
489
+
490
+ # The profile level of this CIS benchmark check.
491
+ # Corresponds to the JSON property `profileLevel`
492
+ # @return [Fixnum]
493
+ attr_accessor :profile_level
494
+
495
+ # The severity level of this CIS benchmark check.
496
+ # Corresponds to the JSON property `severity`
497
+ # @return [String]
498
+ attr_accessor :severity
499
+
500
+ def initialize(**args)
501
+ update!(**args)
502
+ end
503
+
504
+ # Update properties of this object
505
+ def update!(**args)
506
+ @profile_level = args[:profile_level] if args.key?(:profile_level)
507
+ @severity = args[:severity] if args.key?(:severity)
508
+ end
509
+ end
510
+
511
+ # Command describes a step performed as part of the build pipeline.
512
+ class Command
513
+ include Google::Apis::Core::Hashable
514
+
515
+ # Command-line arguments used when executing this Command.
516
+ # Corresponds to the JSON property `args`
517
+ # @return [Array<String>]
518
+ attr_accessor :args
519
+
520
+ # Working directory (relative to project source root) used when running this
521
+ # Command.
522
+ # Corresponds to the JSON property `dir`
523
+ # @return [String]
524
+ attr_accessor :dir
525
+
526
+ # Environment variables set before running this Command.
527
+ # Corresponds to the JSON property `env`
528
+ # @return [Array<String>]
529
+ attr_accessor :env
530
+
531
+ # Optional unique identifier for this Command, used in wait_for to reference
532
+ # this Command as a dependency.
533
+ # Corresponds to the JSON property `id`
534
+ # @return [String]
535
+ attr_accessor :id
536
+
537
+ # Name of the command, as presented on the command line, or if the command is
538
+ # packaged as a Docker container, as presented to `docker pull`.
539
+ # Corresponds to the JSON property `name`
540
+ # @return [String]
541
+ attr_accessor :name
542
+
543
+ # The ID(s) of the Command(s) that this Command depends on.
544
+ # Corresponds to the JSON property `waitFor`
545
+ # @return [Array<String>]
546
+ attr_accessor :wait_for
547
+
548
+ def initialize(**args)
549
+ update!(**args)
550
+ end
551
+
552
+ # Update properties of this object
553
+ def update!(**args)
554
+ @args = args[:args] if args.key?(:args)
555
+ @dir = args[:dir] if args.key?(:dir)
556
+ @env = args[:env] if args.key?(:env)
557
+ @id = args[:id] if args.key?(:id)
558
+ @name = args[:name] if args.key?(:name)
559
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
560
+ end
561
+ end
562
+
563
+ # Indicates that the builder claims certain fields in this message to be
564
+ # complete.
565
+ class Completeness
566
+ include Google::Apis::Core::Hashable
567
+
568
+ # If true, the builder claims that recipe.arguments is complete, meaning that
569
+ # all external inputs are properly captured in the recipe.
570
+ # Corresponds to the JSON property `arguments`
571
+ # @return [Boolean]
572
+ attr_accessor :arguments
573
+ alias_method :arguments?, :arguments
574
+
575
+ # If true, the builder claims that recipe.environment is claimed to be complete.
576
+ # Corresponds to the JSON property `environment`
577
+ # @return [Boolean]
578
+ attr_accessor :environment
579
+ alias_method :environment?, :environment
580
+
581
+ # If true, the builder claims that materials are complete, usually through some
582
+ # controls to prevent network access. Sometimes called "hermetic".
583
+ # Corresponds to the JSON property `materials`
584
+ # @return [Boolean]
585
+ attr_accessor :materials
586
+ alias_method :materials?, :materials
587
+
588
+ def initialize(**args)
589
+ update!(**args)
590
+ end
591
+
592
+ # Update properties of this object
593
+ def update!(**args)
594
+ @arguments = args[:arguments] if args.key?(:arguments)
595
+ @environment = args[:environment] if args.key?(:environment)
596
+ @materials = args[:materials] if args.key?(:materials)
597
+ end
598
+ end
599
+
600
+ # ComplianceNote encapsulates all information about a specific compliance check.
601
+ class ComplianceNote
602
+ include Google::Apis::Core::Hashable
603
+
604
+ # A compliance check that is a CIS benchmark.
605
+ # Corresponds to the JSON property `cisBenchmark`
606
+ # @return [Google::Apis::ContaineranalysisV1alpha1::CisBenchmark]
607
+ attr_accessor :cis_benchmark
608
+
609
+ # A description about this compliance check.
610
+ # Corresponds to the JSON property `description`
611
+ # @return [String]
612
+ attr_accessor :description
613
+
614
+ # A rationale for the existence of this compliance check.
615
+ # Corresponds to the JSON property `rationale`
616
+ # @return [String]
617
+ attr_accessor :rationale
618
+
619
+ # A description of remediation steps if the compliance check fails.
620
+ # Corresponds to the JSON property `remediation`
621
+ # @return [String]
622
+ attr_accessor :remediation
623
+
624
+ # Serialized scan instructions with a predefined format.
625
+ # Corresponds to the JSON property `scanInstructions`
626
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
627
+ # @return [String]
628
+ attr_accessor :scan_instructions
629
+
630
+ # The title that identifies this compliance check.
631
+ # Corresponds to the JSON property `title`
632
+ # @return [String]
633
+ attr_accessor :title
634
+
635
+ # The OS and config versions the benchmark applies to.
636
+ # Corresponds to the JSON property `version`
637
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
638
+ attr_accessor :version
639
+
640
+ def initialize(**args)
641
+ update!(**args)
642
+ end
643
+
644
+ # Update properties of this object
645
+ def update!(**args)
646
+ @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
647
+ @description = args[:description] if args.key?(:description)
648
+ @rationale = args[:rationale] if args.key?(:rationale)
649
+ @remediation = args[:remediation] if args.key?(:remediation)
650
+ @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
651
+ @title = args[:title] if args.key?(:title)
652
+ @version = args[:version] if args.key?(:version)
653
+ end
654
+ end
655
+
656
+ # An indication that the compliance checks in the associated ComplianceNote were
657
+ # not satisfied for particular resources or a specified reason.
658
+ class ComplianceOccurrence
659
+ include Google::Apis::Core::Hashable
660
+
661
+ # The reason for non compliance of these files.
662
+ # Corresponds to the JSON property `nonComplianceReason`
663
+ # @return [String]
664
+ attr_accessor :non_compliance_reason
665
+
666
+ # A list of files which are violating compliance checks.
667
+ # Corresponds to the JSON property `nonCompliantFiles`
668
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
669
+ attr_accessor :non_compliant_files
670
+
671
+ def initialize(**args)
672
+ update!(**args)
673
+ end
674
+
675
+ # Update properties of this object
676
+ def update!(**args)
677
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
678
+ @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
679
+ end
680
+ end
681
+
682
+ # Describes the CIS benchmark version that is applicable to a given OS and os
683
+ # version.
684
+ class ComplianceVersion
685
+ include Google::Apis::Core::Hashable
686
+
687
+ # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
688
+ # applicable to.
689
+ # Corresponds to the JSON property `cpeUri`
690
+ # @return [String]
691
+ attr_accessor :cpe_uri
692
+
693
+ # The version of the benchmark. This is set to the version of the OS-specific
694
+ # CIS document the benchmark is defined in.
695
+ # Corresponds to the JSON property `version`
696
+ # @return [String]
697
+ attr_accessor :version
698
+
699
+ def initialize(**args)
700
+ update!(**args)
701
+ end
702
+
703
+ # Update properties of this object
704
+ def update!(**args)
705
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
706
+ @version = args[:version] if args.key?(:version)
707
+ end
708
+ end
709
+
710
+ # ApprovalConfig describes configuration for manual approval of a build.
711
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig
712
+ include Google::Apis::Core::Hashable
713
+
714
+ # Whether or not approval is needed. If this is set on a build, it will become
715
+ # pending when created, and will need to be explicitly approved to start.
716
+ # Corresponds to the JSON property `approvalRequired`
717
+ # @return [Boolean]
718
+ attr_accessor :approval_required
719
+ alias_method :approval_required?, :approval_required
720
+
721
+ def initialize(**args)
722
+ update!(**args)
723
+ end
724
+
725
+ # Update properties of this object
726
+ def update!(**args)
727
+ @approval_required = args[:approval_required] if args.key?(:approval_required)
728
+ end
729
+ end
730
+
731
+ # ApprovalResult describes the decision and associated metadata of a manual
732
+ # approval of a build.
733
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult
734
+ include Google::Apis::Core::Hashable
735
+
736
+ # Output only. The time when the approval decision was made.
737
+ # Corresponds to the JSON property `approvalTime`
738
+ # @return [String]
739
+ attr_accessor :approval_time
740
+
741
+ # Output only. Email of the user that called the ApproveBuild API to approve or
742
+ # reject a build at the time that the API was called.
743
+ # Corresponds to the JSON property `approverAccount`
744
+ # @return [String]
745
+ attr_accessor :approver_account
746
+
747
+ # Optional. An optional comment for this manual approval result.
748
+ # Corresponds to the JSON property `comment`
749
+ # @return [String]
750
+ attr_accessor :comment
751
+
752
+ # Required. The decision of this manual approval.
753
+ # Corresponds to the JSON property `decision`
754
+ # @return [String]
755
+ attr_accessor :decision
756
+
757
+ # Optional. An optional URL tied to this manual approval result. This field is
758
+ # essentially the same as comment, except that it will be rendered by the UI
759
+ # differently. An example use case is a link to an external job that approved
760
+ # this Build.
761
+ # Corresponds to the JSON property `url`
762
+ # @return [String]
763
+ attr_accessor :url
764
+
765
+ def initialize(**args)
766
+ update!(**args)
767
+ end
768
+
769
+ # Update properties of this object
770
+ def update!(**args)
771
+ @approval_time = args[:approval_time] if args.key?(:approval_time)
772
+ @approver_account = args[:approver_account] if args.key?(:approver_account)
773
+ @comment = args[:comment] if args.key?(:comment)
774
+ @decision = args[:decision] if args.key?(:decision)
775
+ @url = args[:url] if args.key?(:url)
776
+ end
777
+ end
778
+
779
+ # Artifacts produced by a build that should be uploaded upon successful
780
+ # completion of all build steps.
781
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts
782
+ include Google::Apis::Core::Hashable
783
+
784
+ # A list of images to be pushed upon the successful completion of all build
785
+ # steps. The images will be pushed using the builder service account's
786
+ # credentials. The digests of the pushed images will be stored in the Build
787
+ # resource's results field. If any of the images fail to be pushed, the build is
788
+ # marked FAILURE.
789
+ # Corresponds to the JSON property `images`
790
+ # @return [Array<String>]
791
+ attr_accessor :images
792
+
793
+ # Files in the workspace to upload to Cloud Storage upon successful completion
794
+ # of all build steps.
795
+ # Corresponds to the JSON property `objects`
796
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects]
797
+ attr_accessor :objects
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @images = args[:images] if args.key?(:images)
806
+ @objects = args[:objects] if args.key?(:objects)
807
+ end
808
+ end
809
+
810
+ # Files in the workspace to upload to Cloud Storage upon successful completion
811
+ # of all build steps.
812
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsArtifactObjects
813
+ include Google::Apis::Core::Hashable
814
+
815
+ # Cloud Storage bucket and optional object path, in the form "gs://bucket/path/
816
+ # to/somewhere/". (see [Bucket Name Requirements](https://cloud.google.com/
817
+ # storage/docs/bucket-naming#requirements)). Files in the workspace matching any
818
+ # path pattern will be uploaded to Cloud Storage with this location as a prefix.
819
+ # Corresponds to the JSON property `location`
820
+ # @return [String]
821
+ attr_accessor :location
822
+
823
+ # Path globs used to match files in the build's workspace.
824
+ # Corresponds to the JSON property `paths`
825
+ # @return [Array<String>]
826
+ attr_accessor :paths
827
+
828
+ # Start and end times for a build execution phase.
829
+ # Corresponds to the JSON property `timing`
830
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
831
+ attr_accessor :timing
832
+
833
+ def initialize(**args)
834
+ update!(**args)
835
+ end
836
+
837
+ # Update properties of this object
838
+ def update!(**args)
839
+ @location = args[:location] if args.key?(:location)
840
+ @paths = args[:paths] if args.key?(:paths)
841
+ @timing = args[:timing] if args.key?(:timing)
842
+ end
843
+ end
844
+
845
+ # A build resource in the Cloud Build API. At a high level, a `Build` describes
846
+ # where to find source code, how to build it (for example, the builder image to
847
+ # run on the source), and where to store the built artifacts. Fields can include
848
+ # the following variables, which will be expanded when the build is created: - $
849
+ # PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number
850
+ # of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the
851
+ # autogenerated ID of the build. - $REPO_NAME: the source repository name
852
+ # specified by RepoSource. - $BRANCH_NAME: the branch name specified by
853
+ # RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID
854
+ # or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the
855
+ # specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $
856
+ # COMMIT_SHA.
857
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build
858
+ include Google::Apis::Core::Hashable
859
+
860
+ # BuildApproval describes a build's approval configuration, state, and result.
861
+ # Corresponds to the JSON property `approval`
862
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval]
863
+ attr_accessor :approval
864
+
865
+ # Artifacts produced by a build that should be uploaded upon successful
866
+ # completion of all build steps.
867
+ # Corresponds to the JSON property `artifacts`
868
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Artifacts]
869
+ attr_accessor :artifacts
870
+
871
+ # Secrets and secret environment variables.
872
+ # Corresponds to the JSON property `availableSecrets`
873
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets]
874
+ attr_accessor :available_secrets
875
+
876
+ # Output only. The ID of the `BuildTrigger` that triggered this build, if it was
877
+ # triggered automatically.
878
+ # Corresponds to the JSON property `buildTriggerId`
879
+ # @return [String]
880
+ attr_accessor :build_trigger_id
881
+
882
+ # Output only. Time at which the request to create the build was received.
883
+ # Corresponds to the JSON property `createTime`
884
+ # @return [String]
885
+ attr_accessor :create_time
886
+
887
+ # A fatal problem encountered during the execution of the build.
888
+ # Corresponds to the JSON property `failureInfo`
889
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo]
890
+ attr_accessor :failure_info
891
+
892
+ # Output only. Time at which execution of the build was finished. The difference
893
+ # between finish_time and start_time is the duration of the build's execution.
894
+ # Corresponds to the JSON property `finishTime`
895
+ # @return [String]
896
+ attr_accessor :finish_time
897
+
898
+ # Output only. Unique identifier of the build.
899
+ # Corresponds to the JSON property `id`
900
+ # @return [String]
901
+ attr_accessor :id
902
+
903
+ # A list of images to be pushed upon the successful completion of all build
904
+ # steps. The images are pushed using the builder service account's credentials.
905
+ # The digests of the pushed images will be stored in the `Build` resource's
906
+ # results field. If any of the images fail to be pushed, the build status is
907
+ # marked `FAILURE`.
908
+ # Corresponds to the JSON property `images`
909
+ # @return [Array<String>]
910
+ attr_accessor :images
911
+
912
+ # Output only. URL to logs for this build in Google Cloud Console.
913
+ # Corresponds to the JSON property `logUrl`
914
+ # @return [String]
915
+ attr_accessor :log_url
916
+
917
+ # Google Cloud Storage bucket where logs should be written (see [Bucket Name
918
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
919
+ # ). Logs file names will be of the format `$`logs_bucket`/log-$`build_id`.txt`.
920
+ # Corresponds to the JSON property `logsBucket`
921
+ # @return [String]
922
+ attr_accessor :logs_bucket
923
+
924
+ # Output only. The 'Build' name with format: `projects/`project`/locations/`
925
+ # location`/builds/`build``, where `build` is a unique identifier generated by
926
+ # the service.
927
+ # Corresponds to the JSON property `name`
928
+ # @return [String]
929
+ attr_accessor :name
930
+
931
+ # Optional arguments to enable specific features of builds.
932
+ # Corresponds to the JSON property `options`
933
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions]
934
+ attr_accessor :options
935
+
936
+ # Output only. ID of the project.
937
+ # Corresponds to the JSON property `projectId`
938
+ # @return [String]
939
+ attr_accessor :project_id
940
+
941
+ # TTL in queue for this build. If provided and the build is enqueued longer than
942
+ # this value, the build will expire and the build status will be `EXPIRED`. The
943
+ # TTL starts ticking from create_time.
944
+ # Corresponds to the JSON property `queueTtl`
945
+ # @return [String]
946
+ attr_accessor :queue_ttl
947
+
948
+ # Artifacts created by the build pipeline.
949
+ # Corresponds to the JSON property `results`
950
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Results]
951
+ attr_accessor :results
952
+
953
+ # Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is
954
+ # the recommended technique for managing sensitive data with Cloud Build. Use `
955
+ # available_secrets` to configure builds to access secrets from Secret Manager.
956
+ # For instructions, see: https://cloud.google.com/cloud-build/docs/securing-
957
+ # builds/use-secrets
958
+ # Corresponds to the JSON property `secrets`
959
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Secret>]
960
+ attr_accessor :secrets
961
+
962
+ # IAM service account whose credentials will be used at build runtime. Must be
963
+ # of the format `projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT``. ACCOUNT can
964
+ # be email address or uniqueId of the service account.
965
+ # Corresponds to the JSON property `serviceAccount`
966
+ # @return [String]
967
+ attr_accessor :service_account
968
+
969
+ # Location of the source in a supported storage service.
970
+ # Corresponds to the JSON property `source`
971
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Source]
972
+ attr_accessor :source
973
+
974
+ # Provenance of the source. Ways to find the original source, or verify that
975
+ # some source was used for this build.
976
+ # Corresponds to the JSON property `sourceProvenance`
977
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance]
978
+ attr_accessor :source_provenance
979
+
980
+ # Output only. Time at which execution of the build was started.
981
+ # Corresponds to the JSON property `startTime`
982
+ # @return [String]
983
+ attr_accessor :start_time
984
+
985
+ # Output only. Status of the build.
986
+ # Corresponds to the JSON property `status`
987
+ # @return [String]
988
+ attr_accessor :status
989
+
990
+ # Output only. Customer-readable message about the current status.
991
+ # Corresponds to the JSON property `statusDetail`
992
+ # @return [String]
993
+ attr_accessor :status_detail
994
+
995
+ # Required. The operations to be performed on the workspace.
996
+ # Corresponds to the JSON property `steps`
997
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep>]
998
+ attr_accessor :steps
999
+
1000
+ # Substitutions data for `Build` resource.
1001
+ # Corresponds to the JSON property `substitutions`
1002
+ # @return [Hash<String,String>]
1003
+ attr_accessor :substitutions
1004
+
1005
+ # Tags for annotation of a `Build`. These are not docker tags.
1006
+ # Corresponds to the JSON property `tags`
1007
+ # @return [Array<String>]
1008
+ attr_accessor :tags
1009
+
1010
+ # Amount of time that this build should be allowed to run, to second granularity.
1011
+ # If this amount of time elapses, work on the build will cease and the build
1012
+ # status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default
1013
+ # time is ten minutes.
1014
+ # Corresponds to the JSON property `timeout`
1015
+ # @return [String]
1016
+ attr_accessor :timeout
1017
+
1018
+ # Output only. Stores timing information for phases of the build. Valid keys are:
1019
+ # * BUILD: time to execute all build steps. * PUSH: time to push all specified
1020
+ # images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up
1021
+ # build. If the build does not specify source or images, these keys will not be
1022
+ # included.
1023
+ # Corresponds to the JSON property `timing`
1024
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan>]
1025
+ attr_accessor :timing
1026
+
1027
+ # Output only. Non-fatal problems encountered during the execution of the build.
1028
+ # Corresponds to the JSON property `warnings`
1029
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning>]
1030
+ attr_accessor :warnings
1031
+
1032
+ def initialize(**args)
1033
+ update!(**args)
1034
+ end
1035
+
1036
+ # Update properties of this object
1037
+ def update!(**args)
1038
+ @approval = args[:approval] if args.key?(:approval)
1039
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1040
+ @available_secrets = args[:available_secrets] if args.key?(:available_secrets)
1041
+ @build_trigger_id = args[:build_trigger_id] if args.key?(:build_trigger_id)
1042
+ @create_time = args[:create_time] if args.key?(:create_time)
1043
+ @failure_info = args[:failure_info] if args.key?(:failure_info)
1044
+ @finish_time = args[:finish_time] if args.key?(:finish_time)
1045
+ @id = args[:id] if args.key?(:id)
1046
+ @images = args[:images] if args.key?(:images)
1047
+ @log_url = args[:log_url] if args.key?(:log_url)
1048
+ @logs_bucket = args[:logs_bucket] if args.key?(:logs_bucket)
1049
+ @name = args[:name] if args.key?(:name)
1050
+ @options = args[:options] if args.key?(:options)
1051
+ @project_id = args[:project_id] if args.key?(:project_id)
1052
+ @queue_ttl = args[:queue_ttl] if args.key?(:queue_ttl)
1053
+ @results = args[:results] if args.key?(:results)
1054
+ @secrets = args[:secrets] if args.key?(:secrets)
1055
+ @service_account = args[:service_account] if args.key?(:service_account)
1056
+ @source = args[:source] if args.key?(:source)
1057
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
1058
+ @start_time = args[:start_time] if args.key?(:start_time)
1059
+ @status = args[:status] if args.key?(:status)
1060
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1061
+ @steps = args[:steps] if args.key?(:steps)
1062
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1063
+ @tags = args[:tags] if args.key?(:tags)
1064
+ @timeout = args[:timeout] if args.key?(:timeout)
1065
+ @timing = args[:timing] if args.key?(:timing)
1066
+ @warnings = args[:warnings] if args.key?(:warnings)
1067
+ end
1068
+ end
1069
+
1070
+ # BuildApproval describes a build's approval configuration, state, and result.
1071
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval
1072
+ include Google::Apis::Core::Hashable
1073
+
1074
+ # ApprovalConfig describes configuration for manual approval of a build.
1075
+ # Corresponds to the JSON property `config`
1076
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalConfig]
1077
+ attr_accessor :config
1078
+
1079
+ # ApprovalResult describes the decision and associated metadata of a manual
1080
+ # approval of a build.
1081
+ # Corresponds to the JSON property `result`
1082
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1ApprovalResult]
1083
+ attr_accessor :result
1084
+
1085
+ # Output only. The state of this build's approval.
1086
+ # Corresponds to the JSON property `state`
1087
+ # @return [String]
1088
+ attr_accessor :state
1089
+
1090
+ def initialize(**args)
1091
+ update!(**args)
1092
+ end
1093
+
1094
+ # Update properties of this object
1095
+ def update!(**args)
1096
+ @config = args[:config] if args.key?(:config)
1097
+ @result = args[:result] if args.key?(:result)
1098
+ @state = args[:state] if args.key?(:state)
1099
+ end
1100
+ end
1101
+
1102
+ # A fatal problem encountered during the execution of the build.
1103
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo
1104
+ include Google::Apis::Core::Hashable
1105
+
1106
+ # Explains the failure issue in more detail using hard-coded text.
1107
+ # Corresponds to the JSON property `detail`
1108
+ # @return [String]
1109
+ attr_accessor :detail
1110
+
1111
+ # The name of the failure.
1112
+ # Corresponds to the JSON property `type`
1113
+ # @return [String]
1114
+ attr_accessor :type
1115
+
1116
+ def initialize(**args)
1117
+ update!(**args)
1118
+ end
1119
+
1120
+ # Update properties of this object
1121
+ def update!(**args)
1122
+ @detail = args[:detail] if args.key?(:detail)
1123
+ @type = args[:type] if args.key?(:type)
1124
+ end
1125
+ end
1126
+
1127
+ # Optional arguments to enable specific features of builds.
1128
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions
1129
+ include Google::Apis::Core::Hashable
1130
+
1131
+ # Requested disk size for the VM that runs the build. Note that this is *NOT* "
1132
+ # disk free"; some of the space will be used by the operating system and build
1133
+ # utilities. Also note that this is the minimum disk size that will be allocated
1134
+ # for the build -- the build may run with a larger disk than requested. At
1135
+ # present, the maximum disk size is 1000GB; builds that request more than the
1136
+ # maximum are rejected with an error.
1137
+ # Corresponds to the JSON property `diskSizeGb`
1138
+ # @return [Fixnum]
1139
+ attr_accessor :disk_size_gb
1140
+
1141
+ # Option to specify whether or not to apply bash style string operations to the
1142
+ # substitutions. NOTE: this is always enabled for triggered builds and cannot be
1143
+ # overridden in the build configuration file.
1144
+ # Corresponds to the JSON property `dynamicSubstitutions`
1145
+ # @return [Boolean]
1146
+ attr_accessor :dynamic_substitutions
1147
+ alias_method :dynamic_substitutions?, :dynamic_substitutions
1148
+
1149
+ # A list of global environment variable definitions that will exist for all
1150
+ # build steps in this build. If a variable is defined in both globally and in a
1151
+ # build step, the variable will use the build step value. The elements are of
1152
+ # the form "KEY=VALUE" for the environment variable "KEY" being given the value "
1153
+ # VALUE".
1154
+ # Corresponds to the JSON property `env`
1155
+ # @return [Array<String>]
1156
+ attr_accessor :env
1157
+
1158
+ # Option to define build log streaming behavior to Google Cloud Storage.
1159
+ # Corresponds to the JSON property `logStreamingOption`
1160
+ # @return [String]
1161
+ attr_accessor :log_streaming_option
1162
+
1163
+ # Option to specify the logging mode, which determines if and where build logs
1164
+ # are stored.
1165
+ # Corresponds to the JSON property `logging`
1166
+ # @return [String]
1167
+ attr_accessor :logging
1168
+
1169
+ # Compute Engine machine type on which to run the build.
1170
+ # Corresponds to the JSON property `machineType`
1171
+ # @return [String]
1172
+ attr_accessor :machine_type
1173
+
1174
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1175
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1176
+ # run-builds-in-private-pool) for more information.
1177
+ # Corresponds to the JSON property `pool`
1178
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption]
1179
+ attr_accessor :pool
1180
+
1181
+ # Requested verifiability options.
1182
+ # Corresponds to the JSON property `requestedVerifyOption`
1183
+ # @return [String]
1184
+ attr_accessor :requested_verify_option
1185
+
1186
+ # A list of global environment variables, which are encrypted using a Cloud Key
1187
+ # Management Service crypto key. These values must be specified in the build's `
1188
+ # Secret`. These variables will be available to all build steps in this build.
1189
+ # Corresponds to the JSON property `secretEnv`
1190
+ # @return [Array<String>]
1191
+ attr_accessor :secret_env
1192
+
1193
+ # Requested hash for SourceProvenance.
1194
+ # Corresponds to the JSON property `sourceProvenanceHash`
1195
+ # @return [Array<String>]
1196
+ attr_accessor :source_provenance_hash
1197
+
1198
+ # Option to specify behavior when there is an error in the substitution checks.
1199
+ # NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be
1200
+ # overridden in the build configuration file.
1201
+ # Corresponds to the JSON property `substitutionOption`
1202
+ # @return [String]
1203
+ attr_accessor :substitution_option
1204
+
1205
+ # Global list of volumes to mount for ALL build steps Each volume is created as
1206
+ # an empty volume prior to starting the build process. Upon completion of the
1207
+ # build, volumes and their contents are discarded. Global volume names and paths
1208
+ # cannot conflict with the volumes defined a build step. Using a global volume
1209
+ # in a build with only one step is not valid as it is indicative of a build
1210
+ # request with an incorrect configuration.
1211
+ # Corresponds to the JSON property `volumes`
1212
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1213
+ attr_accessor :volumes
1214
+
1215
+ # This field deprecated; please use `pool.name` instead.
1216
+ # Corresponds to the JSON property `workerPool`
1217
+ # @return [String]
1218
+ attr_accessor :worker_pool
1219
+
1220
+ def initialize(**args)
1221
+ update!(**args)
1222
+ end
1223
+
1224
+ # Update properties of this object
1225
+ def update!(**args)
1226
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1227
+ @dynamic_substitutions = args[:dynamic_substitutions] if args.key?(:dynamic_substitutions)
1228
+ @env = args[:env] if args.key?(:env)
1229
+ @log_streaming_option = args[:log_streaming_option] if args.key?(:log_streaming_option)
1230
+ @logging = args[:logging] if args.key?(:logging)
1231
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1232
+ @pool = args[:pool] if args.key?(:pool)
1233
+ @requested_verify_option = args[:requested_verify_option] if args.key?(:requested_verify_option)
1234
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1235
+ @source_provenance_hash = args[:source_provenance_hash] if args.key?(:source_provenance_hash)
1236
+ @substitution_option = args[:substitution_option] if args.key?(:substitution_option)
1237
+ @volumes = args[:volumes] if args.key?(:volumes)
1238
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1239
+ end
1240
+ end
1241
+
1242
+ # Details about how a build should be executed on a `WorkerPool`. See [running
1243
+ # builds in a private pool](https://cloud.google.com/build/docs/private-pools/
1244
+ # run-builds-in-private-pool) for more information.
1245
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptionsPoolOption
1246
+ include Google::Apis::Core::Hashable
1247
+
1248
+ # The `WorkerPool` resource to execute the build on. You must have `cloudbuild.
1249
+ # workerpools.use` on the project hosting the WorkerPool. Format projects/`
1250
+ # project`/locations/`location`/workerPools/`workerPoolId`
1251
+ # Corresponds to the JSON property `name`
1252
+ # @return [String]
1253
+ attr_accessor :name
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @name = args[:name] if args.key?(:name)
1262
+ end
1263
+ end
1264
+
441
1265
  # A step in the build pipeline.
442
- class BuildStep
1266
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
443
1267
  include Google::Apis::Core::Hashable
444
1268
 
445
1269
  # A list of arguments that will be presented to the step when it is started. If
@@ -498,7 +1322,7 @@ module Google
498
1322
 
499
1323
  # Start and end times for a build execution phase.
500
1324
  # Corresponds to the JSON property `pullTiming`
501
- # @return [Google::Apis::ContaineranalysisV1alpha1::TimeSpan]
1325
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
502
1326
  attr_accessor :pull_timing
503
1327
 
504
1328
  # A shell script to be executed in the step. When script is provided, the user
@@ -530,7 +1354,7 @@ module Google
530
1354
 
531
1355
  # Start and end times for a build execution phase.
532
1356
  # Corresponds to the JSON property `timing`
533
- # @return [Google::Apis::ContaineranalysisV1alpha1::TimeSpan]
1357
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
534
1358
  attr_accessor :timing
535
1359
 
536
1360
  # List of volumes to mount into the build step. Each volume is created as an
@@ -539,7 +1363,7 @@ module Google
539
1363
  # one step is not valid as it is indicative of a build request with an incorrect
540
1364
  # configuration.
541
1365
  # Corresponds to the JSON property `volumes`
542
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Volume>]
1366
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
543
1367
  attr_accessor :volumes
544
1368
 
545
1369
  # The ID(s) of the step(s) that this build step depends on. This build step will
@@ -573,20 +1397,308 @@ module Google
573
1397
  end
574
1398
  end
575
1399
 
576
- # Note holding the version of the provider's builder and the signature of the
577
- # provenance message in linked BuildDetails.
578
- class BuildType
1400
+ # A non-fatal problem encountered during the execution of the build.
1401
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning
1402
+ include Google::Apis::Core::Hashable
1403
+
1404
+ # The priority for this warning.
1405
+ # Corresponds to the JSON property `priority`
1406
+ # @return [String]
1407
+ attr_accessor :priority
1408
+
1409
+ # Explanation of the warning generated.
1410
+ # Corresponds to the JSON property `text`
1411
+ # @return [String]
1412
+ attr_accessor :text
1413
+
1414
+ def initialize(**args)
1415
+ update!(**args)
1416
+ end
1417
+
1418
+ # Update properties of this object
1419
+ def update!(**args)
1420
+ @priority = args[:priority] if args.key?(:priority)
1421
+ @text = args[:text] if args.key?(:text)
1422
+ end
1423
+ end
1424
+
1425
+ # An image built by the pipeline.
1426
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage
1427
+ include Google::Apis::Core::Hashable
1428
+
1429
+ # Docker Registry 2.0 digest.
1430
+ # Corresponds to the JSON property `digest`
1431
+ # @return [String]
1432
+ attr_accessor :digest
1433
+
1434
+ # Name used to push the container image to Google Container Registry, as
1435
+ # presented to `docker push`.
1436
+ # Corresponds to the JSON property `name`
1437
+ # @return [String]
1438
+ attr_accessor :name
1439
+
1440
+ # Start and end times for a build execution phase.
1441
+ # Corresponds to the JSON property `pushTiming`
1442
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1443
+ attr_accessor :push_timing
1444
+
1445
+ def initialize(**args)
1446
+ update!(**args)
1447
+ end
1448
+
1449
+ # Update properties of this object
1450
+ def update!(**args)
1451
+ @digest = args[:digest] if args.key?(:digest)
1452
+ @name = args[:name] if args.key?(:name)
1453
+ @push_timing = args[:push_timing] if args.key?(:push_timing)
1454
+ end
1455
+ end
1456
+
1457
+ # Container message for hashes of byte content of files, used in
1458
+ # SourceProvenance messages to verify integrity of source input to the build.
1459
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes
1460
+ include Google::Apis::Core::Hashable
1461
+
1462
+ # Collection of file hashes.
1463
+ # Corresponds to the JSON property `fileHash`
1464
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Hash>]
1465
+ attr_accessor :file_hash
1466
+
1467
+ def initialize(**args)
1468
+ update!(**args)
1469
+ end
1470
+
1471
+ # Update properties of this object
1472
+ def update!(**args)
1473
+ @file_hash = args[:file_hash] if args.key?(:file_hash)
1474
+ end
1475
+ end
1476
+
1477
+ # Container message for hash values.
1478
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Hash
1479
+ include Google::Apis::Core::Hashable
1480
+
1481
+ # The type of hash that was performed.
1482
+ # Corresponds to the JSON property `type`
1483
+ # @return [String]
1484
+ attr_accessor :type
1485
+
1486
+ # The hash value.
1487
+ # Corresponds to the JSON property `value`
1488
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1489
+ # @return [String]
1490
+ attr_accessor :value
1491
+
1492
+ def initialize(**args)
1493
+ update!(**args)
1494
+ end
1495
+
1496
+ # Update properties of this object
1497
+ def update!(**args)
1498
+ @type = args[:type] if args.key?(:type)
1499
+ @value = args[:value] if args.key?(:value)
1500
+ end
1501
+ end
1502
+
1503
+ # Pairs a set of secret environment variables mapped to encrypted values with
1504
+ # the Cloud KMS key to use to decrypt the value.
1505
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret
1506
+ include Google::Apis::Core::Hashable
1507
+
1508
+ # Map of environment variable name to its encrypted value. Secret environment
1509
+ # variables must be unique across all of a build's secrets, and must be used by
1510
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1511
+ # most 100 secret values across all of a build's secrets.
1512
+ # Corresponds to the JSON property `envMap`
1513
+ # @return [Hash<String,String>]
1514
+ attr_accessor :env_map
1515
+
1516
+ # Resource name of Cloud KMS crypto key to decrypt the encrypted value. In
1517
+ # format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1518
+ # Corresponds to the JSON property `kmsKeyName`
1519
+ # @return [String]
1520
+ attr_accessor :kms_key_name
1521
+
1522
+ def initialize(**args)
1523
+ update!(**args)
1524
+ end
1525
+
1526
+ # Update properties of this object
1527
+ def update!(**args)
1528
+ @env_map = args[:env_map] if args.key?(:env_map)
1529
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1530
+ end
1531
+ end
1532
+
1533
+ # Location of the source in a Google Cloud Source Repository.
1534
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource
1535
+ include Google::Apis::Core::Hashable
1536
+
1537
+ # Regex matching branches to build. The syntax of the regular expressions
1538
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1539
+ # google/re2/wiki/Syntax
1540
+ # Corresponds to the JSON property `branchName`
1541
+ # @return [String]
1542
+ attr_accessor :branch_name
1543
+
1544
+ # Explicit commit SHA to build.
1545
+ # Corresponds to the JSON property `commitSha`
1546
+ # @return [String]
1547
+ attr_accessor :commit_sha
1548
+
1549
+ # Directory, relative to the source root, in which to run the build. This must
1550
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1551
+ # this value is ignored for that step's execution.
1552
+ # Corresponds to the JSON property `dir`
1553
+ # @return [String]
1554
+ attr_accessor :dir
1555
+
1556
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1557
+ # Corresponds to the JSON property `invertRegex`
1558
+ # @return [Boolean]
1559
+ attr_accessor :invert_regex
1560
+ alias_method :invert_regex?, :invert_regex
1561
+
1562
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1563
+ # project ID requesting the build is assumed.
1564
+ # Corresponds to the JSON property `projectId`
1565
+ # @return [String]
1566
+ attr_accessor :project_id
1567
+
1568
+ # Name of the Cloud Source Repository.
1569
+ # Corresponds to the JSON property `repoName`
1570
+ # @return [String]
1571
+ attr_accessor :repo_name
1572
+
1573
+ # Substitutions to use in a triggered build. Should only be used with
1574
+ # RunBuildTrigger
1575
+ # Corresponds to the JSON property `substitutions`
1576
+ # @return [Hash<String,String>]
1577
+ attr_accessor :substitutions
1578
+
1579
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1580
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1581
+ # wiki/Syntax
1582
+ # Corresponds to the JSON property `tagName`
1583
+ # @return [String]
1584
+ attr_accessor :tag_name
1585
+
1586
+ def initialize(**args)
1587
+ update!(**args)
1588
+ end
1589
+
1590
+ # Update properties of this object
1591
+ def update!(**args)
1592
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1593
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1594
+ @dir = args[:dir] if args.key?(:dir)
1595
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1596
+ @project_id = args[:project_id] if args.key?(:project_id)
1597
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1598
+ @substitutions = args[:substitutions] if args.key?(:substitutions)
1599
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1600
+ end
1601
+ end
1602
+
1603
+ # Artifacts created by the build pipeline.
1604
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Results
1605
+ include Google::Apis::Core::Hashable
1606
+
1607
+ # Path to the artifact manifest. Only populated when artifacts are uploaded.
1608
+ # Corresponds to the JSON property `artifactManifest`
1609
+ # @return [String]
1610
+ attr_accessor :artifact_manifest
1611
+
1612
+ # Start and end times for a build execution phase.
1613
+ # Corresponds to the JSON property `artifactTiming`
1614
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1615
+ attr_accessor :artifact_timing
1616
+
1617
+ # List of build step digests, in the order corresponding to build step indices.
1618
+ # Corresponds to the JSON property `buildStepImages`
1619
+ # @return [Array<String>]
1620
+ attr_accessor :build_step_images
1621
+
1622
+ # List of build step outputs, produced by builder images, in the order
1623
+ # corresponding to build step indices. [Cloud Builders](https://cloud.google.com/
1624
+ # cloud-build/docs/cloud-builders) can produce this output by writing to `$
1625
+ # BUILDER_OUTPUT/output`. Only the first 4KB of data is stored.
1626
+ # Corresponds to the JSON property `buildStepOutputs`
1627
+ # @return [Array<String>]
1628
+ attr_accessor :build_step_outputs
1629
+
1630
+ # Container images that were built as a part of the build.
1631
+ # Corresponds to the JSON property `images`
1632
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1BuiltImage>]
1633
+ attr_accessor :images
1634
+
1635
+ # Number of artifacts uploaded. Only populated when artifacts are uploaded.
1636
+ # Corresponds to the JSON property `numArtifacts`
1637
+ # @return [Fixnum]
1638
+ attr_accessor :num_artifacts
1639
+
1640
+ def initialize(**args)
1641
+ update!(**args)
1642
+ end
1643
+
1644
+ # Update properties of this object
1645
+ def update!(**args)
1646
+ @artifact_manifest = args[:artifact_manifest] if args.key?(:artifact_manifest)
1647
+ @artifact_timing = args[:artifact_timing] if args.key?(:artifact_timing)
1648
+ @build_step_images = args[:build_step_images] if args.key?(:build_step_images)
1649
+ @build_step_outputs = args[:build_step_outputs] if args.key?(:build_step_outputs)
1650
+ @images = args[:images] if args.key?(:images)
1651
+ @num_artifacts = args[:num_artifacts] if args.key?(:num_artifacts)
1652
+ end
1653
+ end
1654
+
1655
+ # Pairs a set of secret environment variables containing encrypted values with
1656
+ # the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `
1657
+ # available_secrets` instead of using `kmsKeyName` with `secret`. For
1658
+ # instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/
1659
+ # use-encrypted-credentials.
1660
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secret
1661
+ include Google::Apis::Core::Hashable
1662
+
1663
+ # Cloud KMS key name to use to decrypt these envs.
1664
+ # Corresponds to the JSON property `kmsKeyName`
1665
+ # @return [String]
1666
+ attr_accessor :kms_key_name
1667
+
1668
+ # Map of environment variable name to its encrypted value. Secret environment
1669
+ # variables must be unique across all of a build's secrets, and must be used by
1670
+ # at least one build step. Values can be at most 64 KB in size. There can be at
1671
+ # most 100 secret values across all of a build's secrets.
1672
+ # Corresponds to the JSON property `secretEnv`
1673
+ # @return [Hash<String,String>]
1674
+ attr_accessor :secret_env
1675
+
1676
+ def initialize(**args)
1677
+ update!(**args)
1678
+ end
1679
+
1680
+ # Update properties of this object
1681
+ def update!(**args)
1682
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1683
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1684
+ end
1685
+ end
1686
+
1687
+ # Pairs a secret environment variable with a SecretVersion in Secret Manager.
1688
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret
579
1689
  include Google::Apis::Core::Hashable
580
1690
 
581
- # Version of the builder which produced this Note.
582
- # Corresponds to the JSON property `builderVersion`
1691
+ # Environment variable name to associate with the secret. Secret environment
1692
+ # variables must be unique across all of a build's secrets, and must be used by
1693
+ # at least one build step.
1694
+ # Corresponds to the JSON property `env`
583
1695
  # @return [String]
584
- attr_accessor :builder_version
1696
+ attr_accessor :env
585
1697
 
586
- # Message encapsulating the signature of the verified build.
587
- # Corresponds to the JSON property `signature`
588
- # @return [Google::Apis::ContaineranalysisV1alpha1::BuildSignature]
589
- attr_accessor :signature
1698
+ # Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*
1699
+ # Corresponds to the JSON property `versionName`
1700
+ # @return [String]
1701
+ attr_accessor :version_name
590
1702
 
591
1703
  def initialize(**args)
592
1704
  update!(**args)
@@ -594,19 +1706,24 @@ module Google
594
1706
 
595
1707
  # Update properties of this object
596
1708
  def update!(**args)
597
- @builder_version = args[:builder_version] if args.key?(:builder_version)
598
- @signature = args[:signature] if args.key?(:signature)
1709
+ @env = args[:env] if args.key?(:env)
1710
+ @version_name = args[:version_name] if args.key?(:version_name)
599
1711
  end
600
1712
  end
601
1713
 
602
- #
603
- class BuilderConfig
1714
+ # Secrets and secret environment variables.
1715
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
604
1716
  include Google::Apis::Core::Hashable
605
1717
 
606
- #
607
- # Corresponds to the JSON property `id`
608
- # @return [String]
609
- attr_accessor :id
1718
+ # Secrets encrypted with KMS key and the associated secret environment variable.
1719
+ # Corresponds to the JSON property `inline`
1720
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1InlineSecret>]
1721
+ attr_accessor :inline
1722
+
1723
+ # Secrets in Secret Manager and associated secret environment variable.
1724
+ # Corresponds to the JSON property `secretManager`
1725
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1SecretManagerSecret>]
1726
+ attr_accessor :secret_manager
610
1727
 
611
1728
  def initialize(**args)
612
1729
  update!(**args)
@@ -614,23 +1731,31 @@ module Google
614
1731
 
615
1732
  # Update properties of this object
616
1733
  def update!(**args)
617
- @id = args[:id] if args.key?(:id)
1734
+ @inline = args[:inline] if args.key?(:inline)
1735
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
618
1736
  end
619
1737
  end
620
1738
 
621
- # A compliance check that is a CIS benchmark.
622
- class CisBenchmark
1739
+ # Location of the source in a supported storage service.
1740
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
623
1741
  include Google::Apis::Core::Hashable
624
1742
 
625
- # The profile level of this CIS benchmark check.
626
- # Corresponds to the JSON property `profileLevel`
627
- # @return [Fixnum]
628
- attr_accessor :profile_level
1743
+ # Location of the source in a Google Cloud Source Repository.
1744
+ # Corresponds to the JSON property `repoSource`
1745
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1746
+ attr_accessor :repo_source
629
1747
 
630
- # The severity level of this CIS benchmark check.
631
- # Corresponds to the JSON property `severity`
632
- # @return [String]
633
- attr_accessor :severity
1748
+ # Location of the source in an archive file in Google Cloud Storage.
1749
+ # Corresponds to the JSON property `storageSource`
1750
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1751
+ attr_accessor :storage_source
1752
+
1753
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1754
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1755
+ # builders/tree/master/gcs-fetcher).
1756
+ # Corresponds to the JSON property `storageSourceManifest`
1757
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1758
+ attr_accessor :storage_source_manifest
634
1759
 
635
1760
  def initialize(**args)
636
1761
  update!(**args)
@@ -638,47 +1763,44 @@ module Google
638
1763
 
639
1764
  # Update properties of this object
640
1765
  def update!(**args)
641
- @profile_level = args[:profile_level] if args.key?(:profile_level)
642
- @severity = args[:severity] if args.key?(:severity)
1766
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1767
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1768
+ @storage_source_manifest = args[:storage_source_manifest] if args.key?(:storage_source_manifest)
643
1769
  end
644
1770
  end
645
1771
 
646
- # Command describes a step performed as part of the build pipeline.
647
- class Command
1772
+ # Provenance of the source. Ways to find the original source, or verify that
1773
+ # some source was used for this build.
1774
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance
648
1775
  include Google::Apis::Core::Hashable
649
1776
 
650
- # Command-line arguments used when executing this Command.
651
- # Corresponds to the JSON property `args`
652
- # @return [Array<String>]
653
- attr_accessor :args
654
-
655
- # Working directory (relative to project source root) used when running this
656
- # Command.
657
- # Corresponds to the JSON property `dir`
658
- # @return [String]
659
- attr_accessor :dir
660
-
661
- # Environment variables set before running this Command.
662
- # Corresponds to the JSON property `env`
663
- # @return [Array<String>]
664
- attr_accessor :env
1777
+ # Output only. Hash(es) of the build source, which can be used to verify that
1778
+ # the original source integrity was maintained in the build. Note that `
1779
+ # FileHashes` will only be populated if `BuildOptions` has requested a `
1780
+ # SourceProvenanceHash`. The keys to this map are file paths used as build
1781
+ # source and the values contain the hash values for those files. If the build
1782
+ # source came in a single package such as a gzipped tarfile (`.tar.gz`), the `
1783
+ # FileHash` will be for the single path to that file.
1784
+ # Corresponds to the JSON property `fileHashes`
1785
+ # @return [Hash<String,Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes>]
1786
+ attr_accessor :file_hashes
665
1787
 
666
- # Optional unique identifier for this Command, used in wait_for to reference
667
- # this Command as a dependency.
668
- # Corresponds to the JSON property `id`
669
- # @return [String]
670
- attr_accessor :id
1788
+ # Location of the source in a Google Cloud Source Repository.
1789
+ # Corresponds to the JSON property `resolvedRepoSource`
1790
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource]
1791
+ attr_accessor :resolved_repo_source
671
1792
 
672
- # Name of the command, as presented on the command line, or if the command is
673
- # packaged as a Docker container, as presented to `docker pull`.
674
- # Corresponds to the JSON property `name`
675
- # @return [String]
676
- attr_accessor :name
1793
+ # Location of the source in an archive file in Google Cloud Storage.
1794
+ # Corresponds to the JSON property `resolvedStorageSource`
1795
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource]
1796
+ attr_accessor :resolved_storage_source
677
1797
 
678
- # The ID(s) of the Command(s) that this Command depends on.
679
- # Corresponds to the JSON property `waitFor`
680
- # @return [Array<String>]
681
- attr_accessor :wait_for
1798
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1799
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1800
+ # builders/tree/master/gcs-fetcher).
1801
+ # Corresponds to the JSON property `resolvedStorageSourceManifest`
1802
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest]
1803
+ attr_accessor :resolved_storage_source_manifest
682
1804
 
683
1805
  def initialize(**args)
684
1806
  update!(**args)
@@ -686,39 +1808,35 @@ module Google
686
1808
 
687
1809
  # Update properties of this object
688
1810
  def update!(**args)
689
- @args = args[:args] if args.key?(:args)
690
- @dir = args[:dir] if args.key?(:dir)
691
- @env = args[:env] if args.key?(:env)
692
- @id = args[:id] if args.key?(:id)
693
- @name = args[:name] if args.key?(:name)
694
- @wait_for = args[:wait_for] if args.key?(:wait_for)
1811
+ @file_hashes = args[:file_hashes] if args.key?(:file_hashes)
1812
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1813
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1814
+ @resolved_storage_source_manifest = args[:resolved_storage_source_manifest] if args.key?(:resolved_storage_source_manifest)
695
1815
  end
696
1816
  end
697
1817
 
698
- # Indicates that the builder claims certain fields in this message to be
699
- # complete.
700
- class Completeness
1818
+ # Location of the source in an archive file in Google Cloud Storage.
1819
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
701
1820
  include Google::Apis::Core::Hashable
702
1821
 
703
- # If true, the builder claims that recipe.arguments is complete, meaning that
704
- # all external inputs are properly captured in the recipe.
705
- # Corresponds to the JSON property `arguments`
706
- # @return [Boolean]
707
- attr_accessor :arguments
708
- alias_method :arguments?, :arguments
1822
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1823
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1824
+ # ).
1825
+ # Corresponds to the JSON property `bucket`
1826
+ # @return [String]
1827
+ attr_accessor :bucket
709
1828
 
710
- # If true, the builder claims that recipe.environment is claimed to be complete.
711
- # Corresponds to the JSON property `environment`
712
- # @return [Boolean]
713
- attr_accessor :environment
714
- alias_method :environment?, :environment
1829
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1830
+ # the latest generation will be used.
1831
+ # Corresponds to the JSON property `generation`
1832
+ # @return [Fixnum]
1833
+ attr_accessor :generation
715
1834
 
716
- # If true, the builder claims that materials are complete, usually through some
717
- # controls to prevent network access. Sometimes called "hermetic".
718
- # Corresponds to the JSON property `materials`
719
- # @return [Boolean]
720
- attr_accessor :materials
721
- alias_method :materials?, :materials
1835
+ # Google Cloud Storage object containing the source. This object must be a
1836
+ # zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.
1837
+ # Corresponds to the JSON property `object`
1838
+ # @return [String]
1839
+ attr_accessor :object
722
1840
 
723
1841
  def initialize(**args)
724
1842
  update!(**args)
@@ -726,51 +1844,36 @@ module Google
726
1844
 
727
1845
  # Update properties of this object
728
1846
  def update!(**args)
729
- @arguments = args[:arguments] if args.key?(:arguments)
730
- @environment = args[:environment] if args.key?(:environment)
731
- @materials = args[:materials] if args.key?(:materials)
1847
+ @bucket = args[:bucket] if args.key?(:bucket)
1848
+ @generation = args[:generation] if args.key?(:generation)
1849
+ @object = args[:object] if args.key?(:object)
732
1850
  end
733
1851
  end
734
1852
 
735
- # ComplianceNote encapsulates all information about a specific compliance check.
736
- class ComplianceNote
1853
+ # Location of the source manifest in Google Cloud Storage. This feature is in
1854
+ # Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-
1855
+ # builders/tree/master/gcs-fetcher).
1856
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest
737
1857
  include Google::Apis::Core::Hashable
738
1858
 
739
- # A compliance check that is a CIS benchmark.
740
- # Corresponds to the JSON property `cisBenchmark`
741
- # @return [Google::Apis::ContaineranalysisV1alpha1::CisBenchmark]
742
- attr_accessor :cis_benchmark
743
-
744
- # A description about this compliance check.
745
- # Corresponds to the JSON property `description`
746
- # @return [String]
747
- attr_accessor :description
748
-
749
- # A rationale for the existence of this compliance check.
750
- # Corresponds to the JSON property `rationale`
751
- # @return [String]
752
- attr_accessor :rationale
753
-
754
- # A description of remediation steps if the compliance check fails.
755
- # Corresponds to the JSON property `remediation`
1859
+ # Google Cloud Storage bucket containing the source manifest (see [Bucket Name
1860
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1861
+ # ).
1862
+ # Corresponds to the JSON property `bucket`
756
1863
  # @return [String]
757
- attr_accessor :remediation
1864
+ attr_accessor :bucket
758
1865
 
759
- # Serialized scan instructions with a predefined format.
760
- # Corresponds to the JSON property `scanInstructions`
761
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
762
- # @return [String]
763
- attr_accessor :scan_instructions
1866
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1867
+ # the latest generation will be used.
1868
+ # Corresponds to the JSON property `generation`
1869
+ # @return [Fixnum]
1870
+ attr_accessor :generation
764
1871
 
765
- # The title that identifies this compliance check.
766
- # Corresponds to the JSON property `title`
1872
+ # Google Cloud Storage object containing the source manifest. This object must
1873
+ # be a JSON file.
1874
+ # Corresponds to the JSON property `object`
767
1875
  # @return [String]
768
- attr_accessor :title
769
-
770
- # The OS and config versions the benchmark applies to.
771
- # Corresponds to the JSON property `version`
772
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ComplianceVersion>]
773
- attr_accessor :version
1876
+ attr_accessor :object
774
1877
 
775
1878
  def initialize(**args)
776
1879
  update!(**args)
@@ -778,30 +1881,25 @@ module Google
778
1881
 
779
1882
  # Update properties of this object
780
1883
  def update!(**args)
781
- @cis_benchmark = args[:cis_benchmark] if args.key?(:cis_benchmark)
782
- @description = args[:description] if args.key?(:description)
783
- @rationale = args[:rationale] if args.key?(:rationale)
784
- @remediation = args[:remediation] if args.key?(:remediation)
785
- @scan_instructions = args[:scan_instructions] if args.key?(:scan_instructions)
786
- @title = args[:title] if args.key?(:title)
787
- @version = args[:version] if args.key?(:version)
1884
+ @bucket = args[:bucket] if args.key?(:bucket)
1885
+ @generation = args[:generation] if args.key?(:generation)
1886
+ @object = args[:object] if args.key?(:object)
788
1887
  end
789
1888
  end
790
1889
 
791
- # An indication that the compliance checks in the associated ComplianceNote were
792
- # not satisfied for particular resources or a specified reason.
793
- class ComplianceOccurrence
1890
+ # Start and end times for a build execution phase.
1891
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
794
1892
  include Google::Apis::Core::Hashable
795
1893
 
796
- # The reason for non compliance of these files.
797
- # Corresponds to the JSON property `nonComplianceReason`
1894
+ # End of time span.
1895
+ # Corresponds to the JSON property `endTime`
798
1896
  # @return [String]
799
- attr_accessor :non_compliance_reason
1897
+ attr_accessor :end_time
800
1898
 
801
- # A list of files which are violating compliance checks.
802
- # Corresponds to the JSON property `nonCompliantFiles`
803
- # @return [Array<Google::Apis::ContaineranalysisV1alpha1::NonCompliantFile>]
804
- attr_accessor :non_compliant_files
1899
+ # Start of time span.
1900
+ # Corresponds to the JSON property `startTime`
1901
+ # @return [String]
1902
+ attr_accessor :start_time
805
1903
 
806
1904
  def initialize(**args)
807
1905
  update!(**args)
@@ -809,27 +1907,29 @@ module Google
809
1907
 
810
1908
  # Update properties of this object
811
1909
  def update!(**args)
812
- @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
813
- @non_compliant_files = args[:non_compliant_files] if args.key?(:non_compliant_files)
1910
+ @end_time = args[:end_time] if args.key?(:end_time)
1911
+ @start_time = args[:start_time] if args.key?(:start_time)
814
1912
  end
815
1913
  end
816
1914
 
817
- # Describes the CIS benchmark version that is applicable to a given OS and os
818
- # version.
819
- class ComplianceVersion
1915
+ # Volume describes a Docker container volume which is mounted into build steps
1916
+ # in order to persist files across build step execution.
1917
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Volume
820
1918
  include Google::Apis::Core::Hashable
821
1919
 
822
- # The CPE URI (https://cpe.mitre.org/specification/) this benchmark is
823
- # applicable to.
824
- # Corresponds to the JSON property `cpeUri`
1920
+ # Name of the volume to mount. Volume names must be unique per build step and
1921
+ # must be valid names for Docker volumes. Each named volume must be used by at
1922
+ # least two build steps.
1923
+ # Corresponds to the JSON property `name`
825
1924
  # @return [String]
826
- attr_accessor :cpe_uri
1925
+ attr_accessor :name
827
1926
 
828
- # The version of the benchmark. This is set to the version of the OS-specific
829
- # CIS document the benchmark is defined in.
830
- # Corresponds to the JSON property `version`
1927
+ # Path at which to mount the volume. Paths must be absolute and cannot conflict
1928
+ # with other volume paths on the same build step or with certain reserved volume
1929
+ # paths.
1930
+ # Corresponds to the JSON property `path`
831
1931
  # @return [String]
832
- attr_accessor :version
1932
+ attr_accessor :path
833
1933
 
834
1934
  def initialize(**args)
835
1935
  update!(**args)
@@ -837,8 +1937,8 @@ module Google
837
1937
 
838
1938
  # Update properties of this object
839
1939
  def update!(**args)
840
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
841
- @version = args[:version] if args.key?(:version)
1940
+ @name = args[:name] if args.key?(:name)
1941
+ @path = args[:path] if args.key?(:path)
842
1942
  end
843
1943
  end
844
1944
 
@@ -1738,13 +2838,16 @@ module Google
1738
2838
  class GetPolicyOptions
1739
2839
  include Google::Apis::Core::Hashable
1740
2840
 
1741
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1742
- # 3. Requests specifying an invalid value will be rejected. Requests for
1743
- # policies with any conditional bindings must specify version 3. Policies
1744
- # without any conditional bindings may specify any valid value or leave the
1745
- # field unset. To learn which resources support conditions in their IAM policies,
1746
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1747
- # resource-policies).
2841
+ # Optional. The maximum policy version that will be used to format the policy.
2842
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2843
+ # rejected. Requests for policies with any conditional role bindings must
2844
+ # specify version 3. Policies with no conditional role bindings may specify any
2845
+ # valid value or leave the field unset. The policy in the response might use the
2846
+ # policy version that you specified, or it might use a lower policy version. For
2847
+ # example, if you specify version 3, but the policy has no conditional role
2848
+ # bindings, the response uses version 1. To learn which resources support
2849
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2850
+ # google.com/iam/help/conditions/resource-policies).
1748
2851
  # Corresponds to the JSON property `requestedPolicyVersion`
1749
2852
  # @return [Fixnum]
1750
2853
  attr_accessor :requested_policy_version
@@ -2091,36 +3194,42 @@ module Google
2091
3194
  class InTotoStatement
2092
3195
  include Google::Apis::Core::Hashable
2093
3196
 
2094
- # "https://in-toto.io/Provenance/v0.1" for InTotoProvenance.
3197
+ # Always "https://in-toto.io/Statement/v0.1".
3198
+ # Corresponds to the JSON property `_type`
3199
+ # @return [String]
3200
+ attr_accessor :_type
3201
+
3202
+ # "https://slsa.dev/provenance/v0.1" for SlsaProvenance.
2095
3203
  # Corresponds to the JSON property `predicateType`
2096
3204
  # @return [String]
2097
3205
  attr_accessor :predicate_type
2098
3206
 
2099
- #
3207
+ # provenance is a predicate of type intotoprovenance
2100
3208
  # Corresponds to the JSON property `provenance`
2101
3209
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
2102
3210
  attr_accessor :provenance
2103
3211
 
2104
- #
3212
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
3213
+ # Corresponds to the JSON property `slsaProvenance`
3214
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaProvenance]
3215
+ attr_accessor :slsa_provenance
3216
+
3217
+ # subject is the subjects of the intoto statement
2105
3218
  # Corresponds to the JSON property `subject`
2106
3219
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Subject>]
2107
3220
  attr_accessor :subject
2108
3221
 
2109
- # Always "https://in-toto.io/Statement/v0.1".
2110
- # Corresponds to the JSON property `type`
2111
- # @return [String]
2112
- attr_accessor :type
2113
-
2114
3222
  def initialize(**args)
2115
3223
  update!(**args)
2116
3224
  end
2117
3225
 
2118
3226
  # Update properties of this object
2119
3227
  def update!(**args)
3228
+ @_type = args[:_type] if args.key?(:_type)
2120
3229
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
2121
3230
  @provenance = args[:provenance] if args.key?(:provenance)
3231
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
2122
3232
  @subject = args[:subject] if args.key?(:subject)
2123
- @type = args[:type] if args.key?(:type)
2124
3233
  end
2125
3234
  end
2126
3235
 
@@ -2320,13 +3429,40 @@ module Google
2320
3429
  # @return [String]
2321
3430
  attr_accessor :path
2322
3431
 
2323
- # Version contains structured information about the version of the package. For
2324
- # a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/
2325
- # debian-packages-version-convention For a discussion of this in Redhat/Fedora/
2326
- # Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
2327
- # Corresponds to the JSON property `version`
2328
- # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
2329
- attr_accessor :version
3432
+ # Version contains structured information about the version of the package. For
3433
+ # a discussion of this in Debian/Ubuntu: http://serverfault.com/questions/604541/
3434
+ # debian-packages-version-convention For a discussion of this in Redhat/Fedora/
3435
+ # Centos: http://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/
3436
+ # Corresponds to the JSON property `version`
3437
+ # @return [Google::Apis::ContaineranalysisV1alpha1::Version]
3438
+ attr_accessor :version
3439
+
3440
+ def initialize(**args)
3441
+ update!(**args)
3442
+ end
3443
+
3444
+ # Update properties of this object
3445
+ def update!(**args)
3446
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
3447
+ @path = args[:path] if args.key?(:path)
3448
+ @version = args[:version] if args.key?(:version)
3449
+ end
3450
+ end
3451
+
3452
+ # Material is a material used in the generation of the provenance
3453
+ class Material
3454
+ include Google::Apis::Core::Hashable
3455
+
3456
+ # digest is a map from a hash algorithm (e.g. sha256) to the value in the
3457
+ # material
3458
+ # Corresponds to the JSON property `digest`
3459
+ # @return [Hash<String,String>]
3460
+ attr_accessor :digest
3461
+
3462
+ # uri is the uri of the material
3463
+ # Corresponds to the JSON property `uri`
3464
+ # @return [String]
3465
+ attr_accessor :uri
2330
3466
 
2331
3467
  def initialize(**args)
2332
3468
  update!(**args)
@@ -2334,9 +3470,8 @@ module Google
2334
3470
 
2335
3471
  # Update properties of this object
2336
3472
  def update!(**args)
2337
- @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
2338
- @path = args[:path] if args.key?(:path)
2339
- @version = args[:version] if args.key?(:version)
3473
+ @digest = args[:digest] if args.key?(:digest)
3474
+ @uri = args[:uri] if args.key?(:uri)
2340
3475
  end
2341
3476
  end
2342
3477
 
@@ -3595,6 +4730,210 @@ module Google
3595
4730
  end
3596
4731
  end
3597
4732
 
4733
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4734
+ class SlsaBuilder
4735
+ include Google::Apis::Core::Hashable
4736
+
4737
+ # id is the id of the slsa provenance builder
4738
+ # Corresponds to the JSON property `id`
4739
+ # @return [String]
4740
+ attr_accessor :id
4741
+
4742
+ def initialize(**args)
4743
+ update!(**args)
4744
+ end
4745
+
4746
+ # Update properties of this object
4747
+ def update!(**args)
4748
+ @id = args[:id] if args.key?(:id)
4749
+ end
4750
+ end
4751
+
4752
+ # Indicates that the builder claims certain fields in this message to be
4753
+ # complete.
4754
+ class SlsaCompleteness
4755
+ include Google::Apis::Core::Hashable
4756
+
4757
+ # If true, the builder claims that recipe.arguments is complete, meaning that
4758
+ # all external inputs are properly captured in the recipe.
4759
+ # Corresponds to the JSON property `arguments`
4760
+ # @return [Boolean]
4761
+ attr_accessor :arguments
4762
+ alias_method :arguments?, :arguments
4763
+
4764
+ # If true, the builder claims that recipe.environment is claimed to be complete.
4765
+ # Corresponds to the JSON property `environment`
4766
+ # @return [Boolean]
4767
+ attr_accessor :environment
4768
+ alias_method :environment?, :environment
4769
+
4770
+ # If true, the builder claims that materials are complete, usually through some
4771
+ # controls to prevent network access. Sometimes called "hermetic".
4772
+ # Corresponds to the JSON property `materials`
4773
+ # @return [Boolean]
4774
+ attr_accessor :materials
4775
+ alias_method :materials?, :materials
4776
+
4777
+ def initialize(**args)
4778
+ update!(**args)
4779
+ end
4780
+
4781
+ # Update properties of this object
4782
+ def update!(**args)
4783
+ @arguments = args[:arguments] if args.key?(:arguments)
4784
+ @environment = args[:environment] if args.key?(:environment)
4785
+ @materials = args[:materials] if args.key?(:materials)
4786
+ end
4787
+ end
4788
+
4789
+ # Other properties of the build.
4790
+ class SlsaMetadata
4791
+ include Google::Apis::Core::Hashable
4792
+
4793
+ # The timestamp of when the build completed.
4794
+ # Corresponds to the JSON property `buildFinishedOn`
4795
+ # @return [String]
4796
+ attr_accessor :build_finished_on
4797
+
4798
+ # Identifies the particular build invocation, which can be useful for finding
4799
+ # associated logs or other ad-hoc analysis. The value SHOULD be globally unique,
4800
+ # per in-toto Provenance spec.
4801
+ # Corresponds to the JSON property `buildInvocationId`
4802
+ # @return [String]
4803
+ attr_accessor :build_invocation_id
4804
+
4805
+ # The timestamp of when the build started.
4806
+ # Corresponds to the JSON property `buildStartedOn`
4807
+ # @return [String]
4808
+ attr_accessor :build_started_on
4809
+
4810
+ # Indicates that the builder claims certain fields in this message to be
4811
+ # complete.
4812
+ # Corresponds to the JSON property `completeness`
4813
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaCompleteness]
4814
+ attr_accessor :completeness
4815
+
4816
+ # If true, the builder claims that running the recipe on materials will produce
4817
+ # bit-for-bit identical output.
4818
+ # Corresponds to the JSON property `reproducible`
4819
+ # @return [Boolean]
4820
+ attr_accessor :reproducible
4821
+ alias_method :reproducible?, :reproducible
4822
+
4823
+ def initialize(**args)
4824
+ update!(**args)
4825
+ end
4826
+
4827
+ # Update properties of this object
4828
+ def update!(**args)
4829
+ @build_finished_on = args[:build_finished_on] if args.key?(:build_finished_on)
4830
+ @build_invocation_id = args[:build_invocation_id] if args.key?(:build_invocation_id)
4831
+ @build_started_on = args[:build_started_on] if args.key?(:build_started_on)
4832
+ @completeness = args[:completeness] if args.key?(:completeness)
4833
+ @reproducible = args[:reproducible] if args.key?(:reproducible)
4834
+ end
4835
+ end
4836
+
4837
+ # SlsaProvenance is the slsa provenance as defined by the slsa spec.
4838
+ class SlsaProvenance
4839
+ include Google::Apis::Core::Hashable
4840
+
4841
+ # SlsaBuilder encapsulates the identity of the builder of this provenance.
4842
+ # Corresponds to the JSON property `builder`
4843
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaBuilder]
4844
+ attr_accessor :builder
4845
+
4846
+ # The collection of artifacts that influenced the build including sources,
4847
+ # dependencies, build tools, base images, and so on. This is considered to be
4848
+ # incomplete unless metadata.completeness.materials is true. Unset or null is
4849
+ # equivalent to empty.
4850
+ # Corresponds to the JSON property `materials`
4851
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Material>]
4852
+ attr_accessor :materials
4853
+
4854
+ # Other properties of the build.
4855
+ # Corresponds to the JSON property `metadata`
4856
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaMetadata]
4857
+ attr_accessor :metadata
4858
+
4859
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4860
+ # corresponds to one step in the recipe.
4861
+ # Corresponds to the JSON property `recipe`
4862
+ # @return [Google::Apis::ContaineranalysisV1alpha1::SlsaRecipe]
4863
+ attr_accessor :recipe
4864
+
4865
+ def initialize(**args)
4866
+ update!(**args)
4867
+ end
4868
+
4869
+ # Update properties of this object
4870
+ def update!(**args)
4871
+ @builder = args[:builder] if args.key?(:builder)
4872
+ @materials = args[:materials] if args.key?(:materials)
4873
+ @metadata = args[:metadata] if args.key?(:metadata)
4874
+ @recipe = args[:recipe] if args.key?(:recipe)
4875
+ end
4876
+ end
4877
+
4878
+ # Steps taken to build the artifact. For a TaskRun, typically each container
4879
+ # corresponds to one step in the recipe.
4880
+ class SlsaRecipe
4881
+ include Google::Apis::Core::Hashable
4882
+
4883
+ # Collection of all external inputs that influenced the build on top of recipe.
4884
+ # definedInMaterial and recipe.entryPoint. For example, if the recipe type were "
4885
+ # make", then this might be the flags passed to make aside from the target,
4886
+ # which is captured in recipe.entryPoint. Depending on the recipe Type, the
4887
+ # structure may be different.
4888
+ # Corresponds to the JSON property `arguments`
4889
+ # @return [Hash<String,Object>]
4890
+ attr_accessor :arguments
4891
+
4892
+ # Index in materials containing the recipe steps that are not implied by recipe.
4893
+ # type. For example, if the recipe type were "make", then this would point to
4894
+ # the source containing the Makefile, not the make program itself. Set to -1 if
4895
+ # the recipe doesn't come from a material, as zero is default unset value for
4896
+ # int64.
4897
+ # Corresponds to the JSON property `definedInMaterial`
4898
+ # @return [Fixnum]
4899
+ attr_accessor :defined_in_material
4900
+
4901
+ # String identifying the entry point into the build. This is often a path to a
4902
+ # configuration file and/or a target label within that file. The syntax and
4903
+ # meaning are defined by recipe.type. For example, if the recipe type were "make"
4904
+ # , then this would reference the directory in which to run make as well as
4905
+ # which target to use.
4906
+ # Corresponds to the JSON property `entryPoint`
4907
+ # @return [String]
4908
+ attr_accessor :entry_point
4909
+
4910
+ # Any other builder-controlled inputs necessary for correctly evaluating the
4911
+ # recipe. Usually only needed for reproducing the build but not evaluated as
4912
+ # part of policy. Depending on the recipe Type, the structure may be different.
4913
+ # Corresponds to the JSON property `environment`
4914
+ # @return [Hash<String,Object>]
4915
+ attr_accessor :environment
4916
+
4917
+ # URI indicating what type of recipe was performed. It determines the meaning of
4918
+ # recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
4919
+ # Corresponds to the JSON property `type`
4920
+ # @return [String]
4921
+ attr_accessor :type
4922
+
4923
+ def initialize(**args)
4924
+ update!(**args)
4925
+ end
4926
+
4927
+ # Update properties of this object
4928
+ def update!(**args)
4929
+ @arguments = args[:arguments] if args.key?(:arguments)
4930
+ @defined_in_material = args[:defined_in_material] if args.key?(:defined_in_material)
4931
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
4932
+ @environment = args[:environment] if args.key?(:environment)
4933
+ @type = args[:type] if args.key?(:type)
4934
+ end
4935
+ end
4936
+
3598
4937
  # Source describes the location of the source used for the build.
3599
4938
  class Source
3600
4939
  include Google::Apis::Core::Hashable
@@ -3727,16 +5066,17 @@ module Google
3727
5066
  end
3728
5067
  end
3729
5068
 
3730
- #
5069
+ # Subject refers to the subject of the intoto statement
3731
5070
  class Subject
3732
5071
  include Google::Apis::Core::Hashable
3733
5072
 
3734
- # "": ""
5073
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
5074
+ # attestation/blob/main/spec/field_types.md#DigestSet
3735
5075
  # Corresponds to the JSON property `digest`
3736
5076
  # @return [Hash<String,String>]
3737
5077
  attr_accessor :digest
3738
5078
 
3739
- #
5079
+ # name is the name of the Subject used here
3740
5080
  # Corresponds to the JSON property `name`
3741
5081
  # @return [String]
3742
5082
  attr_accessor :name
@@ -3792,31 +5132,6 @@ module Google
3792
5132
  end
3793
5133
  end
3794
5134
 
3795
- # Start and end times for a build execution phase.
3796
- class TimeSpan
3797
- include Google::Apis::Core::Hashable
3798
-
3799
- # End of time span.
3800
- # Corresponds to the JSON property `endTime`
3801
- # @return [String]
3802
- attr_accessor :end_time
3803
-
3804
- # Start of time span.
3805
- # Corresponds to the JSON property `startTime`
3806
- # @return [String]
3807
- attr_accessor :start_time
3808
-
3809
- def initialize(**args)
3810
- update!(**args)
3811
- end
3812
-
3813
- # Update properties of this object
3814
- def update!(**args)
3815
- @end_time = args[:end_time] if args.key?(:end_time)
3816
- @start_time = args[:start_time] if args.key?(:start_time)
3817
- end
3818
- end
3819
-
3820
5135
  # Request for updating an existing operation
3821
5136
  class UpdateOperationRequest
3822
5137
  include Google::Apis::Core::Hashable
@@ -4008,36 +5323,6 @@ module Google
4008
5323
  end
4009
5324
  end
4010
5325
 
4011
- # Volume describes a Docker container volume which is mounted into build steps
4012
- # in order to persist files across build step execution.
4013
- class Volume
4014
- include Google::Apis::Core::Hashable
4015
-
4016
- # Name of the volume to mount. Volume names must be unique per build step and
4017
- # must be valid names for Docker volumes. Each named volume must be used by at
4018
- # least two build steps.
4019
- # Corresponds to the JSON property `name`
4020
- # @return [String]
4021
- attr_accessor :name
4022
-
4023
- # Path at which to mount the volume. Paths must be absolute and cannot conflict
4024
- # with other volume paths on the same build step or with certain reserved volume
4025
- # paths.
4026
- # Corresponds to the JSON property `path`
4027
- # @return [String]
4028
- attr_accessor :path
4029
-
4030
- def initialize(**args)
4031
- update!(**args)
4032
- end
4033
-
4034
- # Update properties of this object
4035
- def update!(**args)
4036
- @name = args[:name] if args.key?(:name)
4037
- @path = args[:path] if args.key?(:path)
4038
- end
4039
- end
4040
-
4041
5326
  # Used by Occurrence to point to where the vulnerability exists and how to fix
4042
5327
  # it.
4043
5328
  class VulnerabilityDetails