diff --git a/java-aiplatform/README.md b/java-aiplatform/README.md
index 122f1a9fbac4..72ffc1b738c7 100644
--- a/java-aiplatform/README.md
+++ b/java-aiplatform/README.md
@@ -19,20 +19,20 @@ If you are using Maven, add this to your pom.xml file:
+ * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return The serviceAccount.
+ */
+ @java.lang.Override
+ public java.lang.String getServiceAccount() {
+ java.lang.Object ref = serviceAccount_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serviceAccount_ = s;
+ return s;
+ }
+ }
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return The bytes for serviceAccount.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString getServiceAccountBytes() {
+ java.lang.Object ref = serviceAccount_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ serviceAccount_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
public static final int MANUAL_BATCH_TUNING_PARAMETERS_FIELD_NUMBER = 8;
private com.google.cloud.aiplatform.v1.ManualBatchTuningParameters manualBatchTuningParameters_;
/**
@@ -6333,6 +6393,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
if (unmanagedContainerModel_ != null) {
output.writeMessage(28, getUnmanagedContainerModel());
}
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccount_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 29, serviceAccount_);
+ }
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelVersionId_)) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 30, modelVersionId_);
}
@@ -6425,6 +6488,9 @@ public int getSerializedSize() {
com.google.protobuf.CodedOutputStream.computeMessageSize(
28, getUnmanagedContainerModel());
}
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(serviceAccount_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, serviceAccount_);
+ }
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(modelVersionId_)) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(30, modelVersionId_);
}
@@ -6468,6 +6534,7 @@ public boolean equals(final java.lang.Object obj) {
if (hasDedicatedResources()) {
if (!getDedicatedResources().equals(other.getDedicatedResources())) return false;
}
+ if (!getServiceAccount().equals(other.getServiceAccount())) return false;
if (hasManualBatchTuningParameters() != other.hasManualBatchTuningParameters()) return false;
if (hasManualBatchTuningParameters()) {
if (!getManualBatchTuningParameters().equals(other.getManualBatchTuningParameters()))
@@ -6556,6 +6623,8 @@ public int hashCode() {
hash = (37 * hash) + DEDICATED_RESOURCES_FIELD_NUMBER;
hash = (53 * hash) + getDedicatedResources().hashCode();
}
+ hash = (37 * hash) + SERVICE_ACCOUNT_FIELD_NUMBER;
+ hash = (53 * hash) + getServiceAccount().hashCode();
if (hasManualBatchTuningParameters()) {
hash = (37 * hash) + MANUAL_BATCH_TUNING_PARAMETERS_FIELD_NUMBER;
hash = (53 * hash) + getManualBatchTuningParameters().hashCode();
@@ -6811,6 +6880,8 @@ public Builder clear() {
dedicatedResources_ = null;
dedicatedResourcesBuilder_ = null;
}
+ serviceAccount_ = "";
+
if (manualBatchTuningParametersBuilder_ == null) {
manualBatchTuningParameters_ = null;
} else {
@@ -6946,6 +7017,7 @@ public com.google.cloud.aiplatform.v1.BatchPredictionJob buildPartial() {
} else {
result.dedicatedResources_ = dedicatedResourcesBuilder_.build();
}
+ result.serviceAccount_ = serviceAccount_;
if (manualBatchTuningParametersBuilder_ == null) {
result.manualBatchTuningParameters_ = manualBatchTuningParameters_;
} else {
@@ -7095,6 +7167,10 @@ public Builder mergeFrom(com.google.cloud.aiplatform.v1.BatchPredictionJob other
if (other.hasDedicatedResources()) {
mergeDedicatedResources(other.getDedicatedResources());
}
+ if (!other.getServiceAccount().isEmpty()) {
+ serviceAccount_ = other.serviceAccount_;
+ onChanged();
+ }
if (other.hasManualBatchTuningParameters()) {
mergeManualBatchTuningParameters(other.getManualBatchTuningParameters());
}
@@ -7341,6 +7417,12 @@ public Builder mergeFrom(
break;
} // case 226
+ case 234:
+ {
+ serviceAccount_ = input.readStringRequireUtf8();
+
+ break;
+ } // case 234
case 242:
{
modelVersionId_ = input.readStringRequireUtf8();
@@ -8992,6 +9074,137 @@ public Builder clearDedicatedResources() {
return dedicatedResourcesBuilder_;
}
+ private java.lang.Object serviceAccount_ = "";
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return The serviceAccount.
+ */
+ public java.lang.String getServiceAccount() {
+ java.lang.Object ref = serviceAccount_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serviceAccount_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return The bytes for serviceAccount.
+ */
+ public com.google.protobuf.ByteString getServiceAccountBytes() {
+ java.lang.Object ref = serviceAccount_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+ serviceAccount_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @param value The serviceAccount to set.
+ * @return This builder for chaining.
+ */
+ public Builder setServiceAccount(java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ serviceAccount_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearServiceAccount() {
+
+ serviceAccount_ = getDefaultInstance().getServiceAccount();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @param value The bytes for serviceAccount to set.
+ * @return This builder for chaining.
+ */
+ public Builder setServiceAccountBytes(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ serviceAccount_ = value;
+ onChanged();
+ return this;
+ }
+
private com.google.cloud.aiplatform.v1.ManualBatchTuningParameters manualBatchTuningParameters_;
private com.google.protobuf.SingleFieldBuilderV3<
com.google.cloud.aiplatform.v1.ManualBatchTuningParameters,
diff --git a/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobOrBuilder.java b/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobOrBuilder.java
index 0dcb66d6b4d0..a8d3806b7922 100644
--- a/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobOrBuilder.java
+++ b/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobOrBuilder.java
@@ -387,6 +387,41 @@ public interface BatchPredictionJobOrBuilder
*/
com.google.cloud.aiplatform.v1.BatchDedicatedResourcesOrBuilder getDedicatedResourcesOrBuilder();
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return The serviceAccount.
+ */
+ java.lang.String getServiceAccount();
+ /**
+ *
+ *
+ * + * The service account that the DeployedModel's container runs as. If not + * specified, a system generated one will be used, which + * has minimal permissions and the custom container, if used, may not have + * enough permission to access other GCP resources. + * Users deploying the Model must have the `iam.serviceAccounts.actAs` + * permission on this service account. + *+ * + *
string service_account = 29;
+ *
+ * @return The bytes for serviceAccount.
+ */
+ com.google.protobuf.ByteString getServiceAccountBytes();
+
/**
*
*
diff --git a/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobProto.java b/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobProto.java
index 6f76ca91129b..7dce9b50bda2 100644
--- a/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobProto.java
+++ b/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/java/com/google/cloud/aiplatform/v1/BatchPredictionJobProto.java
@@ -71,7 +71,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "rs.proto\032:google/cloud/aiplatform/v1/unm"
+ "anaged_container_model.proto\032\034google/pro"
+ "tobuf/struct.proto\032\037google/protobuf/time"
- + "stamp.proto\032\027google/rpc/status.proto\"\271\021\n"
+ + "stamp.proto\032\027google/rpc/status.proto\"\322\021\n"
+ "\022BatchPredictionJob\022\021\n\004name\030\001 \001(\tB\003\340A\003\022\031"
+ "\n\014display_name\030\002 \001(\tB\003\340A\002\0223\n\005model\030\003 \001(\t"
+ "B$\372A!\n\037aiplatform.googleapis.com/Model\022\035"
@@ -85,55 +85,56 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "google.cloud.aiplatform.v1.BatchPredicti"
+ "onJob.OutputConfigB\003\340A\002\022P\n\023dedicated_res"
+ "ources\030\007 \001(\01323.google.cloud.aiplatform.v"
- + "1.BatchDedicatedResources\022d\n\036manual_batc"
- + "h_tuning_parameters\030\010 \001(\01327.google.cloud"
- + ".aiplatform.v1.ManualBatchTuningParamete"
- + "rsB\003\340A\005\022\034\n\024generate_explanation\030\027 \001(\010\022E\n"
- + "\020explanation_spec\030\031 \001(\0132+.google.cloud.a"
- + "iplatform.v1.ExplanationSpec\022S\n\013output_i"
- + "nfo\030\t \001(\01329.google.cloud.aiplatform.v1.B"
- + "atchPredictionJob.OutputInfoB\003\340A\003\0228\n\005sta"
- + "te\030\n \001(\0162$.google.cloud.aiplatform.v1.Jo"
- + "bStateB\003\340A\003\022&\n\005error\030\013 \001(\0132\022.google.rpc."
- + "StatusB\003\340A\003\0221\n\020partial_failures\030\014 \003(\0132\022."
- + "google.rpc.StatusB\003\340A\003\022N\n\022resources_cons"
- + "umed\030\r \001(\0132-.google.cloud.aiplatform.v1."
- + "ResourcesConsumedB\003\340A\003\022J\n\020completion_sta"
- + "ts\030\016 \001(\0132+.google.cloud.aiplatform.v1.Co"
- + "mpletionStatsB\003\340A\003\0224\n\013create_time\030\017 \001(\0132"
- + "\032.google.protobuf.TimestampB\003\340A\003\0223\n\nstar"
- + "t_time\030\020 \001(\0132\032.google.protobuf.Timestamp"
- + "B\003\340A\003\0221\n\010end_time\030\021 \001(\0132\032.google.protobu"
- + "f.TimestampB\003\340A\003\0224\n\013update_time\030\022 \001(\0132\032."
- + "google.protobuf.TimestampB\003\340A\003\022J\n\006labels"
- + "\030\023 \003(\0132:.google.cloud.aiplatform.v1.Batc"
- + "hPredictionJob.LabelsEntry\022C\n\017encryption"
- + "_spec\030\030 \001(\0132*.google.cloud.aiplatform.v1"
- + ".EncryptionSpec\032\272\001\n\013InputConfig\022;\n\ngcs_s"
- + "ource\030\002 \001(\0132%.google.cloud.aiplatform.v1"
- + ".GcsSourceH\000\022E\n\017bigquery_source\030\003 \001(\0132*."
- + "google.cloud.aiplatform.v1.BigQuerySourc"
- + "eH\000\022\035\n\020instances_format\030\001 \001(\tB\003\340A\002B\010\n\006so"
- + "urce\032\326\001\n\014OutputConfig\022E\n\017gcs_destination"
- + "\030\002 \001(\0132*.google.cloud.aiplatform.v1.GcsD"
- + "estinationH\000\022O\n\024bigquery_destination\030\003 \001"
- + "(\0132/.google.cloud.aiplatform.v1.BigQuery"
- + "DestinationH\000\022\037\n\022predictions_format\030\001 \001("
- + "\tB\003\340A\002B\r\n\013destination\032\220\001\n\nOutputInfo\022#\n\024"
- + "gcs_output_directory\030\001 \001(\tB\003\340A\003H\000\022&\n\027big"
- + "query_output_dataset\030\002 \001(\tB\003\340A\003H\000\022\"\n\025big"
- + "query_output_table\030\004 \001(\tB\003\340A\003B\021\n\017output_"
- + "location\032-\n\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005"
- + "value\030\002 \001(\t:\0028\001:\206\001\352A\202\001\n,aiplatform.googl"
- + "eapis.com/BatchPredictionJob\022Rprojects/{"
- + "project}/locations/{location}/batchPredi"
- + "ctionJobs/{batch_prediction_job}B\333\001\n\036com"
- + ".google.cloud.aiplatform.v1B\027BatchPredic"
- + "tionJobProtoP\001ZDgoogle.golang.org/genpro"
- + "to/googleapis/cloud/aiplatform/v1;aiplat"
- + "form\252\002\032Google.Cloud.AIPlatform.V1\312\002\032Goog"
- + "le\\Cloud\\AIPlatform\\V1\352\002\035Google::Cloud::"
- + "AIPlatform::V1b\006proto3"
+ + "1.BatchDedicatedResources\022\027\n\017service_acc"
+ + "ount\030\035 \001(\t\022d\n\036manual_batch_tuning_parame"
+ + "ters\030\010 \001(\01327.google.cloud.aiplatform.v1."
+ + "ManualBatchTuningParametersB\003\340A\005\022\034\n\024gene"
+ + "rate_explanation\030\027 \001(\010\022E\n\020explanation_sp"
+ + "ec\030\031 \001(\0132+.google.cloud.aiplatform.v1.Ex"
+ + "planationSpec\022S\n\013output_info\030\t \001(\01329.goo"
+ + "gle.cloud.aiplatform.v1.BatchPredictionJ"
+ + "ob.OutputInfoB\003\340A\003\0228\n\005state\030\n \001(\0162$.goog"
+ + "le.cloud.aiplatform.v1.JobStateB\003\340A\003\022&\n\005"
+ + "error\030\013 \001(\0132\022.google.rpc.StatusB\003\340A\003\0221\n\020"
+ + "partial_failures\030\014 \003(\0132\022.google.rpc.Stat"
+ + "usB\003\340A\003\022N\n\022resources_consumed\030\r \001(\0132-.go"
+ + "ogle.cloud.aiplatform.v1.ResourcesConsum"
+ + "edB\003\340A\003\022J\n\020completion_stats\030\016 \001(\0132+.goog"
+ + "le.cloud.aiplatform.v1.CompletionStatsB\003"
+ + "\340A\003\0224\n\013create_time\030\017 \001(\0132\032.google.protob"
+ + "uf.TimestampB\003\340A\003\0223\n\nstart_time\030\020 \001(\0132\032."
+ + "google.protobuf.TimestampB\003\340A\003\0221\n\010end_ti"
+ + "me\030\021 \001(\0132\032.google.protobuf.TimestampB\003\340A"
+ + "\003\0224\n\013update_time\030\022 \001(\0132\032.google.protobuf"
+ + ".TimestampB\003\340A\003\022J\n\006labels\030\023 \003(\0132:.google"
+ + ".cloud.aiplatform.v1.BatchPredictionJob."
+ + "LabelsEntry\022C\n\017encryption_spec\030\030 \001(\0132*.g"
+ + "oogle.cloud.aiplatform.v1.EncryptionSpec"
+ + "\032\272\001\n\013InputConfig\022;\n\ngcs_source\030\002 \001(\0132%.g"
+ + "oogle.cloud.aiplatform.v1.GcsSourceH\000\022E\n"
+ + "\017bigquery_source\030\003 \001(\0132*.google.cloud.ai"
+ + "platform.v1.BigQuerySourceH\000\022\035\n\020instance"
+ + "s_format\030\001 \001(\tB\003\340A\002B\010\n\006source\032\326\001\n\014Output"
+ + "Config\022E\n\017gcs_destination\030\002 \001(\0132*.google"
+ + ".cloud.aiplatform.v1.GcsDestinationH\000\022O\n"
+ + "\024bigquery_destination\030\003 \001(\0132/.google.clo"
+ + "ud.aiplatform.v1.BigQueryDestinationH\000\022\037"
+ + "\n\022predictions_format\030\001 \001(\tB\003\340A\002B\r\n\013desti"
+ + "nation\032\220\001\n\nOutputInfo\022#\n\024gcs_output_dire"
+ + "ctory\030\001 \001(\tB\003\340A\003H\000\022&\n\027bigquery_output_da"
+ + "taset\030\002 \001(\tB\003\340A\003H\000\022\"\n\025bigquery_output_ta"
+ + "ble\030\004 \001(\tB\003\340A\003B\021\n\017output_location\032-\n\013Lab"
+ + "elsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001"
+ + ":\206\001\352A\202\001\n,aiplatform.googleapis.com/Batch"
+ + "PredictionJob\022Rprojects/{project}/locati"
+ + "ons/{location}/batchPredictionJobs/{batc"
+ + "h_prediction_job}B\333\001\n\036com.google.cloud.a"
+ + "iplatform.v1B\027BatchPredictionJobProtoP\001Z"
+ + "Dgoogle.golang.org/genproto/googleapis/c"
+ + "loud/aiplatform/v1;aiplatform\252\002\032Google.C"
+ + "loud.AIPlatform.V1\312\002\032Google\\Cloud\\AIPlat"
+ + "form\\V1\352\002\035Google::Cloud::AIPlatform::V1b"
+ + "\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -168,6 +169,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"ModelParameters",
"OutputConfig",
"DedicatedResources",
+ "ServiceAccount",
"ManualBatchTuningParameters",
"GenerateExplanation",
"ExplanationSpec",
diff --git a/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/proto/google/cloud/aiplatform/v1/batch_prediction_job.proto b/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/proto/google/cloud/aiplatform/v1/batch_prediction_job.proto
index 21568cee04d0..40f49fbb9186 100644
--- a/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/proto/google/cloud/aiplatform/v1/batch_prediction_job.proto
+++ b/java-aiplatform/proto-google-cloud-aiplatform-v1/src/main/proto/google/cloud/aiplatform/v1/batch_prediction_job.proto
@@ -204,6 +204,15 @@ message BatchPredictionJob {
// must be provided.
BatchDedicatedResources dedicated_resources = 7;
+ // The service account that the DeployedModel's container runs as. If not
+ // specified, a system generated one will be used, which
+ // has minimal permissions and the custom container, if used, may not have
+ // enough permission to access other GCP resources.
+ //
+ // Users deploying the Model must have the `iam.serviceAccounts.actAs`
+ // permission on this service account.
+ string service_account = 29;
+
// Immutable. Parameters configuring the batch behavior. Currently only applicable when
// [dedicated_resources][google.cloud.aiplatform.v1.BatchPredictionJob.dedicated_resources] are used (in other cases Vertex AI does
// the tuning itself).