google-apis-containeranalysis_v1alpha1 0.13.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.
@@ -184,7 +184,7 @@ module Google
184
184
  end
185
185
  end
186
186
 
187
- # Associates `members` with a `role`.
187
+ # Associates `members`, or principals, with a `role`.
188
188
  class Binding
189
189
  include Google::Apis::Core::Hashable
190
190
 
@@ -207,7 +207,7 @@ module Google
207
207
  # @return [Google::Apis::ContaineranalysisV1alpha1::Expr]
208
208
  attr_accessor :condition
209
209
 
210
- # Specifies the identities requesting access for a Cloud Platform resource. `
210
+ # Specifies the principals requesting access for a Cloud Platform resource. `
211
211
  # members` can have the following values: * `allUsers`: A special identifier
212
212
  # that represents anyone who is on the internet; with or without a Google
213
213
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -237,8 +237,8 @@ module Google
237
237
  # @return [Array<String>]
238
238
  attr_accessor :members
239
239
 
240
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
241
- # , or `roles/owner`.
240
+ # Role that is assigned to the list of `members`, or principals. For example, `
241
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
242
242
  # Corresponds to the JSON property `role`
243
243
  # @return [String]
244
244
  attr_accessor :role
@@ -707,6 +707,1241 @@ module Google
707
707
  end
708
708
  end
709
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
+
1265
+ # A step in the build pipeline.
1266
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep
1267
+ include Google::Apis::Core::Hashable
1268
+
1269
+ # A list of arguments that will be presented to the step when it is started. If
1270
+ # the image used to run the step's container has an entrypoint, the `args` are
1271
+ # used as arguments to that entrypoint. If the image does not define an
1272
+ # entrypoint, the first element in args is used as the entrypoint, and the
1273
+ # remainder will be used as arguments.
1274
+ # Corresponds to the JSON property `args`
1275
+ # @return [Array<String>]
1276
+ attr_accessor :args
1277
+
1278
+ # Working directory to use when running this step's container. If this value is
1279
+ # a relative path, it is relative to the build's working directory. If this
1280
+ # value is absolute, it may be outside the build's working directory, in which
1281
+ # case the contents of the path may not be persisted across build step
1282
+ # executions, unless a `volume` for that path is specified. If the build
1283
+ # specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies
1284
+ # an absolute path, the `RepoSource` `dir` is ignored for the step's execution.
1285
+ # Corresponds to the JSON property `dir`
1286
+ # @return [String]
1287
+ attr_accessor :dir
1288
+
1289
+ # Entrypoint to be used instead of the build step image's default entrypoint. If
1290
+ # unset, the image's default entrypoint is used.
1291
+ # Corresponds to the JSON property `entrypoint`
1292
+ # @return [String]
1293
+ attr_accessor :entrypoint
1294
+
1295
+ # A list of environment variable definitions to be used when running a step. The
1296
+ # elements are of the form "KEY=VALUE" for the environment variable "KEY" being
1297
+ # given the value "VALUE".
1298
+ # Corresponds to the JSON property `env`
1299
+ # @return [Array<String>]
1300
+ attr_accessor :env
1301
+
1302
+ # Unique identifier for this build step, used in `wait_for` to reference this
1303
+ # build step as a dependency.
1304
+ # Corresponds to the JSON property `id`
1305
+ # @return [String]
1306
+ attr_accessor :id
1307
+
1308
+ # Required. The name of the container image that will run this particular build
1309
+ # step. If the image is available in the host's Docker daemon's cache, it will
1310
+ # be run directly. If not, the host will attempt to pull the image first, using
1311
+ # the builder service account's credentials if necessary. The Docker daemon's
1312
+ # cache will already have the latest versions of all of the officially supported
1313
+ # build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://
1314
+ # github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also
1315
+ # have cached many of the layers for some popular images, like "ubuntu", "debian"
1316
+ # , but they will be refreshed at the time you attempt to use them. If you built
1317
+ # an image in a previous build step, it will be stored in the host's Docker
1318
+ # daemon's cache and is available to use as the name for a later build step.
1319
+ # Corresponds to the JSON property `name`
1320
+ # @return [String]
1321
+ attr_accessor :name
1322
+
1323
+ # Start and end times for a build execution phase.
1324
+ # Corresponds to the JSON property `pullTiming`
1325
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1326
+ attr_accessor :pull_timing
1327
+
1328
+ # A shell script to be executed in the step. When script is provided, the user
1329
+ # cannot specify the entrypoint or args.
1330
+ # Corresponds to the JSON property `script`
1331
+ # @return [String]
1332
+ attr_accessor :script
1333
+
1334
+ # A list of environment variables which are encrypted using a Cloud Key
1335
+ # Management Service crypto key. These values must be specified in the build's `
1336
+ # Secret`.
1337
+ # Corresponds to the JSON property `secretEnv`
1338
+ # @return [Array<String>]
1339
+ attr_accessor :secret_env
1340
+
1341
+ # Output only. Status of the build step. At this time, build step status is only
1342
+ # updated on build completion; step status is not updated in real-time as the
1343
+ # build progresses.
1344
+ # Corresponds to the JSON property `status`
1345
+ # @return [String]
1346
+ attr_accessor :status
1347
+
1348
+ # Time limit for executing this build step. If not defined, the step has no time
1349
+ # limit and will be allowed to continue to run until either it completes or the
1350
+ # build itself times out.
1351
+ # Corresponds to the JSON property `timeout`
1352
+ # @return [String]
1353
+ attr_accessor :timeout
1354
+
1355
+ # Start and end times for a build execution phase.
1356
+ # Corresponds to the JSON property `timing`
1357
+ # @return [Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan]
1358
+ attr_accessor :timing
1359
+
1360
+ # List of volumes to mount into the build step. Each volume is created as an
1361
+ # empty volume prior to execution of the build step. Upon completion of the
1362
+ # build, volumes and their contents are discarded. Using a named volume in only
1363
+ # one step is not valid as it is indicative of a build request with an incorrect
1364
+ # configuration.
1365
+ # Corresponds to the JSON property `volumes`
1366
+ # @return [Array<Google::Apis::ContaineranalysisV1alpha1::ContaineranalysisGoogleDevtoolsCloudbuildV1Volume>]
1367
+ attr_accessor :volumes
1368
+
1369
+ # The ID(s) of the step(s) that this build step depends on. This build step will
1370
+ # not start until all the build steps in `wait_for` have completed successfully.
1371
+ # If `wait_for` is empty, this build step will start when all previous build
1372
+ # steps in the `Build.Steps` list have completed successfully.
1373
+ # Corresponds to the JSON property `waitFor`
1374
+ # @return [Array<String>]
1375
+ attr_accessor :wait_for
1376
+
1377
+ def initialize(**args)
1378
+ update!(**args)
1379
+ end
1380
+
1381
+ # Update properties of this object
1382
+ def update!(**args)
1383
+ @args = args[:args] if args.key?(:args)
1384
+ @dir = args[:dir] if args.key?(:dir)
1385
+ @entrypoint = args[:entrypoint] if args.key?(:entrypoint)
1386
+ @env = args[:env] if args.key?(:env)
1387
+ @id = args[:id] if args.key?(:id)
1388
+ @name = args[:name] if args.key?(:name)
1389
+ @pull_timing = args[:pull_timing] if args.key?(:pull_timing)
1390
+ @script = args[:script] if args.key?(:script)
1391
+ @secret_env = args[:secret_env] if args.key?(:secret_env)
1392
+ @status = args[:status] if args.key?(:status)
1393
+ @timeout = args[:timeout] if args.key?(:timeout)
1394
+ @timing = args[:timing] if args.key?(:timing)
1395
+ @volumes = args[:volumes] if args.key?(:volumes)
1396
+ @wait_for = args[:wait_for] if args.key?(:wait_for)
1397
+ end
1398
+ end
1399
+
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
1689
+ include Google::Apis::Core::Hashable
1690
+
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`
1695
+ # @return [String]
1696
+ attr_accessor :env
1697
+
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
1702
+
1703
+ def initialize(**args)
1704
+ update!(**args)
1705
+ end
1706
+
1707
+ # Update properties of this object
1708
+ def update!(**args)
1709
+ @env = args[:env] if args.key?(:env)
1710
+ @version_name = args[:version_name] if args.key?(:version_name)
1711
+ end
1712
+ end
1713
+
1714
+ # Secrets and secret environment variables.
1715
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Secrets
1716
+ include Google::Apis::Core::Hashable
1717
+
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
1727
+
1728
+ def initialize(**args)
1729
+ update!(**args)
1730
+ end
1731
+
1732
+ # Update properties of this object
1733
+ def update!(**args)
1734
+ @inline = args[:inline] if args.key?(:inline)
1735
+ @secret_manager = args[:secret_manager] if args.key?(:secret_manager)
1736
+ end
1737
+ end
1738
+
1739
+ # Location of the source in a supported storage service.
1740
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source
1741
+ include Google::Apis::Core::Hashable
1742
+
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
1747
+
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
1759
+
1760
+ def initialize(**args)
1761
+ update!(**args)
1762
+ end
1763
+
1764
+ # Update properties of this object
1765
+ def update!(**args)
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)
1769
+ end
1770
+ end
1771
+
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
1775
+ include Google::Apis::Core::Hashable
1776
+
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
1787
+
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
1792
+
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
1797
+
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
1804
+
1805
+ def initialize(**args)
1806
+ update!(**args)
1807
+ end
1808
+
1809
+ # Update properties of this object
1810
+ def update!(**args)
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)
1815
+ end
1816
+ end
1817
+
1818
+ # Location of the source in an archive file in Google Cloud Storage.
1819
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource
1820
+ include Google::Apis::Core::Hashable
1821
+
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
1828
+
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
1834
+
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
1840
+
1841
+ def initialize(**args)
1842
+ update!(**args)
1843
+ end
1844
+
1845
+ # Update properties of this object
1846
+ def update!(**args)
1847
+ @bucket = args[:bucket] if args.key?(:bucket)
1848
+ @generation = args[:generation] if args.key?(:generation)
1849
+ @object = args[:object] if args.key?(:object)
1850
+ end
1851
+ end
1852
+
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
1857
+ include Google::Apis::Core::Hashable
1858
+
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`
1863
+ # @return [String]
1864
+ attr_accessor :bucket
1865
+
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
1871
+
1872
+ # Google Cloud Storage object containing the source manifest. This object must
1873
+ # be a JSON file.
1874
+ # Corresponds to the JSON property `object`
1875
+ # @return [String]
1876
+ attr_accessor :object
1877
+
1878
+ def initialize(**args)
1879
+ update!(**args)
1880
+ end
1881
+
1882
+ # Update properties of this object
1883
+ def update!(**args)
1884
+ @bucket = args[:bucket] if args.key?(:bucket)
1885
+ @generation = args[:generation] if args.key?(:generation)
1886
+ @object = args[:object] if args.key?(:object)
1887
+ end
1888
+ end
1889
+
1890
+ # Start and end times for a build execution phase.
1891
+ class ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan
1892
+ include Google::Apis::Core::Hashable
1893
+
1894
+ # End of time span.
1895
+ # Corresponds to the JSON property `endTime`
1896
+ # @return [String]
1897
+ attr_accessor :end_time
1898
+
1899
+ # Start of time span.
1900
+ # Corresponds to the JSON property `startTime`
1901
+ # @return [String]
1902
+ attr_accessor :start_time
1903
+
1904
+ def initialize(**args)
1905
+ update!(**args)
1906
+ end
1907
+
1908
+ # Update properties of this object
1909
+ def update!(**args)
1910
+ @end_time = args[:end_time] if args.key?(:end_time)
1911
+ @start_time = args[:start_time] if args.key?(:start_time)
1912
+ end
1913
+ end
1914
+
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
1918
+ include Google::Apis::Core::Hashable
1919
+
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`
1924
+ # @return [String]
1925
+ attr_accessor :name
1926
+
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`
1931
+ # @return [String]
1932
+ attr_accessor :path
1933
+
1934
+ def initialize(**args)
1935
+ update!(**args)
1936
+ end
1937
+
1938
+ # Update properties of this object
1939
+ def update!(**args)
1940
+ @name = args[:name] if args.key?(:name)
1941
+ @path = args[:path] if args.key?(:path)
1942
+ end
1943
+ end
1944
+
710
1945
  # Request for creating an operation
711
1946
  class CreateOperationRequest
712
1947
  include Google::Apis::Core::Hashable
@@ -1517,18 +2752,10 @@ module Google
1517
2752
  # @return [String]
1518
2753
  attr_accessor :id
1519
2754
 
1520
- # This field provides a place for the SPDX file creator to record any relevant
1521
- # background references or analysis that went in to arriving at the Concluded
1522
- # License for a file
1523
- # Corresponds to the JSON property `licenseComments`
1524
- # @return [String]
1525
- attr_accessor :license_comments
1526
-
1527
- # This field contains the license the SPDX file creator has concluded as
1528
- # governing the file or alternative values if the governing license cannot be
1529
- # determined
2755
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
2756
+ # 315-declared-license
1530
2757
  # Corresponds to the JSON property `licenseConcluded`
1531
- # @return [String]
2758
+ # @return [Google::Apis::ContaineranalysisV1alpha1::License]
1532
2759
  attr_accessor :license_concluded
1533
2760
 
1534
2761
  # This field provides a place for the SPDX file creator to record license
@@ -1549,7 +2776,6 @@ module Google
1549
2776
  @copyright = args[:copyright] if args.key?(:copyright)
1550
2777
  @files_license_info = args[:files_license_info] if args.key?(:files_license_info)
1551
2778
  @id = args[:id] if args.key?(:id)
1552
- @license_comments = args[:license_comments] if args.key?(:license_comments)
1553
2779
  @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
1554
2780
  @notice = args[:notice] if args.key?(:notice)
1555
2781
  end
@@ -1612,13 +2838,16 @@ module Google
1612
2838
  class GetPolicyOptions
1613
2839
  include Google::Apis::Core::Hashable
1614
2840
 
1615
- # Optional. The policy format version to be returned. Valid values are 0, 1, and
1616
- # 3. Requests specifying an invalid value will be rejected. Requests for
1617
- # policies with any conditional bindings must specify version 3. Policies
1618
- # without any conditional bindings may specify any valid value or leave the
1619
- # field unset. To learn which resources support conditions in their IAM policies,
1620
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1621
- # 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).
1622
2851
  # Corresponds to the JSON property `requestedPolicyVersion`
1623
2852
  # @return [Fixnum]
1624
2853
  attr_accessor :requested_policy_version
@@ -1965,36 +3194,42 @@ module Google
1965
3194
  class InTotoStatement
1966
3195
  include Google::Apis::Core::Hashable
1967
3196
 
1968
- # "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.
1969
3203
  # Corresponds to the JSON property `predicateType`
1970
3204
  # @return [String]
1971
3205
  attr_accessor :predicate_type
1972
3206
 
1973
- #
3207
+ # provenance is a predicate of type intotoprovenance
1974
3208
  # Corresponds to the JSON property `provenance`
1975
3209
  # @return [Google::Apis::ContaineranalysisV1alpha1::InTotoProvenance]
1976
3210
  attr_accessor :provenance
1977
3211
 
1978
- #
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
1979
3218
  # Corresponds to the JSON property `subject`
1980
3219
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Subject>]
1981
3220
  attr_accessor :subject
1982
3221
 
1983
- # Always "https://in-toto.io/Statement/v0.1".
1984
- # Corresponds to the JSON property `type`
1985
- # @return [String]
1986
- attr_accessor :type
1987
-
1988
3222
  def initialize(**args)
1989
3223
  update!(**args)
1990
3224
  end
1991
3225
 
1992
3226
  # Update properties of this object
1993
3227
  def update!(**args)
3228
+ @_type = args[:_type] if args.key?(:_type)
1994
3229
  @predicate_type = args[:predicate_type] if args.key?(:predicate_type)
1995
3230
  @provenance = args[:provenance] if args.key?(:provenance)
3231
+ @slsa_provenance = args[:slsa_provenance] if args.key?(:slsa_provenance)
1996
3232
  @subject = args[:subject] if args.key?(:subject)
1997
- @type = args[:type] if args.key?(:type)
1998
3233
  end
1999
3234
  end
2000
3235
 
@@ -2049,6 +3284,33 @@ module Google
2049
3284
  end
2050
3285
  end
2051
3286
 
3287
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
3288
+ # 315-declared-license
3289
+ class License
3290
+ include Google::Apis::Core::Hashable
3291
+
3292
+ # Comments
3293
+ # Corresponds to the JSON property `comments`
3294
+ # @return [String]
3295
+ attr_accessor :comments
3296
+
3297
+ # Expression: https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-
3298
+ # expressions/
3299
+ # Corresponds to the JSON property `expression`
3300
+ # @return [String]
3301
+ attr_accessor :expression
3302
+
3303
+ def initialize(**args)
3304
+ update!(**args)
3305
+ end
3306
+
3307
+ # Update properties of this object
3308
+ def update!(**args)
3309
+ @comments = args[:comments] if args.key?(:comments)
3310
+ @expression = args[:expression] if args.key?(:expression)
3311
+ end
3312
+ end
3313
+
2052
3314
  # Response including listed occurrences for a note.
2053
3315
  class ListNoteOccurrencesResponse
2054
3316
  include Google::Apis::Core::Hashable
@@ -2187,6 +3449,32 @@ module Google
2187
3449
  end
2188
3450
  end
2189
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
3466
+
3467
+ def initialize(**args)
3468
+ update!(**args)
3469
+ end
3470
+
3471
+ # Update properties of this object
3472
+ def update!(**args)
3473
+ @digest = args[:digest] if args.key?(:digest)
3474
+ @uri = args[:uri] if args.key?(:uri)
3475
+ end
3476
+ end
3477
+
2190
3478
  # Other properties of the build.
2191
3479
  class Metadata
2192
3480
  include Google::Apis::Core::Hashable
@@ -2377,10 +3665,10 @@ module Google
2377
3665
  # @return [Google::Apis::ContaineranalysisV1alpha1::FileNote]
2378
3666
  attr_accessor :spdx_file
2379
3667
 
2380
- # PackageNote represents an SPDX Package Information section: https://spdx.
3668
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2381
3669
  # github.io/spdx-spec/3-package-information/
2382
3670
  # Corresponds to the JSON property `spdxPackage`
2383
- # @return [Google::Apis::ContaineranalysisV1alpha1::PackageNote]
3671
+ # @return [Google::Apis::ContaineranalysisV1alpha1::PackageInfoNote]
2384
3672
  attr_accessor :spdx_package
2385
3673
 
2386
3674
  # RelationshipNote represents an SPDX Relationship section: https://spdx.github.
@@ -2550,10 +3838,10 @@ module Google
2550
3838
  # @return [Google::Apis::ContaineranalysisV1alpha1::FileOccurrence]
2551
3839
  attr_accessor :spdx_file
2552
3840
 
2553
- # PackageOccurrence represents an SPDX Package Information section: https://spdx.
2554
- # github.io/spdx-spec/3-package-information/
3841
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
3842
+ # spdx.github.io/spdx-spec/3-package-information/
2555
3843
  # Corresponds to the JSON property `spdxPackage`
2556
- # @return [Google::Apis::ContaineranalysisV1alpha1::PackageOccurrence]
3844
+ # @return [Google::Apis::ContaineranalysisV1alpha1::PackageInfoOccurrence]
2557
3845
  attr_accessor :spdx_package
2558
3846
 
2559
3847
  # RelationshipOccurrence represents an SPDX Relationship section: https://spdx.
@@ -2700,56 +3988,9 @@ module Google
2700
3988
  end
2701
3989
  end
2702
3990
 
2703
- # This message wraps a location affected by a vulnerability and its associated
2704
- # fix (if one is available).
2705
- class PackageIssue
2706
- include Google::Apis::Core::Hashable
2707
-
2708
- # The location of the vulnerability
2709
- # Corresponds to the JSON property `affectedLocation`
2710
- # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
2711
- attr_accessor :affected_location
2712
-
2713
- # Output only. The distro or language system assigned severity for this
2714
- # vulnerability when that is available and note provider assigned severity when
2715
- # distro or language system has not yet assigned a severity for this
2716
- # vulnerability.
2717
- # Corresponds to the JSON property `effectiveSeverity`
2718
- # @return [String]
2719
- attr_accessor :effective_severity
2720
-
2721
- # The location of the vulnerability
2722
- # Corresponds to the JSON property `fixedLocation`
2723
- # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
2724
- attr_accessor :fixed_location
2725
-
2726
- # The type of package (e.g. OS, MAVEN, GO).
2727
- # Corresponds to the JSON property `packageType`
2728
- # @return [String]
2729
- attr_accessor :package_type
2730
-
2731
- #
2732
- # Corresponds to the JSON property `severityName`
2733
- # @return [String]
2734
- attr_accessor :severity_name
2735
-
2736
- def initialize(**args)
2737
- update!(**args)
2738
- end
2739
-
2740
- # Update properties of this object
2741
- def update!(**args)
2742
- @affected_location = args[:affected_location] if args.key?(:affected_location)
2743
- @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
2744
- @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
2745
- @package_type = args[:package_type] if args.key?(:package_type)
2746
- @severity_name = args[:severity_name] if args.key?(:severity_name)
2747
- end
2748
- end
2749
-
2750
- # PackageNote represents an SPDX Package Information section: https://spdx.
3991
+ # PackageInfoNote represents an SPDX Package Information section: https://spdx.
2751
3992
  # github.io/spdx-spec/3-package-information/
2752
- class PackageNote
3993
+ class PackageInfoNote
2753
3994
  include Google::Apis::Core::Hashable
2754
3995
 
2755
3996
  # Indicates whether the file content of this package has been available for or
@@ -2808,9 +4049,10 @@ module Google
2808
4049
  # @return [String]
2809
4050
  attr_accessor :home_page
2810
4051
 
2811
- # List the licenses that have been declared by the authors of the package
4052
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
4053
+ # 315-declared-license
2812
4054
  # Corresponds to the JSON property `licenseDeclared`
2813
- # @return [String]
4055
+ # @return [Google::Apis::ContaineranalysisV1alpha1::License]
2814
4056
  attr_accessor :license_declared
2815
4057
 
2816
4058
  # If the package identified in the SPDX file originated from a different person
@@ -2820,6 +4062,11 @@ module Google
2820
4062
  # @return [String]
2821
4063
  attr_accessor :originator
2822
4064
 
4065
+ # The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
4066
+ # Corresponds to the JSON property `packageType`
4067
+ # @return [String]
4068
+ attr_accessor :package_type
4069
+
2823
4070
  # A short description of the package
2824
4071
  # Corresponds to the JSON property `summaryDescription`
2825
4072
  # @return [String]
@@ -2866,54 +4113,128 @@ module Google
2866
4113
  @home_page = args[:home_page] if args.key?(:home_page)
2867
4114
  @license_declared = args[:license_declared] if args.key?(:license_declared)
2868
4115
  @originator = args[:originator] if args.key?(:originator)
4116
+ @package_type = args[:package_type] if args.key?(:package_type)
4117
+ @summary_description = args[:summary_description] if args.key?(:summary_description)
4118
+ @supplier = args[:supplier] if args.key?(:supplier)
4119
+ @title = args[:title] if args.key?(:title)
4120
+ @verification_code = args[:verification_code] if args.key?(:verification_code)
4121
+ @version = args[:version] if args.key?(:version)
4122
+ end
4123
+ end
4124
+
4125
+ # PackageInfoOccurrence represents an SPDX Package Information section: https://
4126
+ # spdx.github.io/spdx-spec/3-package-information/
4127
+ class PackageInfoOccurrence
4128
+ include Google::Apis::Core::Hashable
4129
+
4130
+ # A place for the SPDX file creator to record any general comments about the
4131
+ # package being described
4132
+ # Corresponds to the JSON property `comment`
4133
+ # @return [String]
4134
+ attr_accessor :comment
4135
+
4136
+ # Provide the actual file name of the package, or path of the directory being
4137
+ # treated as a package
4138
+ # Corresponds to the JSON property `filename`
4139
+ # @return [String]
4140
+ attr_accessor :filename
4141
+
4142
+ # Output only. Provide a place for the SPDX file creator to record a web site
4143
+ # that serves as the package's home page
4144
+ # Corresponds to the JSON property `homePage`
4145
+ # @return [String]
4146
+ attr_accessor :home_page
4147
+
4148
+ # Uniquely identify any element in an SPDX document which may be referenced by
4149
+ # other elements
4150
+ # Corresponds to the JSON property `id`
4151
+ # @return [String]
4152
+ attr_accessor :id
4153
+
4154
+ # License information: https://spdx.github.io/spdx-spec/3-package-information/#
4155
+ # 315-declared-license
4156
+ # Corresponds to the JSON property `licenseConcluded`
4157
+ # @return [Google::Apis::ContaineranalysisV1alpha1::License]
4158
+ attr_accessor :license_concluded
4159
+
4160
+ # Output only. The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
4161
+ # Corresponds to the JSON property `packageType`
4162
+ # @return [String]
4163
+ attr_accessor :package_type
4164
+
4165
+ # Provide a place for the SPDX file creator to record any relevant background
4166
+ # information or additional comments about the origin of the package
4167
+ # Corresponds to the JSON property `sourceInfo`
4168
+ # @return [String]
4169
+ attr_accessor :source_info
4170
+
4171
+ # Output only. A short description of the package
4172
+ # Corresponds to the JSON property `summaryDescription`
4173
+ # @return [String]
4174
+ attr_accessor :summary_description
4175
+
4176
+ # Output only. Identify the full name of the package as given by the Package
4177
+ # Originator
4178
+ # Corresponds to the JSON property `title`
4179
+ # @return [String]
4180
+ attr_accessor :title
4181
+
4182
+ # Output only. Identify the version of the package
4183
+ # Corresponds to the JSON property `version`
4184
+ # @return [String]
4185
+ attr_accessor :version
4186
+
4187
+ def initialize(**args)
4188
+ update!(**args)
4189
+ end
4190
+
4191
+ # Update properties of this object
4192
+ def update!(**args)
4193
+ @comment = args[:comment] if args.key?(:comment)
4194
+ @filename = args[:filename] if args.key?(:filename)
4195
+ @home_page = args[:home_page] if args.key?(:home_page)
4196
+ @id = args[:id] if args.key?(:id)
4197
+ @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
4198
+ @package_type = args[:package_type] if args.key?(:package_type)
4199
+ @source_info = args[:source_info] if args.key?(:source_info)
2869
4200
  @summary_description = args[:summary_description] if args.key?(:summary_description)
2870
- @supplier = args[:supplier] if args.key?(:supplier)
2871
4201
  @title = args[:title] if args.key?(:title)
2872
- @verification_code = args[:verification_code] if args.key?(:verification_code)
2873
4202
  @version = args[:version] if args.key?(:version)
2874
4203
  end
2875
4204
  end
2876
4205
 
2877
- # PackageOccurrence represents an SPDX Package Information section: https://spdx.
2878
- # github.io/spdx-spec/3-package-information/
2879
- class PackageOccurrence
4206
+ # This message wraps a location affected by a vulnerability and its associated
4207
+ # fix (if one is available).
4208
+ class PackageIssue
2880
4209
  include Google::Apis::Core::Hashable
2881
4210
 
2882
- # A place for the SPDX file creator to record any general comments about the
2883
- # package being described
2884
- # Corresponds to the JSON property `comment`
2885
- # @return [String]
2886
- attr_accessor :comment
2887
-
2888
- # Provide the actual file name of the package, or path of the directory being
2889
- # treated as a package
2890
- # Corresponds to the JSON property `filename`
2891
- # @return [String]
2892
- attr_accessor :filename
4211
+ # The location of the vulnerability
4212
+ # Corresponds to the JSON property `affectedLocation`
4213
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
4214
+ attr_accessor :affected_location
2893
4215
 
2894
- # Uniquely identify any element in an SPDX document which may be referenced by
2895
- # other elements
2896
- # Corresponds to the JSON property `id`
4216
+ # Output only. The distro or language system assigned severity for this
4217
+ # vulnerability when that is available and note provider assigned severity when
4218
+ # distro or language system has not yet assigned a severity for this
4219
+ # vulnerability.
4220
+ # Corresponds to the JSON property `effectiveSeverity`
2897
4221
  # @return [String]
2898
- attr_accessor :id
4222
+ attr_accessor :effective_severity
2899
4223
 
2900
- # This field provides a place for the SPDX file creator to record any relevant
2901
- # background information or analysis that went in to arriving at the Concluded
2902
- # License for a package
2903
- # Corresponds to the JSON property `licenseComments`
2904
- # @return [String]
2905
- attr_accessor :license_comments
4224
+ # The location of the vulnerability
4225
+ # Corresponds to the JSON property `fixedLocation`
4226
+ # @return [Google::Apis::ContaineranalysisV1alpha1::VulnerabilityLocation]
4227
+ attr_accessor :fixed_location
2906
4228
 
2907
- # package or alternative values, if the governing license cannot be determined
2908
- # Corresponds to the JSON property `licenseConcluded`
4229
+ # The type of package (e.g. OS, MAVEN, GO).
4230
+ # Corresponds to the JSON property `packageType`
2909
4231
  # @return [String]
2910
- attr_accessor :license_concluded
4232
+ attr_accessor :package_type
2911
4233
 
2912
- # Provide a place for the SPDX file creator to record any relevant background
2913
- # information or additional comments about the origin of the package
2914
- # Corresponds to the JSON property `sourceInfo`
4234
+ #
4235
+ # Corresponds to the JSON property `severityName`
2915
4236
  # @return [String]
2916
- attr_accessor :source_info
4237
+ attr_accessor :severity_name
2917
4238
 
2918
4239
  def initialize(**args)
2919
4240
  update!(**args)
@@ -2921,12 +4242,11 @@ module Google
2921
4242
 
2922
4243
  # Update properties of this object
2923
4244
  def update!(**args)
2924
- @comment = args[:comment] if args.key?(:comment)
2925
- @filename = args[:filename] if args.key?(:filename)
2926
- @id = args[:id] if args.key?(:id)
2927
- @license_comments = args[:license_comments] if args.key?(:license_comments)
2928
- @license_concluded = args[:license_concluded] if args.key?(:license_concluded)
2929
- @source_info = args[:source_info] if args.key?(:source_info)
4245
+ @affected_location = args[:affected_location] if args.key?(:affected_location)
4246
+ @effective_severity = args[:effective_severity] if args.key?(:effective_severity)
4247
+ @fixed_location = args[:fixed_location] if args.key?(:fixed_location)
4248
+ @package_type = args[:package_type] if args.key?(:package_type)
4249
+ @severity_name = args[:severity_name] if args.key?(:severity_name)
2930
4250
  end
2931
4251
  end
2932
4252
 
@@ -2985,37 +4305,42 @@ module Google
2985
4305
 
2986
4306
  # An Identity and Access Management (IAM) policy, which specifies access
2987
4307
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2988
- # A `binding` binds one or more `members` to a single `role`. Members can be
2989
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2990
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2991
- # role or a user-created custom role. For some types of Google Cloud resources,
2992
- # a `binding` can also specify a `condition`, which is a logical expression that
2993
- # allows access to a resource only if the expression evaluates to `true`. A
2994
- # condition can add constraints based on attributes of the request, the resource,
2995
- # or both. To learn which resources support conditions in their IAM policies,
2996
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2997
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2998
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2999
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
3000
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
3001
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
3002
- # title": "expirable access", "description": "Does not grant access after Sep
3003
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
3004
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
3005
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
3006
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
3007
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
3008
- # roles/resourcemanager.organizationViewer condition: title: expirable access
3009
- # description: Does not grant access after Sep 2020 expression: request.time <
3010
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
3011
- # description of IAM and its features, see the [IAM documentation](https://cloud.
3012
- # google.com/iam/docs/).
4308
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
4309
+ # Principals can be user accounts, service accounts, Google groups, and domains (
4310
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
4311
+ # an IAM predefined role or a user-created custom role. For some types of Google
4312
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
4313
+ # logical expression that allows access to a resource only if the expression
4314
+ # evaluates to `true`. A condition can add constraints based on attributes of
4315
+ # the request, the resource, or both. To learn which resources support
4316
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
4317
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
4318
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
4319
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
4320
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
4321
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
4322
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
4323
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
4324
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
4325
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
4326
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
4327
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
4328
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
4329
+ # access description: Does not grant access after Sep 2020 expression: request.
4330
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
4331
+ # a description of IAM and its features, see the [IAM documentation](https://
4332
+ # cloud.google.com/iam/docs/).
3013
4333
  class Policy
3014
4334
  include Google::Apis::Core::Hashable
3015
4335
 
3016
- # Associates a list of `members` to a `role`. Optionally, may specify a `
3017
- # condition` that determines how and when the `bindings` are applied. Each of
3018
- # the `bindings` must contain at least one member.
4336
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
4337
+ # specify a `condition` that determines how and when the `bindings` are applied.
4338
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
4339
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
4340
+ # can be Google groups. Each occurrence of a principal counts towards these
4341
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
4342
+ # example.com`, and not to any other principal, then you can add another 1,450
4343
+ # principals to the `bindings` in the `Policy`.
3019
4344
  # Corresponds to the JSON property `bindings`
3020
4345
  # @return [Array<Google::Apis::ContaineranalysisV1alpha1::Binding>]
3021
4346
  attr_accessor :bindings
@@ -3077,7 +4402,7 @@ module Google
3077
4402
  # make", then this might be the flags passed to make aside from the target,
3078
4403
  # which is captured in recipe.entryPoint.
3079
4404
  # Corresponds to the JSON property `arguments`
3080
- # @return [Array<String>]
4405
+ # @return [Array<Hash<String,Object>>]
3081
4406
  attr_accessor :arguments
3082
4407
 
3083
4408
  # Index in materials containing the recipe steps that are not implied by recipe.
@@ -3102,7 +4427,7 @@ module Google
3102
4427
  # recipe. Usually only needed for reproducing the build but not evaluated as
3103
4428
  # part of policy.
3104
4429
  # Corresponds to the JSON property `environment`
3105
- # @return [Hash<String,String>]
4430
+ # @return [Array<Hash<String,Object>>]
3106
4431
  attr_accessor :environment
3107
4432
 
3108
4433
  # URI indicating what type of recipe was performed. It determines the meaning of
@@ -3155,12 +4480,18 @@ module Google
3155
4480
  class RelationshipNote
3156
4481
  include Google::Apis::Core::Hashable
3157
4482
 
4483
+ # The type of relationship between the source and target SPDX elements
4484
+ # Corresponds to the JSON property `type`
4485
+ # @return [String]
4486
+ attr_accessor :type
4487
+
3158
4488
  def initialize(**args)
3159
4489
  update!(**args)
3160
4490
  end
3161
4491
 
3162
4492
  # Update properties of this object
3163
4493
  def update!(**args)
4494
+ @type = args[:type] if args.key?(:type)
3164
4495
  end
3165
4496
  end
3166
4497
 
@@ -3189,7 +4520,8 @@ module Google
3189
4520
  # @return [String]
3190
4521
  attr_accessor :target
3191
4522
 
3192
- # The type of relationship between the source and target SPDX elements
4523
+ # Output only. The type of relationship between the source and target SPDX
4524
+ # elements
3193
4525
  # Corresponds to the JSON property `type`
3194
4526
  # @return [String]
3195
4527
  attr_accessor :type
@@ -3334,31 +4666,31 @@ module Google
3334
4666
 
3335
4667
  # An Identity and Access Management (IAM) policy, which specifies access
3336
4668
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
3337
- # A `binding` binds one or more `members` to a single `role`. Members can be
3338
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
3339
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
3340
- # role or a user-created custom role. For some types of Google Cloud resources,
3341
- # a `binding` can also specify a `condition`, which is a logical expression that
3342
- # allows access to a resource only if the expression evaluates to `true`. A
3343
- # condition can add constraints based on attributes of the request, the resource,
3344
- # or both. To learn which resources support conditions in their IAM policies,
3345
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
3346
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
3347
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
3348
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
3349
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
3350
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
3351
- # title": "expirable access", "description": "Does not grant access after Sep
3352
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
3353
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
3354
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
3355
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
3356
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
3357
- # roles/resourcemanager.organizationViewer condition: title: expirable access
3358
- # description: Does not grant access after Sep 2020 expression: request.time <
3359
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
3360
- # description of IAM and its features, see the [IAM documentation](https://cloud.
3361
- # google.com/iam/docs/).
4669
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
4670
+ # Principals can be user accounts, service accounts, Google groups, and domains (
4671
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
4672
+ # an IAM predefined role or a user-created custom role. For some types of Google
4673
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
4674
+ # logical expression that allows access to a resource only if the expression
4675
+ # evaluates to `true`. A condition can add constraints based on attributes of
4676
+ # the request, the resource, or both. To learn which resources support
4677
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
4678
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
4679
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
4680
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
4681
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
4682
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
4683
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
4684
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
4685
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
4686
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
4687
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
4688
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
4689
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
4690
+ # access description: Does not grant access after Sep 2020 expression: request.
4691
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
4692
+ # a description of IAM and its features, see the [IAM documentation](https://
4693
+ # cloud.google.com/iam/docs/).
3362
4694
  # Corresponds to the JSON property `policy`
3363
4695
  # @return [Google::Apis::ContaineranalysisV1alpha1::Policy]
3364
4696
  attr_accessor :policy
@@ -3398,6 +4730,210 @@ module Google
3398
4730
  end
3399
4731
  end
3400
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
+
3401
4937
  # Source describes the location of the source used for the build.
3402
4938
  class Source
3403
4939
  include Google::Apis::Core::Hashable
@@ -3530,16 +5066,17 @@ module Google
3530
5066
  end
3531
5067
  end
3532
5068
 
3533
- #
5069
+ # Subject refers to the subject of the intoto statement
3534
5070
  class Subject
3535
5071
  include Google::Apis::Core::Hashable
3536
5072
 
3537
- # "": ""
5073
+ # "": "" Algorithms can be e.g. sha256, sha512 See https://github.com/in-toto/
5074
+ # attestation/blob/main/spec/field_types.md#DigestSet
3538
5075
  # Corresponds to the JSON property `digest`
3539
5076
  # @return [Hash<String,String>]
3540
5077
  attr_accessor :digest
3541
5078
 
3542
- #
5079
+ # name is the name of the Subject used here
3543
5080
  # Corresponds to the JSON property `name`
3544
5081
  # @return [String]
3545
5082
  attr_accessor :name