diff --git a/google-api-grpc/grpc-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceGrpc.java b/google-api-grpc/grpc-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceGrpc.java new file mode 100644 index 000000000000..c7cfc4e7ad96 --- /dev/null +++ b/google-api-grpc/grpc-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceGrpc.java @@ -0,0 +1,433 @@ +package com.google.cloud.asset.v1beta1; + +import static io.grpc.MethodDescriptor.generateFullMethodName; +import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ClientCalls.asyncClientStreamingCall; +import static io.grpc.stub.ClientCalls.asyncServerStreamingCall; +import static io.grpc.stub.ClientCalls.asyncUnaryCall; +import static io.grpc.stub.ClientCalls.blockingServerStreamingCall; +import static io.grpc.stub.ClientCalls.blockingUnaryCall; +import static io.grpc.stub.ClientCalls.futureUnaryCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall; +import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall; + +/** + *
+ * Asset service definition.
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.10.0)", + comments = "Source: google/cloud/asset/v1beta1/asset_service.proto") +public final class AssetServiceGrpc { + + private AssetServiceGrpc() {} + + public static final String SERVICE_NAME = "google.cloud.asset.v1beta1.AssetService"; + + // Static method descriptors that strictly reflect the proto. + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + @java.lang.Deprecated // Use {@link #getExportAssetsMethod()} instead. + public static final io.grpc.MethodDescriptor METHOD_EXPORT_ASSETS = getExportAssetsMethodHelper(); + + private static volatile io.grpc.MethodDescriptor getExportAssetsMethod; + + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static io.grpc.MethodDescriptor getExportAssetsMethod() { + return getExportAssetsMethodHelper(); + } + + private static io.grpc.MethodDescriptor getExportAssetsMethodHelper() { + io.grpc.MethodDescriptor getExportAssetsMethod; + if ((getExportAssetsMethod = AssetServiceGrpc.getExportAssetsMethod) == null) { + synchronized (AssetServiceGrpc.class) { + if ((getExportAssetsMethod = AssetServiceGrpc.getExportAssetsMethod) == null) { + AssetServiceGrpc.getExportAssetsMethod = getExportAssetsMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName( + "google.cloud.asset.v1beta1.AssetService", "ExportAssets")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.asset.v1beta1.ExportAssetsRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.google.longrunning.Operation.getDefaultInstance())) + .setSchemaDescriptor(new AssetServiceMethodDescriptorSupplier("ExportAssets")) + .build(); + } + } + } + return getExportAssetsMethod; + } + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + @java.lang.Deprecated // Use {@link #getBatchGetAssetsHistoryMethod()} instead. + public static final io.grpc.MethodDescriptor METHOD_BATCH_GET_ASSETS_HISTORY = getBatchGetAssetsHistoryMethodHelper(); + + private static volatile io.grpc.MethodDescriptor getBatchGetAssetsHistoryMethod; + + @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901") + public static io.grpc.MethodDescriptor getBatchGetAssetsHistoryMethod() { + return getBatchGetAssetsHistoryMethodHelper(); + } + + private static io.grpc.MethodDescriptor getBatchGetAssetsHistoryMethodHelper() { + io.grpc.MethodDescriptor getBatchGetAssetsHistoryMethod; + if ((getBatchGetAssetsHistoryMethod = AssetServiceGrpc.getBatchGetAssetsHistoryMethod) == null) { + synchronized (AssetServiceGrpc.class) { + if ((getBatchGetAssetsHistoryMethod = AssetServiceGrpc.getBatchGetAssetsHistoryMethod) == null) { + AssetServiceGrpc.getBatchGetAssetsHistoryMethod = getBatchGetAssetsHistoryMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName( + "google.cloud.asset.v1beta1.AssetService", "BatchGetAssetsHistory")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.getDefaultInstance())) + .setSchemaDescriptor(new AssetServiceMethodDescriptorSupplier("BatchGetAssetsHistory")) + .build(); + } + } + } + return getBatchGetAssetsHistoryMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static AssetServiceStub newStub(io.grpc.Channel channel) { + return new AssetServiceStub(channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static AssetServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + return new AssetServiceBlockingStub(channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static AssetServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + return new AssetServiceFutureStub(channel); + } + + /** + *
+   * Asset service definition.
+   * 
+ */ + public static abstract class AssetServiceImplBase implements io.grpc.BindableService { + + /** + *
+     * Exports assets with time and resource types to a given Google Cloud Storage
+     * location. The output format is newline-delimited JSON.
+     * This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing users
+     * to keep track of the export.
+     * 
+ */ + public void exportAssets(com.google.cloud.asset.v1beta1.ExportAssetsRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(getExportAssetsMethodHelper(), responseObserver); + } + + /** + *
+     * Batch gets assets update history that overlaps a time window.
+     * For RESOURCE content, this API outputs history with asset in both
+     * non-delete or deleted status.
+     * For IAM_POLICY content, this API only outputs history when asset and its
+     * attached IAM POLICY both exist. So there may be gaps in the output history.
+     * 
+ */ + public void batchGetAssetsHistory(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnimplementedUnaryCall(getBatchGetAssetsHistoryMethodHelper(), responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getExportAssetsMethodHelper(), + asyncUnaryCall( + new MethodHandlers< + com.google.cloud.asset.v1beta1.ExportAssetsRequest, + com.google.longrunning.Operation>( + this, METHODID_EXPORT_ASSETS))) + .addMethod( + getBatchGetAssetsHistoryMethodHelper(), + asyncUnaryCall( + new MethodHandlers< + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest, + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse>( + this, METHODID_BATCH_GET_ASSETS_HISTORY))) + .build(); + } + } + + /** + *
+   * Asset service definition.
+   * 
+ */ + public static final class AssetServiceStub extends io.grpc.stub.AbstractStub { + private AssetServiceStub(io.grpc.Channel channel) { + super(channel); + } + + private AssetServiceStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected AssetServiceStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new AssetServiceStub(channel, callOptions); + } + + /** + *
+     * Exports assets with time and resource types to a given Google Cloud Storage
+     * location. The output format is newline-delimited JSON.
+     * This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing users
+     * to keep track of the export.
+     * 
+ */ + public void exportAssets(com.google.cloud.asset.v1beta1.ExportAssetsRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(getExportAssetsMethodHelper(), getCallOptions()), request, responseObserver); + } + + /** + *
+     * Batch gets assets update history that overlaps a time window.
+     * For RESOURCE content, this API outputs history with asset in both
+     * non-delete or deleted status.
+     * For IAM_POLICY content, this API only outputs history when asset and its
+     * attached IAM POLICY both exist. So there may be gaps in the output history.
+     * 
+ */ + public void batchGetAssetsHistory(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest request, + io.grpc.stub.StreamObserver responseObserver) { + asyncUnaryCall( + getChannel().newCall(getBatchGetAssetsHistoryMethodHelper(), getCallOptions()), request, responseObserver); + } + } + + /** + *
+   * Asset service definition.
+   * 
+ */ + public static final class AssetServiceBlockingStub extends io.grpc.stub.AbstractStub { + private AssetServiceBlockingStub(io.grpc.Channel channel) { + super(channel); + } + + private AssetServiceBlockingStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected AssetServiceBlockingStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new AssetServiceBlockingStub(channel, callOptions); + } + + /** + *
+     * Exports assets with time and resource types to a given Google Cloud Storage
+     * location. The output format is newline-delimited JSON.
+     * This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing users
+     * to keep track of the export.
+     * 
+ */ + public com.google.longrunning.Operation exportAssets(com.google.cloud.asset.v1beta1.ExportAssetsRequest request) { + return blockingUnaryCall( + getChannel(), getExportAssetsMethodHelper(), getCallOptions(), request); + } + + /** + *
+     * Batch gets assets update history that overlaps a time window.
+     * For RESOURCE content, this API outputs history with asset in both
+     * non-delete or deleted status.
+     * For IAM_POLICY content, this API only outputs history when asset and its
+     * attached IAM POLICY both exist. So there may be gaps in the output history.
+     * 
+ */ + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse batchGetAssetsHistory(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest request) { + return blockingUnaryCall( + getChannel(), getBatchGetAssetsHistoryMethodHelper(), getCallOptions(), request); + } + } + + /** + *
+   * Asset service definition.
+   * 
+ */ + public static final class AssetServiceFutureStub extends io.grpc.stub.AbstractStub { + private AssetServiceFutureStub(io.grpc.Channel channel) { + super(channel); + } + + private AssetServiceFutureStub(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected AssetServiceFutureStub build(io.grpc.Channel channel, + io.grpc.CallOptions callOptions) { + return new AssetServiceFutureStub(channel, callOptions); + } + + /** + *
+     * Exports assets with time and resource types to a given Google Cloud Storage
+     * location. The output format is newline-delimited JSON.
+     * This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing users
+     * to keep track of the export.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture exportAssets( + com.google.cloud.asset.v1beta1.ExportAssetsRequest request) { + return futureUnaryCall( + getChannel().newCall(getExportAssetsMethodHelper(), getCallOptions()), request); + } + + /** + *
+     * Batch gets assets update history that overlaps a time window.
+     * For RESOURCE content, this API outputs history with asset in both
+     * non-delete or deleted status.
+     * For IAM_POLICY content, this API only outputs history when asset and its
+     * attached IAM POLICY both exist. So there may be gaps in the output history.
+     * 
+ */ + public com.google.common.util.concurrent.ListenableFuture batchGetAssetsHistory( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest request) { + return futureUnaryCall( + getChannel().newCall(getBatchGetAssetsHistoryMethodHelper(), getCallOptions()), request); + } + } + + private static final int METHODID_EXPORT_ASSETS = 0; + private static final int METHODID_BATCH_GET_ASSETS_HISTORY = 1; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final AssetServiceImplBase serviceImpl; + private final int methodId; + + MethodHandlers(AssetServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_EXPORT_ASSETS: + serviceImpl.exportAssets((com.google.cloud.asset.v1beta1.ExportAssetsRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_BATCH_GET_ASSETS_HISTORY: + serviceImpl.batchGetAssetsHistory((com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static abstract class AssetServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + AssetServiceBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("AssetService"); + } + } + + private static final class AssetServiceFileDescriptorSupplier + extends AssetServiceBaseDescriptorSupplier { + AssetServiceFileDescriptorSupplier() {} + } + + private static final class AssetServiceMethodDescriptorSupplier + extends AssetServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + AssetServiceMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (AssetServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new AssetServiceFileDescriptorSupplier()) + .addMethod(getExportAssetsMethodHelper()) + .addMethod(getBatchGetAssetsHistoryMethodHelper()) + .build(); + } + } + } + return result; + } +} diff --git a/google-api-grpc/grpc-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerGrpc.java b/google-api-grpc/grpc-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerGrpc.java index 094ea7749aab..fc0a40c3d9d5 100644 --- a/google-api-grpc/grpc-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerGrpc.java +++ b/google-api-grpc/grpc-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerGrpc.java @@ -605,11 +605,11 @@ public void deleteSession(com.google.spanner.v1.DeleteSessionRequest request, /** *
-     * Executes an SQL query, returning all rows in a single reply. This
+     * Executes an SQL statement, returning all results in a single reply. This
      * method cannot be used to return a result set larger than 10 MiB;
      * if the query yields more data than that, the query fails with
      * a `FAILED_PRECONDITION` error.
-     * Queries inside read-write transactions might return `ABORTED`. If
+     * Operations inside read-write transactions might return `ABORTED`. If
      * this occurs, the application should restart the transaction from
      * the beginning. See [Transaction][google.spanner.v1.Transaction] for more details.
      * Larger result sets can be fetched in streaming fashion by calling
@@ -723,7 +723,9 @@ public void rollback(com.google.spanner.v1.RollbackRequest request,
      * must be used by the PartitionQueryRequest used to create the
      * partition tokens and the ExecuteSqlRequests that use the partition tokens.
      * Partition tokens become invalid when the session used to create them
-     * is deleted or begins a new transaction.
+     * is deleted, is idle for too long, begins a new transaction, or becomes too
+     * old.  When any of these happen, it is not possible to resume the query, and
+     * the whole operation must be restarted from the beginning.
      * 
*/ public void partitionQuery(com.google.spanner.v1.PartitionQueryRequest request, @@ -738,9 +740,13 @@ public void partitionQuery(com.google.spanner.v1.PartitionQueryRequest request, * by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read * result to read. The same session and read-only transaction must be used by * the PartitionReadRequest used to create the partition tokens and the - * ReadRequests that use the partition tokens. + * ReadRequests that use the partition tokens. There are no ordering + * guarantees on rows returned among the returned partition tokens, or even + * within each individual StreamingRead call issued with a partition_token. * Partition tokens become invalid when the session used to create them - * is deleted or begins a new transaction. + * is deleted, is idle for too long, begins a new transaction, or becomes too + * old. When any of these happen, it is not possible to resume the read, and + * the whole operation must be restarted from the beginning. * */ public void partitionRead(com.google.spanner.v1.PartitionReadRequest request, @@ -931,11 +937,11 @@ public void deleteSession(com.google.spanner.v1.DeleteSessionRequest request, /** *
-     * Executes an SQL query, returning all rows in a single reply. This
+     * Executes an SQL statement, returning all results in a single reply. This
      * method cannot be used to return a result set larger than 10 MiB;
      * if the query yields more data than that, the query fails with
      * a `FAILED_PRECONDITION` error.
-     * Queries inside read-write transactions might return `ABORTED`. If
+     * Operations inside read-write transactions might return `ABORTED`. If
      * this occurs, the application should restart the transaction from
      * the beginning. See [Transaction][google.spanner.v1.Transaction] for more details.
      * Larger result sets can be fetched in streaming fashion by calling
@@ -1056,7 +1062,9 @@ public void rollback(com.google.spanner.v1.RollbackRequest request,
      * must be used by the PartitionQueryRequest used to create the
      * partition tokens and the ExecuteSqlRequests that use the partition tokens.
      * Partition tokens become invalid when the session used to create them
-     * is deleted or begins a new transaction.
+     * is deleted, is idle for too long, begins a new transaction, or becomes too
+     * old.  When any of these happen, it is not possible to resume the query, and
+     * the whole operation must be restarted from the beginning.
      * 
*/ public void partitionQuery(com.google.spanner.v1.PartitionQueryRequest request, @@ -1072,9 +1080,13 @@ public void partitionQuery(com.google.spanner.v1.PartitionQueryRequest request, * by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read * result to read. The same session and read-only transaction must be used by * the PartitionReadRequest used to create the partition tokens and the - * ReadRequests that use the partition tokens. + * ReadRequests that use the partition tokens. There are no ordering + * guarantees on rows returned among the returned partition tokens, or even + * within each individual StreamingRead call issued with a partition_token. * Partition tokens become invalid when the session used to create them - * is deleted or begins a new transaction. + * is deleted, is idle for too long, begins a new transaction, or becomes too + * old. When any of these happen, it is not possible to resume the read, and + * the whole operation must be restarted from the beginning. * */ public void partitionRead(com.google.spanner.v1.PartitionReadRequest request, @@ -1166,11 +1178,11 @@ public com.google.protobuf.Empty deleteSession(com.google.spanner.v1.DeleteSessi /** *
-     * Executes an SQL query, returning all rows in a single reply. This
+     * Executes an SQL statement, returning all results in a single reply. This
      * method cannot be used to return a result set larger than 10 MiB;
      * if the query yields more data than that, the query fails with
      * a `FAILED_PRECONDITION` error.
-     * Queries inside read-write transactions might return `ABORTED`. If
+     * Operations inside read-write transactions might return `ABORTED`. If
      * this occurs, the application should restart the transaction from
      * the beginning. See [Transaction][google.spanner.v1.Transaction] for more details.
      * Larger result sets can be fetched in streaming fashion by calling
@@ -1286,7 +1298,9 @@ public com.google.protobuf.Empty rollback(com.google.spanner.v1.RollbackRequest
      * must be used by the PartitionQueryRequest used to create the
      * partition tokens and the ExecuteSqlRequests that use the partition tokens.
      * Partition tokens become invalid when the session used to create them
-     * is deleted or begins a new transaction.
+     * is deleted, is idle for too long, begins a new transaction, or becomes too
+     * old.  When any of these happen, it is not possible to resume the query, and
+     * the whole operation must be restarted from the beginning.
      * 
*/ public com.google.spanner.v1.PartitionResponse partitionQuery(com.google.spanner.v1.PartitionQueryRequest request) { @@ -1301,9 +1315,13 @@ public com.google.spanner.v1.PartitionResponse partitionQuery(com.google.spanner * by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read * result to read. The same session and read-only transaction must be used by * the PartitionReadRequest used to create the partition tokens and the - * ReadRequests that use the partition tokens. + * ReadRequests that use the partition tokens. There are no ordering + * guarantees on rows returned among the returned partition tokens, or even + * within each individual StreamingRead call issued with a partition_token. * Partition tokens become invalid when the session used to create them - * is deleted or begins a new transaction. + * is deleted, is idle for too long, begins a new transaction, or becomes too + * old. When any of these happen, it is not possible to resume the read, and + * the whole operation must be restarted from the beginning. * */ public com.google.spanner.v1.PartitionResponse partitionRead(com.google.spanner.v1.PartitionReadRequest request) { @@ -1398,11 +1416,11 @@ public com.google.common.util.concurrent.ListenableFuture - * Executes an SQL query, returning all rows in a single reply. This + * Executes an SQL statement, returning all results in a single reply. This * method cannot be used to return a result set larger than 10 MiB; * if the query yields more data than that, the query fails with * a `FAILED_PRECONDITION` error. - * Queries inside read-write transactions might return `ABORTED`. If + * Operations inside read-write transactions might return `ABORTED`. If * this occurs, the application should restart the transaction from * the beginning. See [Transaction][google.spanner.v1.Transaction] for more details. * Larger result sets can be fetched in streaming fashion by calling @@ -1493,7 +1511,9 @@ public com.google.common.util.concurrent.ListenableFuture */ public com.google.common.util.concurrent.ListenableFuture partitionQuery( @@ -1509,9 +1529,13 @@ public com.google.common.util.concurrent.ListenableFuture */ public com.google.common.util.concurrent.ListenableFuture partitionRead( diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/Asset.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/Asset.java new file mode 100644 index 000000000000..187869b9274f --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/Asset.java @@ -0,0 +1,1225 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Cloud asset. This include all Google Cloud Platform resources, as well as
+ * IAM policies and other non-GCP assets.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.Asset} + */ +public final class Asset extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.Asset) + AssetOrBuilder { +private static final long serialVersionUID = 0L; + // Use Asset.newBuilder() to construct. + private Asset(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Asset() { + name_ = ""; + assetType_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Asset( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + assetType_ = s; + break; + } + case 26: { + com.google.cloud.asset.v1beta1.Resource.Builder subBuilder = null; + if (resource_ != null) { + subBuilder = resource_.toBuilder(); + } + resource_ = input.readMessage(com.google.cloud.asset.v1beta1.Resource.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(resource_); + resource_ = subBuilder.buildPartial(); + } + + break; + } + case 34: { + com.google.iam.v1.Policy.Builder subBuilder = null; + if (iamPolicy_ != null) { + subBuilder = iamPolicy_.toBuilder(); + } + iamPolicy_ = input.readMessage(com.google.iam.v1.Policy.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(iamPolicy_); + iamPolicy_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Asset_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Asset_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.Asset.class, com.google.cloud.asset.v1beta1.Asset.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + private volatile java.lang.Object name_; + /** + *
+   * The full name of the asset. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * 
+ * + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + 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(); + name_ = s; + return s; + } + } + /** + *
+   * The full name of the asset. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * 
+ * + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ASSET_TYPE_FIELD_NUMBER = 2; + private volatile java.lang.Object assetType_; + /** + *
+   * Type of the asset. Example: "google.compute.disk".
+   * 
+ * + * string asset_type = 2; + */ + public java.lang.String getAssetType() { + java.lang.Object ref = assetType_; + 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(); + assetType_ = s; + return s; + } + } + /** + *
+   * Type of the asset. Example: "google.compute.disk".
+   * 
+ * + * string asset_type = 2; + */ + public com.google.protobuf.ByteString + getAssetTypeBytes() { + java.lang.Object ref = assetType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + assetType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_FIELD_NUMBER = 3; + private com.google.cloud.asset.v1beta1.Resource resource_; + /** + *
+   * Representation of the resource.
+   * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public boolean hasResource() { + return resource_ != null; + } + /** + *
+   * Representation of the resource.
+   * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public com.google.cloud.asset.v1beta1.Resource getResource() { + return resource_ == null ? com.google.cloud.asset.v1beta1.Resource.getDefaultInstance() : resource_; + } + /** + *
+   * Representation of the resource.
+   * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public com.google.cloud.asset.v1beta1.ResourceOrBuilder getResourceOrBuilder() { + return getResource(); + } + + public static final int IAM_POLICY_FIELD_NUMBER = 4; + private com.google.iam.v1.Policy iamPolicy_; + /** + *
+   * Representation of the actual IAM policy set on a cloud resource. For each
+   * resource, there must be at most one IAM policy set on it.
+   * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public boolean hasIamPolicy() { + return iamPolicy_ != null; + } + /** + *
+   * Representation of the actual IAM policy set on a cloud resource. For each
+   * resource, there must be at most one IAM policy set on it.
+   * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public com.google.iam.v1.Policy getIamPolicy() { + return iamPolicy_ == null ? com.google.iam.v1.Policy.getDefaultInstance() : iamPolicy_; + } + /** + *
+   * Representation of the actual IAM policy set on a cloud resource. For each
+   * resource, there must be at most one IAM policy set on it.
+   * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public com.google.iam.v1.PolicyOrBuilder getIamPolicyOrBuilder() { + return getIamPolicy(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (!getAssetTypeBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, assetType_); + } + if (resource_ != null) { + output.writeMessage(3, getResource()); + } + if (iamPolicy_ != null) { + output.writeMessage(4, getIamPolicy()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (!getAssetTypeBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, assetType_); + } + if (resource_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getResource()); + } + if (iamPolicy_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getIamPolicy()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.Asset)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.Asset other = (com.google.cloud.asset.v1beta1.Asset) obj; + + boolean result = true; + result = result && getName() + .equals(other.getName()); + result = result && getAssetType() + .equals(other.getAssetType()); + result = result && (hasResource() == other.hasResource()); + if (hasResource()) { + result = result && getResource() + .equals(other.getResource()); + } + result = result && (hasIamPolicy() == other.hasIamPolicy()); + if (hasIamPolicy()) { + result = result && getIamPolicy() + .equals(other.getIamPolicy()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + ASSET_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getAssetType().hashCode(); + if (hasResource()) { + hash = (37 * hash) + RESOURCE_FIELD_NUMBER; + hash = (53 * hash) + getResource().hashCode(); + } + if (hasIamPolicy()) { + hash = (37 * hash) + IAM_POLICY_FIELD_NUMBER; + hash = (53 * hash) + getIamPolicy().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Asset parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.Asset parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.Asset parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.Asset prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Cloud asset. This include all Google Cloud Platform resources, as well as
+   * IAM policies and other non-GCP assets.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.Asset} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.Asset) + com.google.cloud.asset.v1beta1.AssetOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Asset_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Asset_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.Asset.class, com.google.cloud.asset.v1beta1.Asset.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.Asset.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + name_ = ""; + + assetType_ = ""; + + if (resourceBuilder_ == null) { + resource_ = null; + } else { + resource_ = null; + resourceBuilder_ = null; + } + if (iamPolicyBuilder_ == null) { + iamPolicy_ = null; + } else { + iamPolicy_ = null; + iamPolicyBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Asset_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Asset getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.Asset.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Asset build() { + com.google.cloud.asset.v1beta1.Asset result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Asset buildPartial() { + com.google.cloud.asset.v1beta1.Asset result = new com.google.cloud.asset.v1beta1.Asset(this); + result.name_ = name_; + result.assetType_ = assetType_; + if (resourceBuilder_ == null) { + result.resource_ = resource_; + } else { + result.resource_ = resourceBuilder_.build(); + } + if (iamPolicyBuilder_ == null) { + result.iamPolicy_ = iamPolicy_; + } else { + result.iamPolicy_ = iamPolicyBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.Asset) { + return mergeFrom((com.google.cloud.asset.v1beta1.Asset)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.Asset other) { + if (other == com.google.cloud.asset.v1beta1.Asset.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + if (!other.getAssetType().isEmpty()) { + assetType_ = other.assetType_; + onChanged(); + } + if (other.hasResource()) { + mergeResource(other.getResource()); + } + if (other.hasIamPolicy()) { + mergeIamPolicy(other.getIamPolicy()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.Asset parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.Asset) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object name_ = ""; + /** + *
+     * The full name of the asset. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * 
+ * + * string name = 1; + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The full name of the asset. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * 
+ * + * string name = 1; + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The full name of the asset. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * 
+ * + * string name = 1; + */ + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; + } + /** + *
+     * The full name of the asset. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * 
+ * + * string name = 1; + */ + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); + return this; + } + /** + *
+     * The full name of the asset. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * 
+ * + * string name = 1; + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); + return this; + } + + private java.lang.Object assetType_ = ""; + /** + *
+     * Type of the asset. Example: "google.compute.disk".
+     * 
+ * + * string asset_type = 2; + */ + public java.lang.String getAssetType() { + java.lang.Object ref = assetType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + assetType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Type of the asset. Example: "google.compute.disk".
+     * 
+ * + * string asset_type = 2; + */ + public com.google.protobuf.ByteString + getAssetTypeBytes() { + java.lang.Object ref = assetType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + assetType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Type of the asset. Example: "google.compute.disk".
+     * 
+ * + * string asset_type = 2; + */ + public Builder setAssetType( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + assetType_ = value; + onChanged(); + return this; + } + /** + *
+     * Type of the asset. Example: "google.compute.disk".
+     * 
+ * + * string asset_type = 2; + */ + public Builder clearAssetType() { + + assetType_ = getDefaultInstance().getAssetType(); + onChanged(); + return this; + } + /** + *
+     * Type of the asset. Example: "google.compute.disk".
+     * 
+ * + * string asset_type = 2; + */ + public Builder setAssetTypeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + assetType_ = value; + onChanged(); + return this; + } + + private com.google.cloud.asset.v1beta1.Resource resource_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.Resource, com.google.cloud.asset.v1beta1.Resource.Builder, com.google.cloud.asset.v1beta1.ResourceOrBuilder> resourceBuilder_; + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public boolean hasResource() { + return resourceBuilder_ != null || resource_ != null; + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public com.google.cloud.asset.v1beta1.Resource getResource() { + if (resourceBuilder_ == null) { + return resource_ == null ? com.google.cloud.asset.v1beta1.Resource.getDefaultInstance() : resource_; + } else { + return resourceBuilder_.getMessage(); + } + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public Builder setResource(com.google.cloud.asset.v1beta1.Resource value) { + if (resourceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + resource_ = value; + onChanged(); + } else { + resourceBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public Builder setResource( + com.google.cloud.asset.v1beta1.Resource.Builder builderForValue) { + if (resourceBuilder_ == null) { + resource_ = builderForValue.build(); + onChanged(); + } else { + resourceBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public Builder mergeResource(com.google.cloud.asset.v1beta1.Resource value) { + if (resourceBuilder_ == null) { + if (resource_ != null) { + resource_ = + com.google.cloud.asset.v1beta1.Resource.newBuilder(resource_).mergeFrom(value).buildPartial(); + } else { + resource_ = value; + } + onChanged(); + } else { + resourceBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public Builder clearResource() { + if (resourceBuilder_ == null) { + resource_ = null; + onChanged(); + } else { + resource_ = null; + resourceBuilder_ = null; + } + + return this; + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public com.google.cloud.asset.v1beta1.Resource.Builder getResourceBuilder() { + + onChanged(); + return getResourceFieldBuilder().getBuilder(); + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + public com.google.cloud.asset.v1beta1.ResourceOrBuilder getResourceOrBuilder() { + if (resourceBuilder_ != null) { + return resourceBuilder_.getMessageOrBuilder(); + } else { + return resource_ == null ? + com.google.cloud.asset.v1beta1.Resource.getDefaultInstance() : resource_; + } + } + /** + *
+     * Representation of the resource.
+     * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.Resource, com.google.cloud.asset.v1beta1.Resource.Builder, com.google.cloud.asset.v1beta1.ResourceOrBuilder> + getResourceFieldBuilder() { + if (resourceBuilder_ == null) { + resourceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.Resource, com.google.cloud.asset.v1beta1.Resource.Builder, com.google.cloud.asset.v1beta1.ResourceOrBuilder>( + getResource(), + getParentForChildren(), + isClean()); + resource_ = null; + } + return resourceBuilder_; + } + + private com.google.iam.v1.Policy iamPolicy_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.iam.v1.Policy, com.google.iam.v1.Policy.Builder, com.google.iam.v1.PolicyOrBuilder> iamPolicyBuilder_; + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public boolean hasIamPolicy() { + return iamPolicyBuilder_ != null || iamPolicy_ != null; + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public com.google.iam.v1.Policy getIamPolicy() { + if (iamPolicyBuilder_ == null) { + return iamPolicy_ == null ? com.google.iam.v1.Policy.getDefaultInstance() : iamPolicy_; + } else { + return iamPolicyBuilder_.getMessage(); + } + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public Builder setIamPolicy(com.google.iam.v1.Policy value) { + if (iamPolicyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + iamPolicy_ = value; + onChanged(); + } else { + iamPolicyBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public Builder setIamPolicy( + com.google.iam.v1.Policy.Builder builderForValue) { + if (iamPolicyBuilder_ == null) { + iamPolicy_ = builderForValue.build(); + onChanged(); + } else { + iamPolicyBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public Builder mergeIamPolicy(com.google.iam.v1.Policy value) { + if (iamPolicyBuilder_ == null) { + if (iamPolicy_ != null) { + iamPolicy_ = + com.google.iam.v1.Policy.newBuilder(iamPolicy_).mergeFrom(value).buildPartial(); + } else { + iamPolicy_ = value; + } + onChanged(); + } else { + iamPolicyBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public Builder clearIamPolicy() { + if (iamPolicyBuilder_ == null) { + iamPolicy_ = null; + onChanged(); + } else { + iamPolicy_ = null; + iamPolicyBuilder_ = null; + } + + return this; + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public com.google.iam.v1.Policy.Builder getIamPolicyBuilder() { + + onChanged(); + return getIamPolicyFieldBuilder().getBuilder(); + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + public com.google.iam.v1.PolicyOrBuilder getIamPolicyOrBuilder() { + if (iamPolicyBuilder_ != null) { + return iamPolicyBuilder_.getMessageOrBuilder(); + } else { + return iamPolicy_ == null ? + com.google.iam.v1.Policy.getDefaultInstance() : iamPolicy_; + } + } + /** + *
+     * Representation of the actual IAM policy set on a cloud resource. For each
+     * resource, there must be at most one IAM policy set on it.
+     * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.iam.v1.Policy, com.google.iam.v1.Policy.Builder, com.google.iam.v1.PolicyOrBuilder> + getIamPolicyFieldBuilder() { + if (iamPolicyBuilder_ == null) { + iamPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.iam.v1.Policy, com.google.iam.v1.Policy.Builder, com.google.iam.v1.PolicyOrBuilder>( + getIamPolicy(), + getParentForChildren(), + isClean()); + iamPolicy_ = null; + } + return iamPolicyBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.Asset) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.Asset) + private static final com.google.cloud.asset.v1beta1.Asset DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.Asset(); + } + + public static com.google.cloud.asset.v1beta1.Asset getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Asset parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Asset(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Asset getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetOrBuilder.java new file mode 100644 index 000000000000..c3a54c03daea --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetOrBuilder.java @@ -0,0 +1,104 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +public interface AssetOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.Asset) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The full name of the asset. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * 
+ * + * string name = 1; + */ + java.lang.String getName(); + /** + *
+   * The full name of the asset. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * 
+ * + * string name = 1; + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + *
+   * Type of the asset. Example: "google.compute.disk".
+   * 
+ * + * string asset_type = 2; + */ + java.lang.String getAssetType(); + /** + *
+   * Type of the asset. Example: "google.compute.disk".
+   * 
+ * + * string asset_type = 2; + */ + com.google.protobuf.ByteString + getAssetTypeBytes(); + + /** + *
+   * Representation of the resource.
+   * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + boolean hasResource(); + /** + *
+   * Representation of the resource.
+   * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + com.google.cloud.asset.v1beta1.Resource getResource(); + /** + *
+   * Representation of the resource.
+   * 
+ * + * .google.cloud.asset.v1beta1.Resource resource = 3; + */ + com.google.cloud.asset.v1beta1.ResourceOrBuilder getResourceOrBuilder(); + + /** + *
+   * Representation of the actual IAM policy set on a cloud resource. For each
+   * resource, there must be at most one IAM policy set on it.
+   * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + boolean hasIamPolicy(); + /** + *
+   * Representation of the actual IAM policy set on a cloud resource. For each
+   * resource, there must be at most one IAM policy set on it.
+   * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + com.google.iam.v1.Policy getIamPolicy(); + /** + *
+   * Representation of the actual IAM policy set on a cloud resource. For each
+   * resource, there must be at most one IAM policy set on it.
+   * 
+ * + * .google.iam.v1.Policy iam_policy = 4; + */ + com.google.iam.v1.PolicyOrBuilder getIamPolicyOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetProto.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetProto.java new file mode 100644 index 000000000000..cb216ad144aa --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetProto.java @@ -0,0 +1,120 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +public final class AssetProto { + private AssetProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_TemporalAsset_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_TemporalAsset_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_TimeWindow_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_TimeWindow_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_Asset_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_Asset_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_Resource_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_Resource_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\'google/cloud/asset/v1beta1/assets.prot" + + "o\022\032google.cloud.asset.v1beta1\032\034google/ap" + + "i/annotations.proto\032\032google/iam/v1/polic" + + "y.proto\032\031google/protobuf/any.proto\032\034goog" + + "le/protobuf/struct.proto\032\037google/protobu" + + "f/timestamp.proto\"\212\001\n\rTemporalAsset\0226\n\006w" + + "indow\030\001 \001(\0132&.google.cloud.asset.v1beta1" + + ".TimeWindow\022\017\n\007deleted\030\002 \001(\010\0220\n\005asset\030\003 " + + "\001(\0132!.google.cloud.asset.v1beta1.Asset\"j" + + "\n\nTimeWindow\022.\n\nstart_time\030\001 \001(\0132\032.googl" + + "e.protobuf.Timestamp\022,\n\010end_time\030\002 \001(\0132\032" + + ".google.protobuf.Timestamp\"\214\001\n\005Asset\022\014\n\004" + + "name\030\001 \001(\t\022\022\n\nasset_type\030\002 \001(\t\0226\n\010resour" + + "ce\030\003 \001(\0132$.google.cloud.asset.v1beta1.Re" + + "source\022)\n\niam_policy\030\004 \001(\0132\025.google.iam." + + "v1.Policy\"\240\001\n\010Resource\022\017\n\007version\030\001 \001(\t\022" + + "\036\n\026discovery_document_uri\030\002 \001(\t\022\026\n\016disco" + + "very_name\030\003 \001(\t\022\024\n\014resource_url\030\004 \001(\t\022\016\n" + + "\006parent\030\005 \001(\t\022%\n\004data\030\006 \001(\0132\027.google.pro" + + "tobuf.StructB\251\001\n\036com.google.cloud.asset." + + "v1beta1B\nAssetProtoP\001Z?google.golang.org" + + "/genproto/googleapis/cloud/asset/v1beta1" + + ";asset\252\002\032Google.Cloud.Asset.V1Beta1\312\002\032Go" + + "ogle\\Cloud\\Asset\\V1beta1b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.api.AnnotationsProto.getDescriptor(), + com.google.iam.v1.PolicyProto.getDescriptor(), + com.google.protobuf.AnyProto.getDescriptor(), + com.google.protobuf.StructProto.getDescriptor(), + com.google.protobuf.TimestampProto.getDescriptor(), + }, assigner); + internal_static_google_cloud_asset_v1beta1_TemporalAsset_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_cloud_asset_v1beta1_TemporalAsset_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_TemporalAsset_descriptor, + new java.lang.String[] { "Window", "Deleted", "Asset", }); + internal_static_google_cloud_asset_v1beta1_TimeWindow_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_google_cloud_asset_v1beta1_TimeWindow_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_TimeWindow_descriptor, + new java.lang.String[] { "StartTime", "EndTime", }); + internal_static_google_cloud_asset_v1beta1_Asset_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_google_cloud_asset_v1beta1_Asset_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_Asset_descriptor, + new java.lang.String[] { "Name", "AssetType", "Resource", "IamPolicy", }); + internal_static_google_cloud_asset_v1beta1_Resource_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_google_cloud_asset_v1beta1_Resource_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_Resource_descriptor, + new java.lang.String[] { "Version", "DiscoveryDocumentUri", "DiscoveryName", "ResourceUrl", "Parent", "Data", }); + com.google.api.AnnotationsProto.getDescriptor(); + com.google.iam.v1.PolicyProto.getDescriptor(); + com.google.protobuf.AnyProto.getDescriptor(); + com.google.protobuf.StructProto.getDescriptor(); + com.google.protobuf.TimestampProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceProto.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceProto.java new file mode 100644 index 000000000000..b340f65a2f97 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceProto.java @@ -0,0 +1,165 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public final class AssetServiceProto { + private AssetServiceProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_OutputConfig_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_OutputConfig_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_asset_v1beta1_GcsDestination_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_asset_v1beta1_GcsDestination_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n.google/cloud/asset/v1beta1/asset_servi" + + "ce.proto\022\032google.cloud.asset.v1beta1\032\034go" + + "ogle/api/annotations.proto\032\'google/cloud" + + "/asset/v1beta1/assets.proto\032#google/long" + + "running/operations.proto\032\037google/protobu" + + "f/timestamp.proto\"\351\001\n\023ExportAssetsReques" + + "t\022\016\n\006parent\030\001 \001(\t\022-\n\tread_time\030\002 \001(\0132\032.g" + + "oogle.protobuf.Timestamp\022\023\n\013asset_types\030" + + "\003 \003(\t\022=\n\014content_type\030\004 \001(\0162\'.google.clo" + + "ud.asset.v1beta1.ContentType\022?\n\routput_c" + + "onfig\030\005 \001(\0132(.google.cloud.asset.v1beta1" + + ".OutputConfig\"\206\001\n\024ExportAssetsResponse\022-" + + "\n\tread_time\030\001 \001(\0132\032.google.protobuf.Time" + + "stamp\022?\n\routput_config\030\002 \001(\0132(.google.cl" + + "oud.asset.v1beta1.OutputConfig\"\304\001\n\034Batch" + + "GetAssetsHistoryRequest\022\016\n\006parent\030\001 \001(\t\022" + + "\023\n\013asset_names\030\002 \003(\t\022=\n\014content_type\030\003 \001" + + "(\0162\'.google.cloud.asset.v1beta1.ContentT" + + "ype\022@\n\020read_time_window\030\004 \001(\0132&.google.c" + + "loud.asset.v1beta1.TimeWindow\"Z\n\035BatchGe" + + "tAssetsHistoryResponse\0229\n\006assets\030\001 \003(\0132)" + + ".google.cloud.asset.v1beta1.TemporalAsse" + + "t\"d\n\014OutputConfig\022E\n\017gcs_destination\030\001 \001" + + "(\0132*.google.cloud.asset.v1beta1.GcsDesti" + + "nationH\000B\r\n\013destination\"\035\n\016GcsDestinatio" + + "n\022\013\n\003uri\030\001 \001(\t*I\n\013ContentType\022\034\n\030CONTENT" + + "_TYPE_UNSPECIFIED\020\000\022\014\n\010RESOURCE\020\001\022\016\n\nIAM" + + "_POLICY\020\0022\337\003\n\014AssetService\022\311\001\n\014ExportAss" + + "ets\022/.google.cloud.asset.v1beta1.ExportA" + + "ssetsRequest\032\035.google.longrunning.Operat" + + "ion\"i\202\323\344\223\002c\")/v1beta1/{parent=projects/*" + + "}:exportAssets:\001*Z3\"./v1beta1/{parent=or" + + "ganizations/*}:exportAssets:\001*\022\202\002\n\025Batch" + + "GetAssetsHistory\0228.google.cloud.asset.v1" + + "beta1.BatchGetAssetsHistoryRequest\0329.goo" + + "gle.cloud.asset.v1beta1.BatchGetAssetsHi" + + "storyResponse\"t\202\323\344\223\002n\0222/v1beta1/{parent=" + + "projects/*}:batchGetAssetsHistoryZ8\0226/v1" + + "beta1/{parent=organizations/*}:batchGetA" + + "ssetHistoryB\260\001\n\036com.google.cloud.asset.v" + + "1beta1B\021AssetServiceProtoP\001Z?google.gola" + + "ng.org/genproto/googleapis/cloud/asset/v" + + "1beta1;asset\252\002\032Google.Cloud.Asset.V1Beta" + + "1\312\002\032Google\\Cloud\\Asset\\V1beta1b\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.api.AnnotationsProto.getDescriptor(), + com.google.cloud.asset.v1beta1.AssetProto.getDescriptor(), + com.google.longrunning.OperationsProto.getDescriptor(), + com.google.protobuf.TimestampProto.getDescriptor(), + }, assigner); + internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_descriptor, + new java.lang.String[] { "Parent", "ReadTime", "AssetTypes", "ContentType", "OutputConfig", }); + internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_descriptor, + new java.lang.String[] { "ReadTime", "OutputConfig", }); + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_descriptor, + new java.lang.String[] { "Parent", "AssetNames", "ContentType", "ReadTimeWindow", }); + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_descriptor, + new java.lang.String[] { "Assets", }); + internal_static_google_cloud_asset_v1beta1_OutputConfig_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_google_cloud_asset_v1beta1_OutputConfig_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_OutputConfig_descriptor, + new java.lang.String[] { "GcsDestination", "Destination", }); + internal_static_google_cloud_asset_v1beta1_GcsDestination_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_google_cloud_asset_v1beta1_GcsDestination_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_asset_v1beta1_GcsDestination_descriptor, + new java.lang.String[] { "Uri", }); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.api.AnnotationsProto.http); + com.google.protobuf.Descriptors.FileDescriptor + .internalUpdateFileDescriptor(descriptor, registry); + com.google.api.AnnotationsProto.getDescriptor(); + com.google.cloud.asset.v1beta1.AssetProto.getDescriptor(); + com.google.longrunning.OperationsProto.getDescriptor(); + com.google.protobuf.TimestampProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryRequest.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryRequest.java new file mode 100644 index 000000000000..6f00c7eb3a9a --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryRequest.java @@ -0,0 +1,1249 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Batch get assets history request.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest} + */ +public final class BatchGetAssetsHistoryRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) + BatchGetAssetsHistoryRequestOrBuilder { +private static final long serialVersionUID = 0L; + // Use BatchGetAssetsHistoryRequest.newBuilder() to construct. + private BatchGetAssetsHistoryRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private BatchGetAssetsHistoryRequest() { + parent_ = ""; + assetNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; + contentType_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private BatchGetAssetsHistoryRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + parent_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + assetNames_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000002; + } + assetNames_.add(s); + break; + } + case 24: { + int rawValue = input.readEnum(); + + contentType_ = rawValue; + break; + } + case 34: { + com.google.cloud.asset.v1beta1.TimeWindow.Builder subBuilder = null; + if (readTimeWindow_ != null) { + subBuilder = readTimeWindow_.toBuilder(); + } + readTimeWindow_ = input.readMessage(com.google.cloud.asset.v1beta1.TimeWindow.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(readTimeWindow_); + readTimeWindow_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + assetNames_ = assetNames_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.class, com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.Builder.class); + } + + private int bitField0_; + public static final int PARENT_FIELD_NUMBER = 1; + private volatile java.lang.Object parent_; + /** + *
+   * Required. The relative name of the root asset. It can only be an
+   * organization number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id")"or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + 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(); + parent_ = s; + return s; + } + } + /** + *
+   * Required. The relative name of the root asset. It can only be an
+   * organization number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id")"or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + public com.google.protobuf.ByteString + getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ASSET_NAMES_FIELD_NUMBER = 2; + private com.google.protobuf.LazyStringList assetNames_; + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + public com.google.protobuf.ProtocolStringList + getAssetNamesList() { + return assetNames_; + } + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + public int getAssetNamesCount() { + return assetNames_.size(); + } + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + public java.lang.String getAssetNames(int index) { + return assetNames_.get(index); + } + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + public com.google.protobuf.ByteString + getAssetNamesBytes(int index) { + return assetNames_.getByteString(index); + } + + public static final int CONTENT_TYPE_FIELD_NUMBER = 3; + private int contentType_; + /** + *
+   * Required. The content type.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public int getContentTypeValue() { + return contentType_; + } + /** + *
+   * Required. The content type.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public com.google.cloud.asset.v1beta1.ContentType getContentType() { + @SuppressWarnings("deprecation") + com.google.cloud.asset.v1beta1.ContentType result = com.google.cloud.asset.v1beta1.ContentType.valueOf(contentType_); + return result == null ? com.google.cloud.asset.v1beta1.ContentType.UNRECOGNIZED : result; + } + + public static final int READ_TIME_WINDOW_FIELD_NUMBER = 4; + private com.google.cloud.asset.v1beta1.TimeWindow readTimeWindow_; + /** + *
+   * Required. The time window for the asset history. The start time is
+   * required. The returned results contain all temporal assets whose time
+   * window overlap with read_time_window.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public boolean hasReadTimeWindow() { + return readTimeWindow_ != null; + } + /** + *
+   * Required. The time window for the asset history. The start time is
+   * required. The returned results contain all temporal assets whose time
+   * window overlap with read_time_window.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public com.google.cloud.asset.v1beta1.TimeWindow getReadTimeWindow() { + return readTimeWindow_ == null ? com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance() : readTimeWindow_; + } + /** + *
+   * Required. The time window for the asset history. The start time is
+   * required. The returned results contain all temporal assets whose time
+   * window overlap with read_time_window.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public com.google.cloud.asset.v1beta1.TimeWindowOrBuilder getReadTimeWindowOrBuilder() { + return getReadTimeWindow(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getParentBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_); + } + for (int i = 0; i < assetNames_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, assetNames_.getRaw(i)); + } + if (contentType_ != com.google.cloud.asset.v1beta1.ContentType.CONTENT_TYPE_UNSPECIFIED.getNumber()) { + output.writeEnum(3, contentType_); + } + if (readTimeWindow_ != null) { + output.writeMessage(4, getReadTimeWindow()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getParentBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_); + } + { + int dataSize = 0; + for (int i = 0; i < assetNames_.size(); i++) { + dataSize += computeStringSizeNoTag(assetNames_.getRaw(i)); + } + size += dataSize; + size += 1 * getAssetNamesList().size(); + } + if (contentType_ != com.google.cloud.asset.v1beta1.ContentType.CONTENT_TYPE_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, contentType_); + } + if (readTimeWindow_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getReadTimeWindow()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest other = (com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) obj; + + boolean result = true; + result = result && getParent() + .equals(other.getParent()); + result = result && getAssetNamesList() + .equals(other.getAssetNamesList()); + result = result && contentType_ == other.contentType_; + result = result && (hasReadTimeWindow() == other.hasReadTimeWindow()); + if (hasReadTimeWindow()) { + result = result && getReadTimeWindow() + .equals(other.getReadTimeWindow()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PARENT_FIELD_NUMBER; + hash = (53 * hash) + getParent().hashCode(); + if (getAssetNamesCount() > 0) { + hash = (37 * hash) + ASSET_NAMES_FIELD_NUMBER; + hash = (53 * hash) + getAssetNamesList().hashCode(); + } + hash = (37 * hash) + CONTENT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + contentType_; + if (hasReadTimeWindow()) { + hash = (37 * hash) + READ_TIME_WINDOW_FIELD_NUMBER; + hash = (53 * hash) + getReadTimeWindow().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Batch get assets history request.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.class, com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + parent_ = ""; + + assetNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + contentType_ = 0; + + if (readTimeWindowBuilder_ == null) { + readTimeWindow_ = null; + } else { + readTimeWindow_ = null; + readTimeWindowBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest build() { + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest buildPartial() { + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest result = new com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.parent_ = parent_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + assetNames_ = assetNames_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.assetNames_ = assetNames_; + result.contentType_ = contentType_; + if (readTimeWindowBuilder_ == null) { + result.readTimeWindow_ = readTimeWindow_; + } else { + result.readTimeWindow_ = readTimeWindowBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) { + return mergeFrom((com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest other) { + if (other == com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest.getDefaultInstance()) return this; + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + onChanged(); + } + if (!other.assetNames_.isEmpty()) { + if (assetNames_.isEmpty()) { + assetNames_ = other.assetNames_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureAssetNamesIsMutable(); + assetNames_.addAll(other.assetNames_); + } + onChanged(); + } + if (other.contentType_ != 0) { + setContentTypeValue(other.getContentTypeValue()); + } + if (other.hasReadTimeWindow()) { + mergeReadTimeWindow(other.getReadTimeWindow()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object parent_ = ""; + /** + *
+     * Required. The relative name of the root asset. It can only be an
+     * organization number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id")"or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + parent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Required. The relative name of the root asset. It can only be an
+     * organization number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id")"or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public com.google.protobuf.ByteString + getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Required. The relative name of the root asset. It can only be an
+     * organization number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id")"or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public Builder setParent( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + parent_ = value; + onChanged(); + return this; + } + /** + *
+     * Required. The relative name of the root asset. It can only be an
+     * organization number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id")"or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public Builder clearParent() { + + parent_ = getDefaultInstance().getParent(); + onChanged(); + return this; + } + /** + *
+     * Required. The relative name of the root asset. It can only be an
+     * organization number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id")"or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public Builder setParentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + parent_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringList assetNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureAssetNamesIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + assetNames_ = new com.google.protobuf.LazyStringArrayList(assetNames_); + bitField0_ |= 0x00000002; + } + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public com.google.protobuf.ProtocolStringList + getAssetNamesList() { + return assetNames_.getUnmodifiableView(); + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public int getAssetNamesCount() { + return assetNames_.size(); + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public java.lang.String getAssetNames(int index) { + return assetNames_.get(index); + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public com.google.protobuf.ByteString + getAssetNamesBytes(int index) { + return assetNames_.getByteString(index); + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public Builder setAssetNames( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetNamesIsMutable(); + assetNames_.set(index, value); + onChanged(); + return this; + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public Builder addAssetNames( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetNamesIsMutable(); + assetNames_.add(value); + onChanged(); + return this; + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public Builder addAllAssetNames( + java.lang.Iterable values) { + ensureAssetNamesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetNames_); + onChanged(); + return this; + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public Builder clearAssetNames() { + assetNames_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+     * A list of the full names of the assets. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * Example:
+     * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+     * The request becomes a no-op if the asset name list is empty, and the max
+     * size of the asset name list is 100 in one request.
+     * 
+ * + * repeated string asset_names = 2; + */ + public Builder addAssetNamesBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureAssetNamesIsMutable(); + assetNames_.add(value); + onChanged(); + return this; + } + + private int contentType_ = 0; + /** + *
+     * Required. The content type.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public int getContentTypeValue() { + return contentType_; + } + /** + *
+     * Required. The content type.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public Builder setContentTypeValue(int value) { + contentType_ = value; + onChanged(); + return this; + } + /** + *
+     * Required. The content type.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public com.google.cloud.asset.v1beta1.ContentType getContentType() { + @SuppressWarnings("deprecation") + com.google.cloud.asset.v1beta1.ContentType result = com.google.cloud.asset.v1beta1.ContentType.valueOf(contentType_); + return result == null ? com.google.cloud.asset.v1beta1.ContentType.UNRECOGNIZED : result; + } + /** + *
+     * Required. The content type.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public Builder setContentType(com.google.cloud.asset.v1beta1.ContentType value) { + if (value == null) { + throw new NullPointerException(); + } + + contentType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * Required. The content type.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + public Builder clearContentType() { + + contentType_ = 0; + onChanged(); + return this; + } + + private com.google.cloud.asset.v1beta1.TimeWindow readTimeWindow_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.TimeWindow, com.google.cloud.asset.v1beta1.TimeWindow.Builder, com.google.cloud.asset.v1beta1.TimeWindowOrBuilder> readTimeWindowBuilder_; + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public boolean hasReadTimeWindow() { + return readTimeWindowBuilder_ != null || readTimeWindow_ != null; + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public com.google.cloud.asset.v1beta1.TimeWindow getReadTimeWindow() { + if (readTimeWindowBuilder_ == null) { + return readTimeWindow_ == null ? com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance() : readTimeWindow_; + } else { + return readTimeWindowBuilder_.getMessage(); + } + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public Builder setReadTimeWindow(com.google.cloud.asset.v1beta1.TimeWindow value) { + if (readTimeWindowBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + readTimeWindow_ = value; + onChanged(); + } else { + readTimeWindowBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public Builder setReadTimeWindow( + com.google.cloud.asset.v1beta1.TimeWindow.Builder builderForValue) { + if (readTimeWindowBuilder_ == null) { + readTimeWindow_ = builderForValue.build(); + onChanged(); + } else { + readTimeWindowBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public Builder mergeReadTimeWindow(com.google.cloud.asset.v1beta1.TimeWindow value) { + if (readTimeWindowBuilder_ == null) { + if (readTimeWindow_ != null) { + readTimeWindow_ = + com.google.cloud.asset.v1beta1.TimeWindow.newBuilder(readTimeWindow_).mergeFrom(value).buildPartial(); + } else { + readTimeWindow_ = value; + } + onChanged(); + } else { + readTimeWindowBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public Builder clearReadTimeWindow() { + if (readTimeWindowBuilder_ == null) { + readTimeWindow_ = null; + onChanged(); + } else { + readTimeWindow_ = null; + readTimeWindowBuilder_ = null; + } + + return this; + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public com.google.cloud.asset.v1beta1.TimeWindow.Builder getReadTimeWindowBuilder() { + + onChanged(); + return getReadTimeWindowFieldBuilder().getBuilder(); + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + public com.google.cloud.asset.v1beta1.TimeWindowOrBuilder getReadTimeWindowOrBuilder() { + if (readTimeWindowBuilder_ != null) { + return readTimeWindowBuilder_.getMessageOrBuilder(); + } else { + return readTimeWindow_ == null ? + com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance() : readTimeWindow_; + } + } + /** + *
+     * Required. The time window for the asset history. The start time is
+     * required. The returned results contain all temporal assets whose time
+     * window overlap with read_time_window.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.TimeWindow, com.google.cloud.asset.v1beta1.TimeWindow.Builder, com.google.cloud.asset.v1beta1.TimeWindowOrBuilder> + getReadTimeWindowFieldBuilder() { + if (readTimeWindowBuilder_ == null) { + readTimeWindowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.TimeWindow, com.google.cloud.asset.v1beta1.TimeWindow.Builder, com.google.cloud.asset.v1beta1.TimeWindowOrBuilder>( + getReadTimeWindow(), + getParentForChildren(), + isClean()); + readTimeWindow_ = null; + } + return readTimeWindowBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) + private static final com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest(); + } + + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BatchGetAssetsHistoryRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BatchGetAssetsHistoryRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryRequestOrBuilder.java new file mode 100644 index 000000000000..015ea0635afd --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryRequestOrBuilder.java @@ -0,0 +1,134 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public interface BatchGetAssetsHistoryRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * Required. The relative name of the root asset. It can only be an
+   * organization number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id")"or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + java.lang.String getParent(); + /** + *
+   * Required. The relative name of the root asset. It can only be an
+   * organization number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id")"or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + com.google.protobuf.ByteString + getParentBytes(); + + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + java.util.List + getAssetNamesList(); + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + int getAssetNamesCount(); + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + java.lang.String getAssetNames(int index); + /** + *
+   * A list of the full names of the assets. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * Example:
+   * "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1".
+   * The request becomes a no-op if the asset name list is empty, and the max
+   * size of the asset name list is 100 in one request.
+   * 
+ * + * repeated string asset_names = 2; + */ + com.google.protobuf.ByteString + getAssetNamesBytes(int index); + + /** + *
+   * Required. The content type.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + int getContentTypeValue(); + /** + *
+   * Required. The content type.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 3; + */ + com.google.cloud.asset.v1beta1.ContentType getContentType(); + + /** + *
+   * Required. The time window for the asset history. The start time is
+   * required. The returned results contain all temporal assets whose time
+   * window overlap with read_time_window.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + boolean hasReadTimeWindow(); + /** + *
+   * Required. The time window for the asset history. The start time is
+   * required. The returned results contain all temporal assets whose time
+   * window overlap with read_time_window.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + com.google.cloud.asset.v1beta1.TimeWindow getReadTimeWindow(); + /** + *
+   * Required. The time window for the asset history. The start time is
+   * required. The returned results contain all temporal assets whose time
+   * window overlap with read_time_window.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow read_time_window = 4; + */ + com.google.cloud.asset.v1beta1.TimeWindowOrBuilder getReadTimeWindowOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryResponse.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryResponse.java new file mode 100644 index 000000000000..059c23b69d5b --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryResponse.java @@ -0,0 +1,859 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Batch get assets history response.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse} + */ +public final class BatchGetAssetsHistoryResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) + BatchGetAssetsHistoryResponseOrBuilder { +private static final long serialVersionUID = 0L; + // Use BatchGetAssetsHistoryResponse.newBuilder() to construct. + private BatchGetAssetsHistoryResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private BatchGetAssetsHistoryResponse() { + assets_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private BatchGetAssetsHistoryResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + assets_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + assets_.add( + input.readMessage(com.google.cloud.asset.v1beta1.TemporalAsset.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + assets_ = java.util.Collections.unmodifiableList(assets_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.class, com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.Builder.class); + } + + public static final int ASSETS_FIELD_NUMBER = 1; + private java.util.List assets_; + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public java.util.List getAssetsList() { + return assets_; + } + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public java.util.List + getAssetsOrBuilderList() { + return assets_; + } + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public int getAssetsCount() { + return assets_.size(); + } + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAsset getAssets(int index) { + return assets_.get(index); + } + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder getAssetsOrBuilder( + int index) { + return assets_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < assets_.size(); i++) { + output.writeMessage(1, assets_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < assets_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, assets_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse other = (com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) obj; + + boolean result = true; + result = result && getAssetsList() + .equals(other.getAssetsList()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getAssetsCount() > 0) { + hash = (37 * hash) + ASSETS_FIELD_NUMBER; + hash = (53 * hash) + getAssetsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Batch get assets history response.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.class, com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getAssetsFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (assetsBuilder_ == null) { + assets_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + assetsBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_BatchGetAssetsHistoryResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse build() { + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse buildPartial() { + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse result = new com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse(this); + int from_bitField0_ = bitField0_; + if (assetsBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + assets_ = java.util.Collections.unmodifiableList(assets_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.assets_ = assets_; + } else { + result.assets_ = assetsBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) { + return mergeFrom((com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse other) { + if (other == com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse.getDefaultInstance()) return this; + if (assetsBuilder_ == null) { + if (!other.assets_.isEmpty()) { + if (assets_.isEmpty()) { + assets_ = other.assets_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureAssetsIsMutable(); + assets_.addAll(other.assets_); + } + onChanged(); + } + } else { + if (!other.assets_.isEmpty()) { + if (assetsBuilder_.isEmpty()) { + assetsBuilder_.dispose(); + assetsBuilder_ = null; + assets_ = other.assets_; + bitField0_ = (bitField0_ & ~0x00000001); + assetsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getAssetsFieldBuilder() : null; + } else { + assetsBuilder_.addAllMessages(other.assets_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.util.List assets_ = + java.util.Collections.emptyList(); + private void ensureAssetsIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + assets_ = new java.util.ArrayList(assets_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.asset.v1beta1.TemporalAsset, com.google.cloud.asset.v1beta1.TemporalAsset.Builder, com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder> assetsBuilder_; + + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public java.util.List getAssetsList() { + if (assetsBuilder_ == null) { + return java.util.Collections.unmodifiableList(assets_); + } else { + return assetsBuilder_.getMessageList(); + } + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public int getAssetsCount() { + if (assetsBuilder_ == null) { + return assets_.size(); + } else { + return assetsBuilder_.getCount(); + } + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAsset getAssets(int index) { + if (assetsBuilder_ == null) { + return assets_.get(index); + } else { + return assetsBuilder_.getMessage(index); + } + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder setAssets( + int index, com.google.cloud.asset.v1beta1.TemporalAsset value) { + if (assetsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetsIsMutable(); + assets_.set(index, value); + onChanged(); + } else { + assetsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder setAssets( + int index, com.google.cloud.asset.v1beta1.TemporalAsset.Builder builderForValue) { + if (assetsBuilder_ == null) { + ensureAssetsIsMutable(); + assets_.set(index, builderForValue.build()); + onChanged(); + } else { + assetsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder addAssets(com.google.cloud.asset.v1beta1.TemporalAsset value) { + if (assetsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetsIsMutable(); + assets_.add(value); + onChanged(); + } else { + assetsBuilder_.addMessage(value); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder addAssets( + int index, com.google.cloud.asset.v1beta1.TemporalAsset value) { + if (assetsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetsIsMutable(); + assets_.add(index, value); + onChanged(); + } else { + assetsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder addAssets( + com.google.cloud.asset.v1beta1.TemporalAsset.Builder builderForValue) { + if (assetsBuilder_ == null) { + ensureAssetsIsMutable(); + assets_.add(builderForValue.build()); + onChanged(); + } else { + assetsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder addAssets( + int index, com.google.cloud.asset.v1beta1.TemporalAsset.Builder builderForValue) { + if (assetsBuilder_ == null) { + ensureAssetsIsMutable(); + assets_.add(index, builderForValue.build()); + onChanged(); + } else { + assetsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder addAllAssets( + java.lang.Iterable values) { + if (assetsBuilder_ == null) { + ensureAssetsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assets_); + onChanged(); + } else { + assetsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder clearAssets() { + if (assetsBuilder_ == null) { + assets_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + assetsBuilder_.clear(); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public Builder removeAssets(int index) { + if (assetsBuilder_ == null) { + ensureAssetsIsMutable(); + assets_.remove(index); + onChanged(); + } else { + assetsBuilder_.remove(index); + } + return this; + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAsset.Builder getAssetsBuilder( + int index) { + return getAssetsFieldBuilder().getBuilder(index); + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder getAssetsOrBuilder( + int index) { + if (assetsBuilder_ == null) { + return assets_.get(index); } else { + return assetsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public java.util.List + getAssetsOrBuilderList() { + if (assetsBuilder_ != null) { + return assetsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(assets_); + } + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAsset.Builder addAssetsBuilder() { + return getAssetsFieldBuilder().addBuilder( + com.google.cloud.asset.v1beta1.TemporalAsset.getDefaultInstance()); + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public com.google.cloud.asset.v1beta1.TemporalAsset.Builder addAssetsBuilder( + int index) { + return getAssetsFieldBuilder().addBuilder( + index, com.google.cloud.asset.v1beta1.TemporalAsset.getDefaultInstance()); + } + /** + *
+     * A list of assets with valid time windows.
+     * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + public java.util.List + getAssetsBuilderList() { + return getAssetsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.asset.v1beta1.TemporalAsset, com.google.cloud.asset.v1beta1.TemporalAsset.Builder, com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder> + getAssetsFieldBuilder() { + if (assetsBuilder_ == null) { + assetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.cloud.asset.v1beta1.TemporalAsset, com.google.cloud.asset.v1beta1.TemporalAsset.Builder, com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder>( + assets_, + ((bitField0_ & 0x00000001) == 0x00000001), + getParentForChildren(), + isClean()); + assets_ = null; + } + return assetsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) + private static final com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse(); + } + + public static com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BatchGetAssetsHistoryResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BatchGetAssetsHistoryResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryResponseOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryResponseOrBuilder.java new file mode 100644 index 000000000000..3fa6c468b94e --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/BatchGetAssetsHistoryResponseOrBuilder.java @@ -0,0 +1,53 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public interface BatchGetAssetsHistoryResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + java.util.List + getAssetsList(); + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + com.google.cloud.asset.v1beta1.TemporalAsset getAssets(int index); + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + int getAssetsCount(); + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + java.util.List + getAssetsOrBuilderList(); + /** + *
+   * A list of assets with valid time windows.
+   * 
+ * + * repeated .google.cloud.asset.v1beta1.TemporalAsset assets = 1; + */ + com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder getAssetsOrBuilder( + int index); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ContentType.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ContentType.java new file mode 100644 index 000000000000..d3caa84afb59 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ContentType.java @@ -0,0 +1,140 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Asset content type.
+ * 
+ * + * Protobuf enum {@code google.cloud.asset.v1beta1.ContentType} + */ +public enum ContentType + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+   * Unspecified content type.
+   * 
+ * + * CONTENT_TYPE_UNSPECIFIED = 0; + */ + CONTENT_TYPE_UNSPECIFIED(0), + /** + *
+   * Resource metadata.
+   * 
+ * + * RESOURCE = 1; + */ + RESOURCE(1), + /** + *
+   * The actual IAM policy set on a resource.
+   * 
+ * + * IAM_POLICY = 2; + */ + IAM_POLICY(2), + UNRECOGNIZED(-1), + ; + + /** + *
+   * Unspecified content type.
+   * 
+ * + * CONTENT_TYPE_UNSPECIFIED = 0; + */ + public static final int CONTENT_TYPE_UNSPECIFIED_VALUE = 0; + /** + *
+   * Resource metadata.
+   * 
+ * + * RESOURCE = 1; + */ + public static final int RESOURCE_VALUE = 1; + /** + *
+   * The actual IAM policy set on a resource.
+   * 
+ * + * IAM_POLICY = 2; + */ + public static final int IAM_POLICY_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ContentType valueOf(int value) { + return forNumber(value); + } + + public static ContentType forNumber(int value) { + switch (value) { + case 0: return CONTENT_TYPE_UNSPECIFIED; + case 1: return RESOURCE; + case 2: return IAM_POLICY; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ContentType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ContentType findValueByNumber(int number) { + return ContentType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.getDescriptor().getEnumTypes().get(0); + } + + private static final ContentType[] VALUES = values(); + + public static ContentType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ContentType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:google.cloud.asset.v1beta1.ContentType) +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsRequest.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsRequest.java new file mode 100644 index 000000000000..6e9ad14f1adc --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsRequest.java @@ -0,0 +1,1469 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Export asset request.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.ExportAssetsRequest} + */ +public final class ExportAssetsRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.ExportAssetsRequest) + ExportAssetsRequestOrBuilder { +private static final long serialVersionUID = 0L; + // Use ExportAssetsRequest.newBuilder() to construct. + private ExportAssetsRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ExportAssetsRequest() { + parent_ = ""; + assetTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + contentType_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ExportAssetsRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + parent_ = s; + break; + } + case 18: { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (readTime_ != null) { + subBuilder = readTime_.toBuilder(); + } + readTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(readTime_); + readTime_ = subBuilder.buildPartial(); + } + + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + assetTypes_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000004; + } + assetTypes_.add(s); + break; + } + case 32: { + int rawValue = input.readEnum(); + + contentType_ = rawValue; + break; + } + case 42: { + com.google.cloud.asset.v1beta1.OutputConfig.Builder subBuilder = null; + if (outputConfig_ != null) { + subBuilder = outputConfig_.toBuilder(); + } + outputConfig_ = input.readMessage(com.google.cloud.asset.v1beta1.OutputConfig.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(outputConfig_); + outputConfig_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + assetTypes_ = assetTypes_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.ExportAssetsRequest.class, com.google.cloud.asset.v1beta1.ExportAssetsRequest.Builder.class); + } + + private int bitField0_; + public static final int PARENT_FIELD_NUMBER = 1; + private volatile java.lang.Object parent_; + /** + *
+   * Required. The relative name of the root asset. Can only be an organization
+   * number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id") or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + 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(); + parent_ = s; + return s; + } + } + /** + *
+   * Required. The relative name of the root asset. Can only be an organization
+   * number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id") or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + public com.google.protobuf.ByteString + getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int READ_TIME_FIELD_NUMBER = 2; + private com.google.protobuf.Timestamp readTime_; + /** + *
+   * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+   * the past or of the current time. If not specified, the current time will be
+   * used. Due to delays in resource data collection and indexing, there is a
+   * volatile window during which running the same query may get different
+   * results.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public boolean hasReadTime() { + return readTime_ != null; + } + /** + *
+   * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+   * the past or of the current time. If not specified, the current time will be
+   * used. Due to delays in resource data collection and indexing, there is a
+   * volatile window during which running the same query may get different
+   * results.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public com.google.protobuf.Timestamp getReadTime() { + return readTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readTime_; + } + /** + *
+   * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+   * the past or of the current time. If not specified, the current time will be
+   * used. Due to delays in resource data collection and indexing, there is a
+   * volatile window during which running the same query may get different
+   * results.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder() { + return getReadTime(); + } + + public static final int ASSET_TYPES_FIELD_NUMBER = 3; + private com.google.protobuf.LazyStringList assetTypes_; + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + public com.google.protobuf.ProtocolStringList + getAssetTypesList() { + return assetTypes_; + } + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + public int getAssetTypesCount() { + return assetTypes_.size(); + } + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + public java.lang.String getAssetTypes(int index) { + return assetTypes_.get(index); + } + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + public com.google.protobuf.ByteString + getAssetTypesBytes(int index) { + return assetTypes_.getByteString(index); + } + + public static final int CONTENT_TYPE_FIELD_NUMBER = 4; + private int contentType_; + /** + *
+   * Asset content type. If not specified, no content but the asset name will be
+   * returned.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public int getContentTypeValue() { + return contentType_; + } + /** + *
+   * Asset content type. If not specified, no content but the asset name will be
+   * returned.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public com.google.cloud.asset.v1beta1.ContentType getContentType() { + @SuppressWarnings("deprecation") + com.google.cloud.asset.v1beta1.ContentType result = com.google.cloud.asset.v1beta1.ContentType.valueOf(contentType_); + return result == null ? com.google.cloud.asset.v1beta1.ContentType.UNRECOGNIZED : result; + } + + public static final int OUTPUT_CONFIG_FIELD_NUMBER = 5; + private com.google.cloud.asset.v1beta1.OutputConfig outputConfig_; + /** + *
+   * Required. Output configuration indicating where the results will be output
+   * to. All results will be in newline delimited JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public boolean hasOutputConfig() { + return outputConfig_ != null; + } + /** + *
+   * Required. Output configuration indicating where the results will be output
+   * to. All results will be in newline delimited JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public com.google.cloud.asset.v1beta1.OutputConfig getOutputConfig() { + return outputConfig_ == null ? com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance() : outputConfig_; + } + /** + *
+   * Required. Output configuration indicating where the results will be output
+   * to. All results will be in newline delimited JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public com.google.cloud.asset.v1beta1.OutputConfigOrBuilder getOutputConfigOrBuilder() { + return getOutputConfig(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getParentBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, parent_); + } + if (readTime_ != null) { + output.writeMessage(2, getReadTime()); + } + for (int i = 0; i < assetTypes_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, assetTypes_.getRaw(i)); + } + if (contentType_ != com.google.cloud.asset.v1beta1.ContentType.CONTENT_TYPE_UNSPECIFIED.getNumber()) { + output.writeEnum(4, contentType_); + } + if (outputConfig_ != null) { + output.writeMessage(5, getOutputConfig()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getParentBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, parent_); + } + if (readTime_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getReadTime()); + } + { + int dataSize = 0; + for (int i = 0; i < assetTypes_.size(); i++) { + dataSize += computeStringSizeNoTag(assetTypes_.getRaw(i)); + } + size += dataSize; + size += 1 * getAssetTypesList().size(); + } + if (contentType_ != com.google.cloud.asset.v1beta1.ContentType.CONTENT_TYPE_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(4, contentType_); + } + if (outputConfig_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getOutputConfig()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.ExportAssetsRequest)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.ExportAssetsRequest other = (com.google.cloud.asset.v1beta1.ExportAssetsRequest) obj; + + boolean result = true; + result = result && getParent() + .equals(other.getParent()); + result = result && (hasReadTime() == other.hasReadTime()); + if (hasReadTime()) { + result = result && getReadTime() + .equals(other.getReadTime()); + } + result = result && getAssetTypesList() + .equals(other.getAssetTypesList()); + result = result && contentType_ == other.contentType_; + result = result && (hasOutputConfig() == other.hasOutputConfig()); + if (hasOutputConfig()) { + result = result && getOutputConfig() + .equals(other.getOutputConfig()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PARENT_FIELD_NUMBER; + hash = (53 * hash) + getParent().hashCode(); + if (hasReadTime()) { + hash = (37 * hash) + READ_TIME_FIELD_NUMBER; + hash = (53 * hash) + getReadTime().hashCode(); + } + if (getAssetTypesCount() > 0) { + hash = (37 * hash) + ASSET_TYPES_FIELD_NUMBER; + hash = (53 * hash) + getAssetTypesList().hashCode(); + } + hash = (37 * hash) + CONTENT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + contentType_; + if (hasOutputConfig()) { + hash = (37 * hash) + OUTPUT_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getOutputConfig().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.ExportAssetsRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Export asset request.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.ExportAssetsRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.ExportAssetsRequest) + com.google.cloud.asset.v1beta1.ExportAssetsRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.ExportAssetsRequest.class, com.google.cloud.asset.v1beta1.ExportAssetsRequest.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.ExportAssetsRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + parent_ = ""; + + if (readTimeBuilder_ == null) { + readTime_ = null; + } else { + readTime_ = null; + readTimeBuilder_ = null; + } + assetTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + contentType_ = 0; + + if (outputConfigBuilder_ == null) { + outputConfig_ = null; + } else { + outputConfig_ = null; + outputConfigBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsRequest_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsRequest getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.ExportAssetsRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsRequest build() { + com.google.cloud.asset.v1beta1.ExportAssetsRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsRequest buildPartial() { + com.google.cloud.asset.v1beta1.ExportAssetsRequest result = new com.google.cloud.asset.v1beta1.ExportAssetsRequest(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + result.parent_ = parent_; + if (readTimeBuilder_ == null) { + result.readTime_ = readTime_; + } else { + result.readTime_ = readTimeBuilder_.build(); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + assetTypes_ = assetTypes_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.assetTypes_ = assetTypes_; + result.contentType_ = contentType_; + if (outputConfigBuilder_ == null) { + result.outputConfig_ = outputConfig_; + } else { + result.outputConfig_ = outputConfigBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.ExportAssetsRequest) { + return mergeFrom((com.google.cloud.asset.v1beta1.ExportAssetsRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.ExportAssetsRequest other) { + if (other == com.google.cloud.asset.v1beta1.ExportAssetsRequest.getDefaultInstance()) return this; + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + onChanged(); + } + if (other.hasReadTime()) { + mergeReadTime(other.getReadTime()); + } + if (!other.assetTypes_.isEmpty()) { + if (assetTypes_.isEmpty()) { + assetTypes_ = other.assetTypes_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureAssetTypesIsMutable(); + assetTypes_.addAll(other.assetTypes_); + } + onChanged(); + } + if (other.contentType_ != 0) { + setContentTypeValue(other.getContentTypeValue()); + } + if (other.hasOutputConfig()) { + mergeOutputConfig(other.getOutputConfig()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.ExportAssetsRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.ExportAssetsRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.lang.Object parent_ = ""; + /** + *
+     * Required. The relative name of the root asset. Can only be an organization
+     * number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id") or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + parent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * Required. The relative name of the root asset. Can only be an organization
+     * number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id") or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public com.google.protobuf.ByteString + getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * Required. The relative name of the root asset. Can only be an organization
+     * number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id") or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public Builder setParent( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + parent_ = value; + onChanged(); + return this; + } + /** + *
+     * Required. The relative name of the root asset. Can only be an organization
+     * number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id") or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public Builder clearParent() { + + parent_ = getDefaultInstance().getParent(); + onChanged(); + return this; + } + /** + *
+     * Required. The relative name of the root asset. Can only be an organization
+     * number (such as "organizations/123"), or a project id (such as
+     * "projects/my-project-id") or a project number (such as "projects/12345").
+     * 
+ * + * string parent = 1; + */ + public Builder setParentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + parent_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp readTime_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> readTimeBuilder_; + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public boolean hasReadTime() { + return readTimeBuilder_ != null || readTime_ != null; + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public com.google.protobuf.Timestamp getReadTime() { + if (readTimeBuilder_ == null) { + return readTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readTime_; + } else { + return readTimeBuilder_.getMessage(); + } + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public Builder setReadTime(com.google.protobuf.Timestamp value) { + if (readTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + readTime_ = value; + onChanged(); + } else { + readTimeBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public Builder setReadTime( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (readTimeBuilder_ == null) { + readTime_ = builderForValue.build(); + onChanged(); + } else { + readTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public Builder mergeReadTime(com.google.protobuf.Timestamp value) { + if (readTimeBuilder_ == null) { + if (readTime_ != null) { + readTime_ = + com.google.protobuf.Timestamp.newBuilder(readTime_).mergeFrom(value).buildPartial(); + } else { + readTime_ = value; + } + onChanged(); + } else { + readTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public Builder clearReadTime() { + if (readTimeBuilder_ == null) { + readTime_ = null; + onChanged(); + } else { + readTime_ = null; + readTimeBuilder_ = null; + } + + return this; + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public com.google.protobuf.Timestamp.Builder getReadTimeBuilder() { + + onChanged(); + return getReadTimeFieldBuilder().getBuilder(); + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + public com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder() { + if (readTimeBuilder_ != null) { + return readTimeBuilder_.getMessageOrBuilder(); + } else { + return readTime_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : readTime_; + } + } + /** + *
+     * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+     * the past or of the current time. If not specified, the current time will be
+     * used. Due to delays in resource data collection and indexing, there is a
+     * volatile window during which running the same query may get different
+     * results.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getReadTimeFieldBuilder() { + if (readTimeBuilder_ == null) { + readTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getReadTime(), + getParentForChildren(), + isClean()); + readTime_ = null; + } + return readTimeBuilder_; + } + + private com.google.protobuf.LazyStringList assetTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureAssetTypesIsMutable() { + if (!((bitField0_ & 0x00000004) == 0x00000004)) { + assetTypes_ = new com.google.protobuf.LazyStringArrayList(assetTypes_); + bitField0_ |= 0x00000004; + } + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public com.google.protobuf.ProtocolStringList + getAssetTypesList() { + return assetTypes_.getUnmodifiableView(); + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public int getAssetTypesCount() { + return assetTypes_.size(); + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public java.lang.String getAssetTypes(int index) { + return assetTypes_.get(index); + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public com.google.protobuf.ByteString + getAssetTypesBytes(int index) { + return assetTypes_.getByteString(index); + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public Builder setAssetTypes( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetTypesIsMutable(); + assetTypes_.set(index, value); + onChanged(); + return this; + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public Builder addAssetTypes( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAssetTypesIsMutable(); + assetTypes_.add(value); + onChanged(); + return this; + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public Builder addAllAssetTypes( + java.lang.Iterable values) { + ensureAssetTypesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetTypes_); + onChanged(); + return this; + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public Builder clearAssetTypes() { + assetTypes_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+     * A list of asset types of which to take a snapshot for. Example:
+     * "google.compute.disk". If specified, only matching assets will be returned.
+     * 
+ * + * repeated string asset_types = 3; + */ + public Builder addAssetTypesBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureAssetTypesIsMutable(); + assetTypes_.add(value); + onChanged(); + return this; + } + + private int contentType_ = 0; + /** + *
+     * Asset content type. If not specified, no content but the asset name will be
+     * returned.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public int getContentTypeValue() { + return contentType_; + } + /** + *
+     * Asset content type. If not specified, no content but the asset name will be
+     * returned.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public Builder setContentTypeValue(int value) { + contentType_ = value; + onChanged(); + return this; + } + /** + *
+     * Asset content type. If not specified, no content but the asset name will be
+     * returned.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public com.google.cloud.asset.v1beta1.ContentType getContentType() { + @SuppressWarnings("deprecation") + com.google.cloud.asset.v1beta1.ContentType result = com.google.cloud.asset.v1beta1.ContentType.valueOf(contentType_); + return result == null ? com.google.cloud.asset.v1beta1.ContentType.UNRECOGNIZED : result; + } + /** + *
+     * Asset content type. If not specified, no content but the asset name will be
+     * returned.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public Builder setContentType(com.google.cloud.asset.v1beta1.ContentType value) { + if (value == null) { + throw new NullPointerException(); + } + + contentType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * Asset content type. If not specified, no content but the asset name will be
+     * returned.
+     * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + public Builder clearContentType() { + + contentType_ = 0; + onChanged(); + return this; + } + + private com.google.cloud.asset.v1beta1.OutputConfig outputConfig_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.OutputConfig, com.google.cloud.asset.v1beta1.OutputConfig.Builder, com.google.cloud.asset.v1beta1.OutputConfigOrBuilder> outputConfigBuilder_; + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public boolean hasOutputConfig() { + return outputConfigBuilder_ != null || outputConfig_ != null; + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public com.google.cloud.asset.v1beta1.OutputConfig getOutputConfig() { + if (outputConfigBuilder_ == null) { + return outputConfig_ == null ? com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance() : outputConfig_; + } else { + return outputConfigBuilder_.getMessage(); + } + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public Builder setOutputConfig(com.google.cloud.asset.v1beta1.OutputConfig value) { + if (outputConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + outputConfig_ = value; + onChanged(); + } else { + outputConfigBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public Builder setOutputConfig( + com.google.cloud.asset.v1beta1.OutputConfig.Builder builderForValue) { + if (outputConfigBuilder_ == null) { + outputConfig_ = builderForValue.build(); + onChanged(); + } else { + outputConfigBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public Builder mergeOutputConfig(com.google.cloud.asset.v1beta1.OutputConfig value) { + if (outputConfigBuilder_ == null) { + if (outputConfig_ != null) { + outputConfig_ = + com.google.cloud.asset.v1beta1.OutputConfig.newBuilder(outputConfig_).mergeFrom(value).buildPartial(); + } else { + outputConfig_ = value; + } + onChanged(); + } else { + outputConfigBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public Builder clearOutputConfig() { + if (outputConfigBuilder_ == null) { + outputConfig_ = null; + onChanged(); + } else { + outputConfig_ = null; + outputConfigBuilder_ = null; + } + + return this; + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public com.google.cloud.asset.v1beta1.OutputConfig.Builder getOutputConfigBuilder() { + + onChanged(); + return getOutputConfigFieldBuilder().getBuilder(); + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + public com.google.cloud.asset.v1beta1.OutputConfigOrBuilder getOutputConfigOrBuilder() { + if (outputConfigBuilder_ != null) { + return outputConfigBuilder_.getMessageOrBuilder(); + } else { + return outputConfig_ == null ? + com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance() : outputConfig_; + } + } + /** + *
+     * Required. Output configuration indicating where the results will be output
+     * to. All results will be in newline delimited JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.OutputConfig, com.google.cloud.asset.v1beta1.OutputConfig.Builder, com.google.cloud.asset.v1beta1.OutputConfigOrBuilder> + getOutputConfigFieldBuilder() { + if (outputConfigBuilder_ == null) { + outputConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.OutputConfig, com.google.cloud.asset.v1beta1.OutputConfig.Builder, com.google.cloud.asset.v1beta1.OutputConfigOrBuilder>( + getOutputConfig(), + getParentForChildren(), + isClean()); + outputConfig_ = null; + } + return outputConfigBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.ExportAssetsRequest) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.ExportAssetsRequest) + private static final com.google.cloud.asset.v1beta1.ExportAssetsRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.ExportAssetsRequest(); + } + + public static com.google.cloud.asset.v1beta1.ExportAssetsRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExportAssetsRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ExportAssetsRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsRequestOrBuilder.java new file mode 100644 index 000000000000..2a6d2bd02c2c --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsRequestOrBuilder.java @@ -0,0 +1,154 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public interface ExportAssetsRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.ExportAssetsRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * Required. The relative name of the root asset. Can only be an organization
+   * number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id") or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + java.lang.String getParent(); + /** + *
+   * Required. The relative name of the root asset. Can only be an organization
+   * number (such as "organizations/123"), or a project id (such as
+   * "projects/my-project-id") or a project number (such as "projects/12345").
+   * 
+ * + * string parent = 1; + */ + com.google.protobuf.ByteString + getParentBytes(); + + /** + *
+   * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+   * the past or of the current time. If not specified, the current time will be
+   * used. Due to delays in resource data collection and indexing, there is a
+   * volatile window during which running the same query may get different
+   * results.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + boolean hasReadTime(); + /** + *
+   * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+   * the past or of the current time. If not specified, the current time will be
+   * used. Due to delays in resource data collection and indexing, there is a
+   * volatile window during which running the same query may get different
+   * results.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + com.google.protobuf.Timestamp getReadTime(); + /** + *
+   * Timestamp to take an asset snapshot. This can only be set to a timestamp in
+   * the past or of the current time. If not specified, the current time will be
+   * used. Due to delays in resource data collection and indexing, there is a
+   * volatile window during which running the same query may get different
+   * results.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 2; + */ + com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder(); + + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + java.util.List + getAssetTypesList(); + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + int getAssetTypesCount(); + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + java.lang.String getAssetTypes(int index); + /** + *
+   * A list of asset types of which to take a snapshot for. Example:
+   * "google.compute.disk". If specified, only matching assets will be returned.
+   * 
+ * + * repeated string asset_types = 3; + */ + com.google.protobuf.ByteString + getAssetTypesBytes(int index); + + /** + *
+   * Asset content type. If not specified, no content but the asset name will be
+   * returned.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + int getContentTypeValue(); + /** + *
+   * Asset content type. If not specified, no content but the asset name will be
+   * returned.
+   * 
+ * + * .google.cloud.asset.v1beta1.ContentType content_type = 4; + */ + com.google.cloud.asset.v1beta1.ContentType getContentType(); + + /** + *
+   * Required. Output configuration indicating where the results will be output
+   * to. All results will be in newline delimited JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + boolean hasOutputConfig(); + /** + *
+   * Required. Output configuration indicating where the results will be output
+   * to. All results will be in newline delimited JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + com.google.cloud.asset.v1beta1.OutputConfig getOutputConfig(); + /** + *
+   * Required. Output configuration indicating where the results will be output
+   * to. All results will be in newline delimited JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 5; + */ + com.google.cloud.asset.v1beta1.OutputConfigOrBuilder getOutputConfigOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsResponse.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsResponse.java new file mode 100644 index 000000000000..e9ef44b952b3 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsResponse.java @@ -0,0 +1,896 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * The export asset response. This message is returned by the
+ * [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned
+ * [google.longrunning.Operation.response][google.longrunning.Operation.response] field.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.ExportAssetsResponse} + */ +public final class ExportAssetsResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.ExportAssetsResponse) + ExportAssetsResponseOrBuilder { +private static final long serialVersionUID = 0L; + // Use ExportAssetsResponse.newBuilder() to construct. + private ExportAssetsResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ExportAssetsResponse() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ExportAssetsResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (readTime_ != null) { + subBuilder = readTime_.toBuilder(); + } + readTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(readTime_); + readTime_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + com.google.cloud.asset.v1beta1.OutputConfig.Builder subBuilder = null; + if (outputConfig_ != null) { + subBuilder = outputConfig_.toBuilder(); + } + outputConfig_ = input.readMessage(com.google.cloud.asset.v1beta1.OutputConfig.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(outputConfig_); + outputConfig_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.ExportAssetsResponse.class, com.google.cloud.asset.v1beta1.ExportAssetsResponse.Builder.class); + } + + public static final int READ_TIME_FIELD_NUMBER = 1; + private com.google.protobuf.Timestamp readTime_; + /** + *
+   * Time the snapshot was taken.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public boolean hasReadTime() { + return readTime_ != null; + } + /** + *
+   * Time the snapshot was taken.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public com.google.protobuf.Timestamp getReadTime() { + return readTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readTime_; + } + /** + *
+   * Time the snapshot was taken.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder() { + return getReadTime(); + } + + public static final int OUTPUT_CONFIG_FIELD_NUMBER = 2; + private com.google.cloud.asset.v1beta1.OutputConfig outputConfig_; + /** + *
+   * Output configuration indicating where the results were output to.
+   * All results are in JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public boolean hasOutputConfig() { + return outputConfig_ != null; + } + /** + *
+   * Output configuration indicating where the results were output to.
+   * All results are in JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public com.google.cloud.asset.v1beta1.OutputConfig getOutputConfig() { + return outputConfig_ == null ? com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance() : outputConfig_; + } + /** + *
+   * Output configuration indicating where the results were output to.
+   * All results are in JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public com.google.cloud.asset.v1beta1.OutputConfigOrBuilder getOutputConfigOrBuilder() { + return getOutputConfig(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (readTime_ != null) { + output.writeMessage(1, getReadTime()); + } + if (outputConfig_ != null) { + output.writeMessage(2, getOutputConfig()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (readTime_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getReadTime()); + } + if (outputConfig_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getOutputConfig()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.ExportAssetsResponse)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.ExportAssetsResponse other = (com.google.cloud.asset.v1beta1.ExportAssetsResponse) obj; + + boolean result = true; + result = result && (hasReadTime() == other.hasReadTime()); + if (hasReadTime()) { + result = result && getReadTime() + .equals(other.getReadTime()); + } + result = result && (hasOutputConfig() == other.hasOutputConfig()); + if (hasOutputConfig()) { + result = result && getOutputConfig() + .equals(other.getOutputConfig()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasReadTime()) { + hash = (37 * hash) + READ_TIME_FIELD_NUMBER; + hash = (53 * hash) + getReadTime().hashCode(); + } + if (hasOutputConfig()) { + hash = (37 * hash) + OUTPUT_CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getOutputConfig().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.ExportAssetsResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * The export asset response. This message is returned by the
+   * [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned
+   * [google.longrunning.Operation.response][google.longrunning.Operation.response] field.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.ExportAssetsResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.ExportAssetsResponse) + com.google.cloud.asset.v1beta1.ExportAssetsResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.ExportAssetsResponse.class, com.google.cloud.asset.v1beta1.ExportAssetsResponse.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.ExportAssetsResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (readTimeBuilder_ == null) { + readTime_ = null; + } else { + readTime_ = null; + readTimeBuilder_ = null; + } + if (outputConfigBuilder_ == null) { + outputConfig_ = null; + } else { + outputConfig_ = null; + outputConfigBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_ExportAssetsResponse_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsResponse getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.ExportAssetsResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsResponse build() { + com.google.cloud.asset.v1beta1.ExportAssetsResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsResponse buildPartial() { + com.google.cloud.asset.v1beta1.ExportAssetsResponse result = new com.google.cloud.asset.v1beta1.ExportAssetsResponse(this); + if (readTimeBuilder_ == null) { + result.readTime_ = readTime_; + } else { + result.readTime_ = readTimeBuilder_.build(); + } + if (outputConfigBuilder_ == null) { + result.outputConfig_ = outputConfig_; + } else { + result.outputConfig_ = outputConfigBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.ExportAssetsResponse) { + return mergeFrom((com.google.cloud.asset.v1beta1.ExportAssetsResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.ExportAssetsResponse other) { + if (other == com.google.cloud.asset.v1beta1.ExportAssetsResponse.getDefaultInstance()) return this; + if (other.hasReadTime()) { + mergeReadTime(other.getReadTime()); + } + if (other.hasOutputConfig()) { + mergeOutputConfig(other.getOutputConfig()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.ExportAssetsResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.ExportAssetsResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private com.google.protobuf.Timestamp readTime_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> readTimeBuilder_; + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public boolean hasReadTime() { + return readTimeBuilder_ != null || readTime_ != null; + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public com.google.protobuf.Timestamp getReadTime() { + if (readTimeBuilder_ == null) { + return readTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : readTime_; + } else { + return readTimeBuilder_.getMessage(); + } + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public Builder setReadTime(com.google.protobuf.Timestamp value) { + if (readTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + readTime_ = value; + onChanged(); + } else { + readTimeBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public Builder setReadTime( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (readTimeBuilder_ == null) { + readTime_ = builderForValue.build(); + onChanged(); + } else { + readTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public Builder mergeReadTime(com.google.protobuf.Timestamp value) { + if (readTimeBuilder_ == null) { + if (readTime_ != null) { + readTime_ = + com.google.protobuf.Timestamp.newBuilder(readTime_).mergeFrom(value).buildPartial(); + } else { + readTime_ = value; + } + onChanged(); + } else { + readTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public Builder clearReadTime() { + if (readTimeBuilder_ == null) { + readTime_ = null; + onChanged(); + } else { + readTime_ = null; + readTimeBuilder_ = null; + } + + return this; + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public com.google.protobuf.Timestamp.Builder getReadTimeBuilder() { + + onChanged(); + return getReadTimeFieldBuilder().getBuilder(); + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + public com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder() { + if (readTimeBuilder_ != null) { + return readTimeBuilder_.getMessageOrBuilder(); + } else { + return readTime_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : readTime_; + } + } + /** + *
+     * Time the snapshot was taken.
+     * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getReadTimeFieldBuilder() { + if (readTimeBuilder_ == null) { + readTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getReadTime(), + getParentForChildren(), + isClean()); + readTime_ = null; + } + return readTimeBuilder_; + } + + private com.google.cloud.asset.v1beta1.OutputConfig outputConfig_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.OutputConfig, com.google.cloud.asset.v1beta1.OutputConfig.Builder, com.google.cloud.asset.v1beta1.OutputConfigOrBuilder> outputConfigBuilder_; + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public boolean hasOutputConfig() { + return outputConfigBuilder_ != null || outputConfig_ != null; + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public com.google.cloud.asset.v1beta1.OutputConfig getOutputConfig() { + if (outputConfigBuilder_ == null) { + return outputConfig_ == null ? com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance() : outputConfig_; + } else { + return outputConfigBuilder_.getMessage(); + } + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public Builder setOutputConfig(com.google.cloud.asset.v1beta1.OutputConfig value) { + if (outputConfigBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + outputConfig_ = value; + onChanged(); + } else { + outputConfigBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public Builder setOutputConfig( + com.google.cloud.asset.v1beta1.OutputConfig.Builder builderForValue) { + if (outputConfigBuilder_ == null) { + outputConfig_ = builderForValue.build(); + onChanged(); + } else { + outputConfigBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public Builder mergeOutputConfig(com.google.cloud.asset.v1beta1.OutputConfig value) { + if (outputConfigBuilder_ == null) { + if (outputConfig_ != null) { + outputConfig_ = + com.google.cloud.asset.v1beta1.OutputConfig.newBuilder(outputConfig_).mergeFrom(value).buildPartial(); + } else { + outputConfig_ = value; + } + onChanged(); + } else { + outputConfigBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public Builder clearOutputConfig() { + if (outputConfigBuilder_ == null) { + outputConfig_ = null; + onChanged(); + } else { + outputConfig_ = null; + outputConfigBuilder_ = null; + } + + return this; + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public com.google.cloud.asset.v1beta1.OutputConfig.Builder getOutputConfigBuilder() { + + onChanged(); + return getOutputConfigFieldBuilder().getBuilder(); + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + public com.google.cloud.asset.v1beta1.OutputConfigOrBuilder getOutputConfigOrBuilder() { + if (outputConfigBuilder_ != null) { + return outputConfigBuilder_.getMessageOrBuilder(); + } else { + return outputConfig_ == null ? + com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance() : outputConfig_; + } + } + /** + *
+     * Output configuration indicating where the results were output to.
+     * All results are in JSON format.
+     * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.OutputConfig, com.google.cloud.asset.v1beta1.OutputConfig.Builder, com.google.cloud.asset.v1beta1.OutputConfigOrBuilder> + getOutputConfigFieldBuilder() { + if (outputConfigBuilder_ == null) { + outputConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.OutputConfig, com.google.cloud.asset.v1beta1.OutputConfig.Builder, com.google.cloud.asset.v1beta1.OutputConfigOrBuilder>( + getOutputConfig(), + getParentForChildren(), + isClean()); + outputConfig_ = null; + } + return outputConfigBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.ExportAssetsResponse) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.ExportAssetsResponse) + private static final com.google.cloud.asset.v1beta1.ExportAssetsResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.ExportAssetsResponse(); + } + + public static com.google.cloud.asset.v1beta1.ExportAssetsResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ExportAssetsResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ExportAssetsResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.ExportAssetsResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsResponseOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsResponseOrBuilder.java new file mode 100644 index 000000000000..ac4d355e6c05 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ExportAssetsResponseOrBuilder.java @@ -0,0 +1,62 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public interface ExportAssetsResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.ExportAssetsResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * Time the snapshot was taken.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + boolean hasReadTime(); + /** + *
+   * Time the snapshot was taken.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + com.google.protobuf.Timestamp getReadTime(); + /** + *
+   * Time the snapshot was taken.
+   * 
+ * + * .google.protobuf.Timestamp read_time = 1; + */ + com.google.protobuf.TimestampOrBuilder getReadTimeOrBuilder(); + + /** + *
+   * Output configuration indicating where the results were output to.
+   * All results are in JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + boolean hasOutputConfig(); + /** + *
+   * Output configuration indicating where the results were output to.
+   * All results are in JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + com.google.cloud.asset.v1beta1.OutputConfig getOutputConfig(); + /** + *
+   * Output configuration indicating where the results were output to.
+   * All results are in JSON format.
+   * 
+ * + * .google.cloud.asset.v1beta1.OutputConfig output_config = 2; + */ + com.google.cloud.asset.v1beta1.OutputConfigOrBuilder getOutputConfigOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/GcsDestination.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/GcsDestination.java new file mode 100644 index 000000000000..213c84e267d4 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/GcsDestination.java @@ -0,0 +1,598 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * A Google Cloud Storage (GCS) location.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.GcsDestination} + */ +public final class GcsDestination extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.GcsDestination) + GcsDestinationOrBuilder { +private static final long serialVersionUID = 0L; + // Use GcsDestination.newBuilder() to construct. + private GcsDestination(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GcsDestination() { + uri_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GcsDestination( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + uri_ = s; + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_GcsDestination_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_GcsDestination_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.GcsDestination.class, com.google.cloud.asset.v1beta1.GcsDestination.Builder.class); + } + + public static final int URI_FIELD_NUMBER = 1; + private volatile java.lang.Object uri_; + /** + *
+   * The path of the GCS objects. It's the same path that is used by gsutil, for
+   * example: "gs://bucket_name/object_path". See:
+   * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+   * information.
+   * 
+ * + * string uri = 1; + */ + public java.lang.String getUri() { + java.lang.Object ref = uri_; + 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(); + uri_ = s; + return s; + } + } + /** + *
+   * The path of the GCS objects. It's the same path that is used by gsutil, for
+   * example: "gs://bucket_name/object_path". See:
+   * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+   * information.
+   * 
+ * + * string uri = 1; + */ + public com.google.protobuf.ByteString + getUriBytes() { + java.lang.Object ref = uri_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + uri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getUriBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uri_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getUriBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uri_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.GcsDestination)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.GcsDestination other = (com.google.cloud.asset.v1beta1.GcsDestination) obj; + + boolean result = true; + result = result && getUri() + .equals(other.getUri()); + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + URI_FIELD_NUMBER; + hash = (53 * hash) + getUri().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.GcsDestination parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.GcsDestination prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * A Google Cloud Storage (GCS) location.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.GcsDestination} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.GcsDestination) + com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_GcsDestination_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_GcsDestination_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.GcsDestination.class, com.google.cloud.asset.v1beta1.GcsDestination.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.GcsDestination.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + uri_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_GcsDestination_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.GcsDestination getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.GcsDestination build() { + com.google.cloud.asset.v1beta1.GcsDestination result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.GcsDestination buildPartial() { + com.google.cloud.asset.v1beta1.GcsDestination result = new com.google.cloud.asset.v1beta1.GcsDestination(this); + result.uri_ = uri_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.GcsDestination) { + return mergeFrom((com.google.cloud.asset.v1beta1.GcsDestination)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.GcsDestination other) { + if (other == com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance()) return this; + if (!other.getUri().isEmpty()) { + uri_ = other.uri_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.GcsDestination parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.GcsDestination) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object uri_ = ""; + /** + *
+     * The path of the GCS objects. It's the same path that is used by gsutil, for
+     * example: "gs://bucket_name/object_path". See:
+     * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+     * information.
+     * 
+ * + * string uri = 1; + */ + public java.lang.String getUri() { + java.lang.Object ref = uri_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + uri_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The path of the GCS objects. It's the same path that is used by gsutil, for
+     * example: "gs://bucket_name/object_path". See:
+     * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+     * information.
+     * 
+ * + * string uri = 1; + */ + public com.google.protobuf.ByteString + getUriBytes() { + java.lang.Object ref = uri_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + uri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The path of the GCS objects. It's the same path that is used by gsutil, for
+     * example: "gs://bucket_name/object_path". See:
+     * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+     * information.
+     * 
+ * + * string uri = 1; + */ + public Builder setUri( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + uri_ = value; + onChanged(); + return this; + } + /** + *
+     * The path of the GCS objects. It's the same path that is used by gsutil, for
+     * example: "gs://bucket_name/object_path". See:
+     * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+     * information.
+     * 
+ * + * string uri = 1; + */ + public Builder clearUri() { + + uri_ = getDefaultInstance().getUri(); + onChanged(); + return this; + } + /** + *
+     * The path of the GCS objects. It's the same path that is used by gsutil, for
+     * example: "gs://bucket_name/object_path". See:
+     * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+     * information.
+     * 
+ * + * string uri = 1; + */ + public Builder setUriBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + uri_ = value; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.GcsDestination) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.GcsDestination) + private static final com.google.cloud.asset.v1beta1.GcsDestination DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.GcsDestination(); + } + + public static com.google.cloud.asset.v1beta1.GcsDestination getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GcsDestination parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GcsDestination(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.GcsDestination getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/GcsDestinationOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/GcsDestinationOrBuilder.java new file mode 100644 index 000000000000..f0a4e3a95884 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/GcsDestinationOrBuilder.java @@ -0,0 +1,33 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public interface GcsDestinationOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.GcsDestination) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The path of the GCS objects. It's the same path that is used by gsutil, for
+   * example: "gs://bucket_name/object_path". See:
+   * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+   * information.
+   * 
+ * + * string uri = 1; + */ + java.lang.String getUri(); + /** + *
+   * The path of the GCS objects. It's the same path that is used by gsutil, for
+   * example: "gs://bucket_name/object_path". See:
+   * https://cloud.google.com/storage/docs/viewing-editing-metadata for more
+   * information.
+   * 
+ * + * string uri = 1; + */ + com.google.protobuf.ByteString + getUriBytes(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/OutputConfig.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/OutputConfig.java new file mode 100644 index 000000000000..b034f0192a89 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/OutputConfig.java @@ -0,0 +1,742 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Output configuration for export assets destination.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.OutputConfig} + */ +public final class OutputConfig extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.OutputConfig) + OutputConfigOrBuilder { +private static final long serialVersionUID = 0L; + // Use OutputConfig.newBuilder() to construct. + private OutputConfig(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private OutputConfig() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private OutputConfig( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.cloud.asset.v1beta1.GcsDestination.Builder subBuilder = null; + if (destinationCase_ == 1) { + subBuilder = ((com.google.cloud.asset.v1beta1.GcsDestination) destination_).toBuilder(); + } + destination_ = + input.readMessage(com.google.cloud.asset.v1beta1.GcsDestination.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((com.google.cloud.asset.v1beta1.GcsDestination) destination_); + destination_ = subBuilder.buildPartial(); + } + destinationCase_ = 1; + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_OutputConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_OutputConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.OutputConfig.class, com.google.cloud.asset.v1beta1.OutputConfig.Builder.class); + } + + private int destinationCase_ = 0; + private java.lang.Object destination_; + public enum DestinationCase + implements com.google.protobuf.Internal.EnumLite { + GCS_DESTINATION(1), + DESTINATION_NOT_SET(0); + private final int value; + private DestinationCase(int value) { + this.value = value; + } + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DestinationCase valueOf(int value) { + return forNumber(value); + } + + public static DestinationCase forNumber(int value) { + switch (value) { + case 1: return GCS_DESTINATION; + case 0: return DESTINATION_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public DestinationCase + getDestinationCase() { + return DestinationCase.forNumber( + destinationCase_); + } + + public static final int GCS_DESTINATION_FIELD_NUMBER = 1; + /** + *
+   * Destination on Google Cloud Storage (GCS).
+   * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public boolean hasGcsDestination() { + return destinationCase_ == 1; + } + /** + *
+   * Destination on Google Cloud Storage (GCS).
+   * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public com.google.cloud.asset.v1beta1.GcsDestination getGcsDestination() { + if (destinationCase_ == 1) { + return (com.google.cloud.asset.v1beta1.GcsDestination) destination_; + } + return com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } + /** + *
+   * Destination on Google Cloud Storage (GCS).
+   * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder getGcsDestinationOrBuilder() { + if (destinationCase_ == 1) { + return (com.google.cloud.asset.v1beta1.GcsDestination) destination_; + } + return com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (destinationCase_ == 1) { + output.writeMessage(1, (com.google.cloud.asset.v1beta1.GcsDestination) destination_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (destinationCase_ == 1) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, (com.google.cloud.asset.v1beta1.GcsDestination) destination_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.OutputConfig)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.OutputConfig other = (com.google.cloud.asset.v1beta1.OutputConfig) obj; + + boolean result = true; + result = result && getDestinationCase().equals( + other.getDestinationCase()); + if (!result) return false; + switch (destinationCase_) { + case 1: + result = result && getGcsDestination() + .equals(other.getGcsDestination()); + break; + case 0: + default: + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + switch (destinationCase_) { + case 1: + hash = (37 * hash) + GCS_DESTINATION_FIELD_NUMBER; + hash = (53 * hash) + getGcsDestination().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.OutputConfig parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.OutputConfig prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Output configuration for export assets destination.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.OutputConfig} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.OutputConfig) + com.google.cloud.asset.v1beta1.OutputConfigOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_OutputConfig_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_OutputConfig_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.OutputConfig.class, com.google.cloud.asset.v1beta1.OutputConfig.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.OutputConfig.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + destinationCase_ = 0; + destination_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetServiceProto.internal_static_google_cloud_asset_v1beta1_OutputConfig_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.OutputConfig getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.OutputConfig build() { + com.google.cloud.asset.v1beta1.OutputConfig result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.OutputConfig buildPartial() { + com.google.cloud.asset.v1beta1.OutputConfig result = new com.google.cloud.asset.v1beta1.OutputConfig(this); + if (destinationCase_ == 1) { + if (gcsDestinationBuilder_ == null) { + result.destination_ = destination_; + } else { + result.destination_ = gcsDestinationBuilder_.build(); + } + } + result.destinationCase_ = destinationCase_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.OutputConfig) { + return mergeFrom((com.google.cloud.asset.v1beta1.OutputConfig)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.OutputConfig other) { + if (other == com.google.cloud.asset.v1beta1.OutputConfig.getDefaultInstance()) return this; + switch (other.getDestinationCase()) { + case GCS_DESTINATION: { + mergeGcsDestination(other.getGcsDestination()); + break; + } + case DESTINATION_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.OutputConfig parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.OutputConfig) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int destinationCase_ = 0; + private java.lang.Object destination_; + public DestinationCase + getDestinationCase() { + return DestinationCase.forNumber( + destinationCase_); + } + + public Builder clearDestination() { + destinationCase_ = 0; + destination_ = null; + onChanged(); + return this; + } + + + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.GcsDestination, com.google.cloud.asset.v1beta1.GcsDestination.Builder, com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder> gcsDestinationBuilder_; + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public boolean hasGcsDestination() { + return destinationCase_ == 1; + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public com.google.cloud.asset.v1beta1.GcsDestination getGcsDestination() { + if (gcsDestinationBuilder_ == null) { + if (destinationCase_ == 1) { + return (com.google.cloud.asset.v1beta1.GcsDestination) destination_; + } + return com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } else { + if (destinationCase_ == 1) { + return gcsDestinationBuilder_.getMessage(); + } + return com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public Builder setGcsDestination(com.google.cloud.asset.v1beta1.GcsDestination value) { + if (gcsDestinationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + destination_ = value; + onChanged(); + } else { + gcsDestinationBuilder_.setMessage(value); + } + destinationCase_ = 1; + return this; + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public Builder setGcsDestination( + com.google.cloud.asset.v1beta1.GcsDestination.Builder builderForValue) { + if (gcsDestinationBuilder_ == null) { + destination_ = builderForValue.build(); + onChanged(); + } else { + gcsDestinationBuilder_.setMessage(builderForValue.build()); + } + destinationCase_ = 1; + return this; + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public Builder mergeGcsDestination(com.google.cloud.asset.v1beta1.GcsDestination value) { + if (gcsDestinationBuilder_ == null) { + if (destinationCase_ == 1 && + destination_ != com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance()) { + destination_ = com.google.cloud.asset.v1beta1.GcsDestination.newBuilder((com.google.cloud.asset.v1beta1.GcsDestination) destination_) + .mergeFrom(value).buildPartial(); + } else { + destination_ = value; + } + onChanged(); + } else { + if (destinationCase_ == 1) { + gcsDestinationBuilder_.mergeFrom(value); + } + gcsDestinationBuilder_.setMessage(value); + } + destinationCase_ = 1; + return this; + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public Builder clearGcsDestination() { + if (gcsDestinationBuilder_ == null) { + if (destinationCase_ == 1) { + destinationCase_ = 0; + destination_ = null; + onChanged(); + } + } else { + if (destinationCase_ == 1) { + destinationCase_ = 0; + destination_ = null; + } + gcsDestinationBuilder_.clear(); + } + return this; + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public com.google.cloud.asset.v1beta1.GcsDestination.Builder getGcsDestinationBuilder() { + return getGcsDestinationFieldBuilder().getBuilder(); + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + public com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder getGcsDestinationOrBuilder() { + if ((destinationCase_ == 1) && (gcsDestinationBuilder_ != null)) { + return gcsDestinationBuilder_.getMessageOrBuilder(); + } else { + if (destinationCase_ == 1) { + return (com.google.cloud.asset.v1beta1.GcsDestination) destination_; + } + return com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } + } + /** + *
+     * Destination on Google Cloud Storage (GCS).
+     * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.GcsDestination, com.google.cloud.asset.v1beta1.GcsDestination.Builder, com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder> + getGcsDestinationFieldBuilder() { + if (gcsDestinationBuilder_ == null) { + if (!(destinationCase_ == 1)) { + destination_ = com.google.cloud.asset.v1beta1.GcsDestination.getDefaultInstance(); + } + gcsDestinationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.GcsDestination, com.google.cloud.asset.v1beta1.GcsDestination.Builder, com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder>( + (com.google.cloud.asset.v1beta1.GcsDestination) destination_, + getParentForChildren(), + isClean()); + destination_ = null; + } + destinationCase_ = 1; + onChanged();; + return gcsDestinationBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.OutputConfig) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.OutputConfig) + private static final com.google.cloud.asset.v1beta1.OutputConfig DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.OutputConfig(); + } + + public static com.google.cloud.asset.v1beta1.OutputConfig getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public OutputConfig parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new OutputConfig(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.OutputConfig getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/OutputConfigOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/OutputConfigOrBuilder.java new file mode 100644 index 000000000000..2fa0d8472f36 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/OutputConfigOrBuilder.java @@ -0,0 +1,36 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/asset_service.proto + +package com.google.cloud.asset.v1beta1; + +public interface OutputConfigOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.OutputConfig) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * Destination on Google Cloud Storage (GCS).
+   * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + boolean hasGcsDestination(); + /** + *
+   * Destination on Google Cloud Storage (GCS).
+   * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + com.google.cloud.asset.v1beta1.GcsDestination getGcsDestination(); + /** + *
+   * Destination on Google Cloud Storage (GCS).
+   * 
+ * + * .google.cloud.asset.v1beta1.GcsDestination gcs_destination = 1; + */ + com.google.cloud.asset.v1beta1.GcsDestinationOrBuilder getGcsDestinationOrBuilder(); + + public com.google.cloud.asset.v1beta1.OutputConfig.DestinationCase getDestinationCase(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ProjectName.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ProjectName.java new file mode 100644 index 000000000000..2d5a7149ee52 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ProjectName.java @@ -0,0 +1,166 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.cloud.asset.v1beta1; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import com.google.api.pathtemplate.PathTemplate; +import com.google.api.resourcenames.ResourceName; +import java.util.Map; +import java.util.ArrayList; +import java.util.List; + +// AUTO-GENERATED DOCUMENTATION AND CLASS +@javax.annotation.Generated("by GAPIC protoc plugin") +public class ProjectName implements ResourceName { + + private static final PathTemplate PATH_TEMPLATE = + PathTemplate.createWithoutUrlEncoding("projects/{project}"); + + private volatile Map fieldValuesMap; + + private final String project; + + public String getProject() { + return project; + } + + public static Builder newBuilder() { + return new Builder(); + } + + public Builder toBuilder() { + return new Builder(this); + } + + private ProjectName(Builder builder) { + project = Preconditions.checkNotNull(builder.getProject()); + } + + public static ProjectName of(String project) { + return newBuilder() + .setProject(project) + .build(); + } + + public static String format(String project) { + return newBuilder() + .setProject(project) + .build() + .toString(); + } + + public static ProjectName parse(String formattedString) { + if (formattedString.isEmpty()) { + return null; + } + Map matchMap = + PATH_TEMPLATE.validatedMatch(formattedString, "ProjectName.parse: formattedString not in valid format"); + return of(matchMap.get("project")); + } + + public static List parseList(List formattedStrings) { + List list = new ArrayList<>(formattedStrings.size()); + for (String formattedString : formattedStrings) { + list.add(parse(formattedString)); + } + return list; + } + + public static List toStringList(List values) { + List list = new ArrayList(values.size()); + for (ProjectName value : values) { + if (value == null) { + list.add(""); + } else { + list.add(value.toString()); + } + } + return list; + } + + public static boolean isParsableFrom(String formattedString) { + return PATH_TEMPLATE.matches(formattedString); + } + + public Map getFieldValuesMap() { + if (fieldValuesMap == null) { + synchronized (this) { + if (fieldValuesMap == null) { + ImmutableMap.Builder fieldMapBuilder = ImmutableMap.builder(); + fieldMapBuilder.put("project", project); + fieldValuesMap = fieldMapBuilder.build(); + } + } + } + return fieldValuesMap; + } + + public String getFieldValue(String fieldName) { + return getFieldValuesMap().get(fieldName); + } + + @Override + public String toString() { + return PATH_TEMPLATE.instantiate("project", project); + } + + /** Builder for ProjectName. */ + public static class Builder { + + private String project; + + public String getProject() { + return project; + } + + public Builder setProject(String project) { + this.project = project; + return this; + } + + private Builder() { + } + + private Builder(ProjectName projectName) { + project = projectName.project; + } + + public ProjectName build() { + return new ProjectName(this); + } + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (o instanceof ProjectName) { + ProjectName that = (ProjectName) o; + return (this.project.equals(that.project)); + } + return false; + } + + @Override + public int hashCode() { + int h = 1; + h *= 1000003; + h ^= project.hashCode(); + return h; + } +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/Resource.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/Resource.java new file mode 100644 index 000000000000..fdddfefe18f6 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/Resource.java @@ -0,0 +1,1543 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Representation of a cloud resource.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.Resource} + */ +public final class Resource extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.Resource) + ResourceOrBuilder { +private static final long serialVersionUID = 0L; + // Use Resource.newBuilder() to construct. + private Resource(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Resource() { + version_ = ""; + discoveryDocumentUri_ = ""; + discoveryName_ = ""; + resourceUrl_ = ""; + parent_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Resource( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + version_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + discoveryDocumentUri_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + discoveryName_ = s; + break; + } + case 34: { + java.lang.String s = input.readStringRequireUtf8(); + + resourceUrl_ = s; + break; + } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + + parent_ = s; + break; + } + case 50: { + com.google.protobuf.Struct.Builder subBuilder = null; + if (data_ != null) { + subBuilder = data_.toBuilder(); + } + data_ = input.readMessage(com.google.protobuf.Struct.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(data_); + data_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Resource_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Resource_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.Resource.class, com.google.cloud.asset.v1beta1.Resource.Builder.class); + } + + public static final int VERSION_FIELD_NUMBER = 1; + private volatile java.lang.Object version_; + /** + *
+   * The API version. Example: "v1".
+   * 
+ * + * string version = 1; + */ + public java.lang.String getVersion() { + java.lang.Object ref = version_; + 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(); + version_ = s; + return s; + } + } + /** + *
+   * The API version. Example: "v1".
+   * 
+ * + * string version = 1; + */ + public com.google.protobuf.ByteString + getVersionBytes() { + java.lang.Object ref = version_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + version_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISCOVERY_DOCUMENT_URI_FIELD_NUMBER = 2; + private volatile java.lang.Object discoveryDocumentUri_; + /** + *
+   * The URL of the discovery document containing the resource's JSON schema.
+   * Example:
+   * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+   * It will be left unspecified for resources without a discovery-based API,
+   * such as Cloud Bigtable.
+   * 
+ * + * string discovery_document_uri = 2; + */ + public java.lang.String getDiscoveryDocumentUri() { + java.lang.Object ref = discoveryDocumentUri_; + 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(); + discoveryDocumentUri_ = s; + return s; + } + } + /** + *
+   * The URL of the discovery document containing the resource's JSON schema.
+   * Example:
+   * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+   * It will be left unspecified for resources without a discovery-based API,
+   * such as Cloud Bigtable.
+   * 
+ * + * string discovery_document_uri = 2; + */ + public com.google.protobuf.ByteString + getDiscoveryDocumentUriBytes() { + java.lang.Object ref = discoveryDocumentUri_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + discoveryDocumentUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISCOVERY_NAME_FIELD_NUMBER = 3; + private volatile java.lang.Object discoveryName_; + /** + *
+   * The JSON schema name listed in the discovery document.
+   * Example: "Project". It will be left unspecified for resources (such as
+   * Cloud Bigtable) without a discovery-based API.
+   * 
+ * + * string discovery_name = 3; + */ + public java.lang.String getDiscoveryName() { + java.lang.Object ref = discoveryName_; + 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(); + discoveryName_ = s; + return s; + } + } + /** + *
+   * The JSON schema name listed in the discovery document.
+   * Example: "Project". It will be left unspecified for resources (such as
+   * Cloud Bigtable) without a discovery-based API.
+   * 
+ * + * string discovery_name = 3; + */ + public com.google.protobuf.ByteString + getDiscoveryNameBytes() { + java.lang.Object ref = discoveryName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + discoveryName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_URL_FIELD_NUMBER = 4; + private volatile java.lang.Object resourceUrl_; + /** + *
+   * The REST URL for accessing the resource. An HTTP GET operation using this
+   * URL returns the resource itself.
+   * Example:
+   * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+   * It will be left unspecified for resources without a REST API.
+   * 
+ * + * string resource_url = 4; + */ + public java.lang.String getResourceUrl() { + java.lang.Object ref = resourceUrl_; + 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(); + resourceUrl_ = s; + return s; + } + } + /** + *
+   * The REST URL for accessing the resource. An HTTP GET operation using this
+   * URL returns the resource itself.
+   * Example:
+   * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+   * It will be left unspecified for resources without a REST API.
+   * 
+ * + * string resource_url = 4; + */ + public com.google.protobuf.ByteString + getResourceUrlBytes() { + java.lang.Object ref = resourceUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PARENT_FIELD_NUMBER = 5; + private volatile java.lang.Object parent_; + /** + *
+   * The full name of the immediate parent of this resource. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * For GCP assets, it is the parent resource defined in the IAM policy
+   * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+   * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+   * For third-party assets, it is up to the users to define.
+   * 
+ * + * string parent = 5; + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + 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(); + parent_ = s; + return s; + } + } + /** + *
+   * The full name of the immediate parent of this resource. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * For GCP assets, it is the parent resource defined in the IAM policy
+   * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+   * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+   * For third-party assets, it is up to the users to define.
+   * 
+ * + * string parent = 5; + */ + public com.google.protobuf.ByteString + getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DATA_FIELD_NUMBER = 6; + private com.google.protobuf.Struct data_; + /** + *
+   * The content of the resource, in which some sensitive fields are scrubbed
+   * away and may not be present.
+   * 
+ * + * .google.protobuf.Struct data = 6; + */ + public boolean hasData() { + return data_ != null; + } + /** + *
+   * The content of the resource, in which some sensitive fields are scrubbed
+   * away and may not be present.
+   * 
+ * + * .google.protobuf.Struct data = 6; + */ + public com.google.protobuf.Struct getData() { + return data_ == null ? com.google.protobuf.Struct.getDefaultInstance() : data_; + } + /** + *
+   * The content of the resource, in which some sensitive fields are scrubbed
+   * away and may not be present.
+   * 
+ * + * .google.protobuf.Struct data = 6; + */ + public com.google.protobuf.StructOrBuilder getDataOrBuilder() { + return getData(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getVersionBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, version_); + } + if (!getDiscoveryDocumentUriBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, discoveryDocumentUri_); + } + if (!getDiscoveryNameBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, discoveryName_); + } + if (!getResourceUrlBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, resourceUrl_); + } + if (!getParentBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, parent_); + } + if (data_ != null) { + output.writeMessage(6, getData()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getVersionBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, version_); + } + if (!getDiscoveryDocumentUriBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, discoveryDocumentUri_); + } + if (!getDiscoveryNameBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, discoveryName_); + } + if (!getResourceUrlBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, resourceUrl_); + } + if (!getParentBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, parent_); + } + if (data_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getData()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.Resource)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.Resource other = (com.google.cloud.asset.v1beta1.Resource) obj; + + boolean result = true; + result = result && getVersion() + .equals(other.getVersion()); + result = result && getDiscoveryDocumentUri() + .equals(other.getDiscoveryDocumentUri()); + result = result && getDiscoveryName() + .equals(other.getDiscoveryName()); + result = result && getResourceUrl() + .equals(other.getResourceUrl()); + result = result && getParent() + .equals(other.getParent()); + result = result && (hasData() == other.hasData()); + if (hasData()) { + result = result && getData() + .equals(other.getData()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + getVersion().hashCode(); + hash = (37 * hash) + DISCOVERY_DOCUMENT_URI_FIELD_NUMBER; + hash = (53 * hash) + getDiscoveryDocumentUri().hashCode(); + hash = (37 * hash) + DISCOVERY_NAME_FIELD_NUMBER; + hash = (53 * hash) + getDiscoveryName().hashCode(); + hash = (37 * hash) + RESOURCE_URL_FIELD_NUMBER; + hash = (53 * hash) + getResourceUrl().hashCode(); + hash = (37 * hash) + PARENT_FIELD_NUMBER; + hash = (53 * hash) + getParent().hashCode(); + if (hasData()) { + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Resource parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.Resource parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.Resource parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.Resource prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Representation of a cloud resource.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.Resource} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.Resource) + com.google.cloud.asset.v1beta1.ResourceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Resource_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Resource_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.Resource.class, com.google.cloud.asset.v1beta1.Resource.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.Resource.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + version_ = ""; + + discoveryDocumentUri_ = ""; + + discoveryName_ = ""; + + resourceUrl_ = ""; + + parent_ = ""; + + if (dataBuilder_ == null) { + data_ = null; + } else { + data_ = null; + dataBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_Resource_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Resource getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.Resource.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Resource build() { + com.google.cloud.asset.v1beta1.Resource result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Resource buildPartial() { + com.google.cloud.asset.v1beta1.Resource result = new com.google.cloud.asset.v1beta1.Resource(this); + result.version_ = version_; + result.discoveryDocumentUri_ = discoveryDocumentUri_; + result.discoveryName_ = discoveryName_; + result.resourceUrl_ = resourceUrl_; + result.parent_ = parent_; + if (dataBuilder_ == null) { + result.data_ = data_; + } else { + result.data_ = dataBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.Resource) { + return mergeFrom((com.google.cloud.asset.v1beta1.Resource)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.Resource other) { + if (other == com.google.cloud.asset.v1beta1.Resource.getDefaultInstance()) return this; + if (!other.getVersion().isEmpty()) { + version_ = other.version_; + onChanged(); + } + if (!other.getDiscoveryDocumentUri().isEmpty()) { + discoveryDocumentUri_ = other.discoveryDocumentUri_; + onChanged(); + } + if (!other.getDiscoveryName().isEmpty()) { + discoveryName_ = other.discoveryName_; + onChanged(); + } + if (!other.getResourceUrl().isEmpty()) { + resourceUrl_ = other.resourceUrl_; + onChanged(); + } + if (!other.getParent().isEmpty()) { + parent_ = other.parent_; + onChanged(); + } + if (other.hasData()) { + mergeData(other.getData()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.Resource parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.Resource) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object version_ = ""; + /** + *
+     * The API version. Example: "v1".
+     * 
+ * + * string version = 1; + */ + public java.lang.String getVersion() { + java.lang.Object ref = version_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + version_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The API version. Example: "v1".
+     * 
+ * + * string version = 1; + */ + public com.google.protobuf.ByteString + getVersionBytes() { + java.lang.Object ref = version_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + version_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The API version. Example: "v1".
+     * 
+ * + * string version = 1; + */ + public Builder setVersion( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + version_ = value; + onChanged(); + return this; + } + /** + *
+     * The API version. Example: "v1".
+     * 
+ * + * string version = 1; + */ + public Builder clearVersion() { + + version_ = getDefaultInstance().getVersion(); + onChanged(); + return this; + } + /** + *
+     * The API version. Example: "v1".
+     * 
+ * + * string version = 1; + */ + public Builder setVersionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + version_ = value; + onChanged(); + return this; + } + + private java.lang.Object discoveryDocumentUri_ = ""; + /** + *
+     * The URL of the discovery document containing the resource's JSON schema.
+     * Example:
+     * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+     * It will be left unspecified for resources without a discovery-based API,
+     * such as Cloud Bigtable.
+     * 
+ * + * string discovery_document_uri = 2; + */ + public java.lang.String getDiscoveryDocumentUri() { + java.lang.Object ref = discoveryDocumentUri_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + discoveryDocumentUri_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The URL of the discovery document containing the resource's JSON schema.
+     * Example:
+     * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+     * It will be left unspecified for resources without a discovery-based API,
+     * such as Cloud Bigtable.
+     * 
+ * + * string discovery_document_uri = 2; + */ + public com.google.protobuf.ByteString + getDiscoveryDocumentUriBytes() { + java.lang.Object ref = discoveryDocumentUri_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + discoveryDocumentUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The URL of the discovery document containing the resource's JSON schema.
+     * Example:
+     * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+     * It will be left unspecified for resources without a discovery-based API,
+     * such as Cloud Bigtable.
+     * 
+ * + * string discovery_document_uri = 2; + */ + public Builder setDiscoveryDocumentUri( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + discoveryDocumentUri_ = value; + onChanged(); + return this; + } + /** + *
+     * The URL of the discovery document containing the resource's JSON schema.
+     * Example:
+     * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+     * It will be left unspecified for resources without a discovery-based API,
+     * such as Cloud Bigtable.
+     * 
+ * + * string discovery_document_uri = 2; + */ + public Builder clearDiscoveryDocumentUri() { + + discoveryDocumentUri_ = getDefaultInstance().getDiscoveryDocumentUri(); + onChanged(); + return this; + } + /** + *
+     * The URL of the discovery document containing the resource's JSON schema.
+     * Example:
+     * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+     * It will be left unspecified for resources without a discovery-based API,
+     * such as Cloud Bigtable.
+     * 
+ * + * string discovery_document_uri = 2; + */ + public Builder setDiscoveryDocumentUriBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + discoveryDocumentUri_ = value; + onChanged(); + return this; + } + + private java.lang.Object discoveryName_ = ""; + /** + *
+     * The JSON schema name listed in the discovery document.
+     * Example: "Project". It will be left unspecified for resources (such as
+     * Cloud Bigtable) without a discovery-based API.
+     * 
+ * + * string discovery_name = 3; + */ + public java.lang.String getDiscoveryName() { + java.lang.Object ref = discoveryName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + discoveryName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The JSON schema name listed in the discovery document.
+     * Example: "Project". It will be left unspecified for resources (such as
+     * Cloud Bigtable) without a discovery-based API.
+     * 
+ * + * string discovery_name = 3; + */ + public com.google.protobuf.ByteString + getDiscoveryNameBytes() { + java.lang.Object ref = discoveryName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + discoveryName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The JSON schema name listed in the discovery document.
+     * Example: "Project". It will be left unspecified for resources (such as
+     * Cloud Bigtable) without a discovery-based API.
+     * 
+ * + * string discovery_name = 3; + */ + public Builder setDiscoveryName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + discoveryName_ = value; + onChanged(); + return this; + } + /** + *
+     * The JSON schema name listed in the discovery document.
+     * Example: "Project". It will be left unspecified for resources (such as
+     * Cloud Bigtable) without a discovery-based API.
+     * 
+ * + * string discovery_name = 3; + */ + public Builder clearDiscoveryName() { + + discoveryName_ = getDefaultInstance().getDiscoveryName(); + onChanged(); + return this; + } + /** + *
+     * The JSON schema name listed in the discovery document.
+     * Example: "Project". It will be left unspecified for resources (such as
+     * Cloud Bigtable) without a discovery-based API.
+     * 
+ * + * string discovery_name = 3; + */ + public Builder setDiscoveryNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + discoveryName_ = value; + onChanged(); + return this; + } + + private java.lang.Object resourceUrl_ = ""; + /** + *
+     * The REST URL for accessing the resource. An HTTP GET operation using this
+     * URL returns the resource itself.
+     * Example:
+     * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+     * It will be left unspecified for resources without a REST API.
+     * 
+ * + * string resource_url = 4; + */ + public java.lang.String getResourceUrl() { + java.lang.Object ref = resourceUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + resourceUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The REST URL for accessing the resource. An HTTP GET operation using this
+     * URL returns the resource itself.
+     * Example:
+     * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+     * It will be left unspecified for resources without a REST API.
+     * 
+ * + * string resource_url = 4; + */ + public com.google.protobuf.ByteString + getResourceUrlBytes() { + java.lang.Object ref = resourceUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + resourceUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The REST URL for accessing the resource. An HTTP GET operation using this
+     * URL returns the resource itself.
+     * Example:
+     * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+     * It will be left unspecified for resources without a REST API.
+     * 
+ * + * string resource_url = 4; + */ + public Builder setResourceUrl( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + resourceUrl_ = value; + onChanged(); + return this; + } + /** + *
+     * The REST URL for accessing the resource. An HTTP GET operation using this
+     * URL returns the resource itself.
+     * Example:
+     * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+     * It will be left unspecified for resources without a REST API.
+     * 
+ * + * string resource_url = 4; + */ + public Builder clearResourceUrl() { + + resourceUrl_ = getDefaultInstance().getResourceUrl(); + onChanged(); + return this; + } + /** + *
+     * The REST URL for accessing the resource. An HTTP GET operation using this
+     * URL returns the resource itself.
+     * Example:
+     * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+     * It will be left unspecified for resources without a REST API.
+     * 
+ * + * string resource_url = 4; + */ + public Builder setResourceUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + resourceUrl_ = value; + onChanged(); + return this; + } + + private java.lang.Object parent_ = ""; + /** + *
+     * The full name of the immediate parent of this resource. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * For GCP assets, it is the parent resource defined in the IAM policy
+     * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+     * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+     * For third-party assets, it is up to the users to define.
+     * 
+ * + * string parent = 5; + */ + public java.lang.String getParent() { + java.lang.Object ref = parent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + parent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * The full name of the immediate parent of this resource. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * For GCP assets, it is the parent resource defined in the IAM policy
+     * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+     * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+     * For third-party assets, it is up to the users to define.
+     * 
+ * + * string parent = 5; + */ + public com.google.protobuf.ByteString + getParentBytes() { + java.lang.Object ref = parent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + parent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * The full name of the immediate parent of this resource. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * For GCP assets, it is the parent resource defined in the IAM policy
+     * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+     * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+     * For third-party assets, it is up to the users to define.
+     * 
+ * + * string parent = 5; + */ + public Builder setParent( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + parent_ = value; + onChanged(); + return this; + } + /** + *
+     * The full name of the immediate parent of this resource. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * For GCP assets, it is the parent resource defined in the IAM policy
+     * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+     * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+     * For third-party assets, it is up to the users to define.
+     * 
+ * + * string parent = 5; + */ + public Builder clearParent() { + + parent_ = getDefaultInstance().getParent(); + onChanged(); + return this; + } + /** + *
+     * The full name of the immediate parent of this resource. See:
+     * https://cloud.google.com/apis/design/resource_names#full_resource_name
+     * For GCP assets, it is the parent resource defined in the IAM policy
+     * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+     * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+     * For third-party assets, it is up to the users to define.
+     * 
+ * + * string parent = 5; + */ + public Builder setParentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + parent_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.Struct data_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> dataBuilder_; + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public boolean hasData() { + return dataBuilder_ != null || data_ != null; + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public com.google.protobuf.Struct getData() { + if (dataBuilder_ == null) { + return data_ == null ? com.google.protobuf.Struct.getDefaultInstance() : data_; + } else { + return dataBuilder_.getMessage(); + } + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public Builder setData(com.google.protobuf.Struct value) { + if (dataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + data_ = value; + onChanged(); + } else { + dataBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public Builder setData( + com.google.protobuf.Struct.Builder builderForValue) { + if (dataBuilder_ == null) { + data_ = builderForValue.build(); + onChanged(); + } else { + dataBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public Builder mergeData(com.google.protobuf.Struct value) { + if (dataBuilder_ == null) { + if (data_ != null) { + data_ = + com.google.protobuf.Struct.newBuilder(data_).mergeFrom(value).buildPartial(); + } else { + data_ = value; + } + onChanged(); + } else { + dataBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public Builder clearData() { + if (dataBuilder_ == null) { + data_ = null; + onChanged(); + } else { + data_ = null; + dataBuilder_ = null; + } + + return this; + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public com.google.protobuf.Struct.Builder getDataBuilder() { + + onChanged(); + return getDataFieldBuilder().getBuilder(); + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + public com.google.protobuf.StructOrBuilder getDataOrBuilder() { + if (dataBuilder_ != null) { + return dataBuilder_.getMessageOrBuilder(); + } else { + return data_ == null ? + com.google.protobuf.Struct.getDefaultInstance() : data_; + } + } + /** + *
+     * The content of the resource, in which some sensitive fields are scrubbed
+     * away and may not be present.
+     * 
+ * + * .google.protobuf.Struct data = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> + getDataFieldBuilder() { + if (dataBuilder_ == null) { + dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( + getData(), + getParentForChildren(), + isClean()); + data_ = null; + } + return dataBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.Resource) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.Resource) + private static final com.google.cloud.asset.v1beta1.Resource DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.Resource(); + } + + public static com.google.cloud.asset.v1beta1.Resource getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Resource parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Resource(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.Resource getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ResourceOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ResourceOrBuilder.java new file mode 100644 index 000000000000..15b6539a128c --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/ResourceOrBuilder.java @@ -0,0 +1,157 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +public interface ResourceOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.Resource) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The API version. Example: "v1".
+   * 
+ * + * string version = 1; + */ + java.lang.String getVersion(); + /** + *
+   * The API version. Example: "v1".
+   * 
+ * + * string version = 1; + */ + com.google.protobuf.ByteString + getVersionBytes(); + + /** + *
+   * The URL of the discovery document containing the resource's JSON schema.
+   * Example:
+   * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+   * It will be left unspecified for resources without a discovery-based API,
+   * such as Cloud Bigtable.
+   * 
+ * + * string discovery_document_uri = 2; + */ + java.lang.String getDiscoveryDocumentUri(); + /** + *
+   * The URL of the discovery document containing the resource's JSON schema.
+   * Example:
+   * "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest".
+   * It will be left unspecified for resources without a discovery-based API,
+   * such as Cloud Bigtable.
+   * 
+ * + * string discovery_document_uri = 2; + */ + com.google.protobuf.ByteString + getDiscoveryDocumentUriBytes(); + + /** + *
+   * The JSON schema name listed in the discovery document.
+   * Example: "Project". It will be left unspecified for resources (such as
+   * Cloud Bigtable) without a discovery-based API.
+   * 
+ * + * string discovery_name = 3; + */ + java.lang.String getDiscoveryName(); + /** + *
+   * The JSON schema name listed in the discovery document.
+   * Example: "Project". It will be left unspecified for resources (such as
+   * Cloud Bigtable) without a discovery-based API.
+   * 
+ * + * string discovery_name = 3; + */ + com.google.protobuf.ByteString + getDiscoveryNameBytes(); + + /** + *
+   * The REST URL for accessing the resource. An HTTP GET operation using this
+   * URL returns the resource itself.
+   * Example:
+   * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+   * It will be left unspecified for resources without a REST API.
+   * 
+ * + * string resource_url = 4; + */ + java.lang.String getResourceUrl(); + /** + *
+   * The REST URL for accessing the resource. An HTTP GET operation using this
+   * URL returns the resource itself.
+   * Example:
+   * `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
+   * It will be left unspecified for resources without a REST API.
+   * 
+ * + * string resource_url = 4; + */ + com.google.protobuf.ByteString + getResourceUrlBytes(); + + /** + *
+   * The full name of the immediate parent of this resource. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * For GCP assets, it is the parent resource defined in the IAM policy
+   * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+   * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+   * For third-party assets, it is up to the users to define.
+   * 
+ * + * string parent = 5; + */ + java.lang.String getParent(); + /** + *
+   * The full name of the immediate parent of this resource. See:
+   * https://cloud.google.com/apis/design/resource_names#full_resource_name
+   * For GCP assets, it is the parent resource defined in the IAM policy
+   * hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy.
+   * Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123".
+   * For third-party assets, it is up to the users to define.
+   * 
+ * + * string parent = 5; + */ + com.google.protobuf.ByteString + getParentBytes(); + + /** + *
+   * The content of the resource, in which some sensitive fields are scrubbed
+   * away and may not be present.
+   * 
+ * + * .google.protobuf.Struct data = 6; + */ + boolean hasData(); + /** + *
+   * The content of the resource, in which some sensitive fields are scrubbed
+   * away and may not be present.
+   * 
+ * + * .google.protobuf.Struct data = 6; + */ + com.google.protobuf.Struct getData(); + /** + *
+   * The content of the resource, in which some sensitive fields are scrubbed
+   * away and may not be present.
+   * 
+ * + * .google.protobuf.Struct data = 6; + */ + com.google.protobuf.StructOrBuilder getDataOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TemporalAsset.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TemporalAsset.java new file mode 100644 index 000000000000..517dccf7aa28 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TemporalAsset.java @@ -0,0 +1,957 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * Temporal asset. In addition to the asset, the temporal asset includes the
+ * status of the asset and valid from and to time of it.
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.TemporalAsset} + */ +public final class TemporalAsset extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.TemporalAsset) + TemporalAssetOrBuilder { +private static final long serialVersionUID = 0L; + // Use TemporalAsset.newBuilder() to construct. + private TemporalAsset(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TemporalAsset() { + deleted_ = false; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TemporalAsset( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.cloud.asset.v1beta1.TimeWindow.Builder subBuilder = null; + if (window_ != null) { + subBuilder = window_.toBuilder(); + } + window_ = input.readMessage(com.google.cloud.asset.v1beta1.TimeWindow.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(window_); + window_ = subBuilder.buildPartial(); + } + + break; + } + case 16: { + + deleted_ = input.readBool(); + break; + } + case 26: { + com.google.cloud.asset.v1beta1.Asset.Builder subBuilder = null; + if (asset_ != null) { + subBuilder = asset_.toBuilder(); + } + asset_ = input.readMessage(com.google.cloud.asset.v1beta1.Asset.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(asset_); + asset_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TemporalAsset_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TemporalAsset_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.TemporalAsset.class, com.google.cloud.asset.v1beta1.TemporalAsset.Builder.class); + } + + public static final int WINDOW_FIELD_NUMBER = 1; + private com.google.cloud.asset.v1beta1.TimeWindow window_; + /** + *
+   * The time window when the asset data and state was observed.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public boolean hasWindow() { + return window_ != null; + } + /** + *
+   * The time window when the asset data and state was observed.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public com.google.cloud.asset.v1beta1.TimeWindow getWindow() { + return window_ == null ? com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance() : window_; + } + /** + *
+   * The time window when the asset data and state was observed.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public com.google.cloud.asset.v1beta1.TimeWindowOrBuilder getWindowOrBuilder() { + return getWindow(); + } + + public static final int DELETED_FIELD_NUMBER = 2; + private boolean deleted_; + /** + *
+   * If the asset is deleted or not.
+   * 
+ * + * bool deleted = 2; + */ + public boolean getDeleted() { + return deleted_; + } + + public static final int ASSET_FIELD_NUMBER = 3; + private com.google.cloud.asset.v1beta1.Asset asset_; + /** + *
+   * Asset.
+   * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public boolean hasAsset() { + return asset_ != null; + } + /** + *
+   * Asset.
+   * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public com.google.cloud.asset.v1beta1.Asset getAsset() { + return asset_ == null ? com.google.cloud.asset.v1beta1.Asset.getDefaultInstance() : asset_; + } + /** + *
+   * Asset.
+   * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public com.google.cloud.asset.v1beta1.AssetOrBuilder getAssetOrBuilder() { + return getAsset(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (window_ != null) { + output.writeMessage(1, getWindow()); + } + if (deleted_ != false) { + output.writeBool(2, deleted_); + } + if (asset_ != null) { + output.writeMessage(3, getAsset()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (window_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getWindow()); + } + if (deleted_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, deleted_); + } + if (asset_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getAsset()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.TemporalAsset)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.TemporalAsset other = (com.google.cloud.asset.v1beta1.TemporalAsset) obj; + + boolean result = true; + result = result && (hasWindow() == other.hasWindow()); + if (hasWindow()) { + result = result && getWindow() + .equals(other.getWindow()); + } + result = result && (getDeleted() + == other.getDeleted()); + result = result && (hasAsset() == other.hasAsset()); + if (hasAsset()) { + result = result && getAsset() + .equals(other.getAsset()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasWindow()) { + hash = (37 * hash) + WINDOW_FIELD_NUMBER; + hash = (53 * hash) + getWindow().hashCode(); + } + hash = (37 * hash) + DELETED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDeleted()); + if (hasAsset()) { + hash = (37 * hash) + ASSET_FIELD_NUMBER; + hash = (53 * hash) + getAsset().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.TemporalAsset parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.TemporalAsset prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Temporal asset. In addition to the asset, the temporal asset includes the
+   * status of the asset and valid from and to time of it.
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.TemporalAsset} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.TemporalAsset) + com.google.cloud.asset.v1beta1.TemporalAssetOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TemporalAsset_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TemporalAsset_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.TemporalAsset.class, com.google.cloud.asset.v1beta1.TemporalAsset.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.TemporalAsset.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (windowBuilder_ == null) { + window_ = null; + } else { + window_ = null; + windowBuilder_ = null; + } + deleted_ = false; + + if (assetBuilder_ == null) { + asset_ = null; + } else { + asset_ = null; + assetBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TemporalAsset_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TemporalAsset getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.TemporalAsset.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TemporalAsset build() { + com.google.cloud.asset.v1beta1.TemporalAsset result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TemporalAsset buildPartial() { + com.google.cloud.asset.v1beta1.TemporalAsset result = new com.google.cloud.asset.v1beta1.TemporalAsset(this); + if (windowBuilder_ == null) { + result.window_ = window_; + } else { + result.window_ = windowBuilder_.build(); + } + result.deleted_ = deleted_; + if (assetBuilder_ == null) { + result.asset_ = asset_; + } else { + result.asset_ = assetBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.TemporalAsset) { + return mergeFrom((com.google.cloud.asset.v1beta1.TemporalAsset)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.TemporalAsset other) { + if (other == com.google.cloud.asset.v1beta1.TemporalAsset.getDefaultInstance()) return this; + if (other.hasWindow()) { + mergeWindow(other.getWindow()); + } + if (other.getDeleted() != false) { + setDeleted(other.getDeleted()); + } + if (other.hasAsset()) { + mergeAsset(other.getAsset()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.TemporalAsset parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.TemporalAsset) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private com.google.cloud.asset.v1beta1.TimeWindow window_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.TimeWindow, com.google.cloud.asset.v1beta1.TimeWindow.Builder, com.google.cloud.asset.v1beta1.TimeWindowOrBuilder> windowBuilder_; + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public boolean hasWindow() { + return windowBuilder_ != null || window_ != null; + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public com.google.cloud.asset.v1beta1.TimeWindow getWindow() { + if (windowBuilder_ == null) { + return window_ == null ? com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance() : window_; + } else { + return windowBuilder_.getMessage(); + } + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public Builder setWindow(com.google.cloud.asset.v1beta1.TimeWindow value) { + if (windowBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + window_ = value; + onChanged(); + } else { + windowBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public Builder setWindow( + com.google.cloud.asset.v1beta1.TimeWindow.Builder builderForValue) { + if (windowBuilder_ == null) { + window_ = builderForValue.build(); + onChanged(); + } else { + windowBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public Builder mergeWindow(com.google.cloud.asset.v1beta1.TimeWindow value) { + if (windowBuilder_ == null) { + if (window_ != null) { + window_ = + com.google.cloud.asset.v1beta1.TimeWindow.newBuilder(window_).mergeFrom(value).buildPartial(); + } else { + window_ = value; + } + onChanged(); + } else { + windowBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public Builder clearWindow() { + if (windowBuilder_ == null) { + window_ = null; + onChanged(); + } else { + window_ = null; + windowBuilder_ = null; + } + + return this; + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public com.google.cloud.asset.v1beta1.TimeWindow.Builder getWindowBuilder() { + + onChanged(); + return getWindowFieldBuilder().getBuilder(); + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + public com.google.cloud.asset.v1beta1.TimeWindowOrBuilder getWindowOrBuilder() { + if (windowBuilder_ != null) { + return windowBuilder_.getMessageOrBuilder(); + } else { + return window_ == null ? + com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance() : window_; + } + } + /** + *
+     * The time window when the asset data and state was observed.
+     * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.TimeWindow, com.google.cloud.asset.v1beta1.TimeWindow.Builder, com.google.cloud.asset.v1beta1.TimeWindowOrBuilder> + getWindowFieldBuilder() { + if (windowBuilder_ == null) { + windowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.TimeWindow, com.google.cloud.asset.v1beta1.TimeWindow.Builder, com.google.cloud.asset.v1beta1.TimeWindowOrBuilder>( + getWindow(), + getParentForChildren(), + isClean()); + window_ = null; + } + return windowBuilder_; + } + + private boolean deleted_ ; + /** + *
+     * If the asset is deleted or not.
+     * 
+ * + * bool deleted = 2; + */ + public boolean getDeleted() { + return deleted_; + } + /** + *
+     * If the asset is deleted or not.
+     * 
+ * + * bool deleted = 2; + */ + public Builder setDeleted(boolean value) { + + deleted_ = value; + onChanged(); + return this; + } + /** + *
+     * If the asset is deleted or not.
+     * 
+ * + * bool deleted = 2; + */ + public Builder clearDeleted() { + + deleted_ = false; + onChanged(); + return this; + } + + private com.google.cloud.asset.v1beta1.Asset asset_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.Asset, com.google.cloud.asset.v1beta1.Asset.Builder, com.google.cloud.asset.v1beta1.AssetOrBuilder> assetBuilder_; + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public boolean hasAsset() { + return assetBuilder_ != null || asset_ != null; + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public com.google.cloud.asset.v1beta1.Asset getAsset() { + if (assetBuilder_ == null) { + return asset_ == null ? com.google.cloud.asset.v1beta1.Asset.getDefaultInstance() : asset_; + } else { + return assetBuilder_.getMessage(); + } + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public Builder setAsset(com.google.cloud.asset.v1beta1.Asset value) { + if (assetBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + asset_ = value; + onChanged(); + } else { + assetBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public Builder setAsset( + com.google.cloud.asset.v1beta1.Asset.Builder builderForValue) { + if (assetBuilder_ == null) { + asset_ = builderForValue.build(); + onChanged(); + } else { + assetBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public Builder mergeAsset(com.google.cloud.asset.v1beta1.Asset value) { + if (assetBuilder_ == null) { + if (asset_ != null) { + asset_ = + com.google.cloud.asset.v1beta1.Asset.newBuilder(asset_).mergeFrom(value).buildPartial(); + } else { + asset_ = value; + } + onChanged(); + } else { + assetBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public Builder clearAsset() { + if (assetBuilder_ == null) { + asset_ = null; + onChanged(); + } else { + asset_ = null; + assetBuilder_ = null; + } + + return this; + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public com.google.cloud.asset.v1beta1.Asset.Builder getAssetBuilder() { + + onChanged(); + return getAssetFieldBuilder().getBuilder(); + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + public com.google.cloud.asset.v1beta1.AssetOrBuilder getAssetOrBuilder() { + if (assetBuilder_ != null) { + return assetBuilder_.getMessageOrBuilder(); + } else { + return asset_ == null ? + com.google.cloud.asset.v1beta1.Asset.getDefaultInstance() : asset_; + } + } + /** + *
+     * Asset.
+     * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.Asset, com.google.cloud.asset.v1beta1.Asset.Builder, com.google.cloud.asset.v1beta1.AssetOrBuilder> + getAssetFieldBuilder() { + if (assetBuilder_ == null) { + assetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.asset.v1beta1.Asset, com.google.cloud.asset.v1beta1.Asset.Builder, com.google.cloud.asset.v1beta1.AssetOrBuilder>( + getAsset(), + getParentForChildren(), + isClean()); + asset_ = null; + } + return assetBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.TemporalAsset) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.TemporalAsset) + private static final com.google.cloud.asset.v1beta1.TemporalAsset DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.TemporalAsset(); + } + + public static com.google.cloud.asset.v1beta1.TemporalAsset getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TemporalAsset parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new TemporalAsset(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TemporalAsset getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TemporalAssetOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TemporalAssetOrBuilder.java new file mode 100644 index 000000000000..915f2ba359e5 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TemporalAssetOrBuilder.java @@ -0,0 +1,68 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +public interface TemporalAssetOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.TemporalAsset) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * The time window when the asset data and state was observed.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + boolean hasWindow(); + /** + *
+   * The time window when the asset data and state was observed.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + com.google.cloud.asset.v1beta1.TimeWindow getWindow(); + /** + *
+   * The time window when the asset data and state was observed.
+   * 
+ * + * .google.cloud.asset.v1beta1.TimeWindow window = 1; + */ + com.google.cloud.asset.v1beta1.TimeWindowOrBuilder getWindowOrBuilder(); + + /** + *
+   * If the asset is deleted or not.
+   * 
+ * + * bool deleted = 2; + */ + boolean getDeleted(); + + /** + *
+   * Asset.
+   * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + boolean hasAsset(); + /** + *
+   * Asset.
+   * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + com.google.cloud.asset.v1beta1.Asset getAsset(); + /** + *
+   * Asset.
+   * 
+ * + * .google.cloud.asset.v1beta1.Asset asset = 3; + */ + com.google.cloud.asset.v1beta1.AssetOrBuilder getAssetOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TimeWindow.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TimeWindow.java new file mode 100644 index 000000000000..38afd096dc7b --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TimeWindow.java @@ -0,0 +1,892 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +/** + *
+ * A time window of [start_time, end_time).
+ * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.TimeWindow} + */ +public final class TimeWindow extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.cloud.asset.v1beta1.TimeWindow) + TimeWindowOrBuilder { +private static final long serialVersionUID = 0L; + // Use TimeWindow.newBuilder() to construct. + private TimeWindow(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TimeWindow() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private TimeWindow( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (startTime_ != null) { + subBuilder = startTime_.toBuilder(); + } + startTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(startTime_); + startTime_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (endTime_ != null) { + subBuilder = endTime_.toBuilder(); + } + endTime_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(endTime_); + endTime_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TimeWindow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TimeWindow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.TimeWindow.class, com.google.cloud.asset.v1beta1.TimeWindow.Builder.class); + } + + public static final int START_TIME_FIELD_NUMBER = 1; + private com.google.protobuf.Timestamp startTime_; + /** + *
+   * Start time of the time window (inclusive).
+   * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public boolean hasStartTime() { + return startTime_ != null; + } + /** + *
+   * Start time of the time window (inclusive).
+   * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public com.google.protobuf.Timestamp getStartTime() { + return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_; + } + /** + *
+   * Start time of the time window (inclusive).
+   * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() { + return getStartTime(); + } + + public static final int END_TIME_FIELD_NUMBER = 2; + private com.google.protobuf.Timestamp endTime_; + /** + *
+   * End time of the time window (exclusive).
+   * Current timestamp if not specified.
+   * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public boolean hasEndTime() { + return endTime_ != null; + } + /** + *
+   * End time of the time window (exclusive).
+   * Current timestamp if not specified.
+   * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public com.google.protobuf.Timestamp getEndTime() { + return endTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : endTime_; + } + /** + *
+   * End time of the time window (exclusive).
+   * Current timestamp if not specified.
+   * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() { + return getEndTime(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (startTime_ != null) { + output.writeMessage(1, getStartTime()); + } + if (endTime_ != null) { + output.writeMessage(2, getEndTime()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (startTime_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getStartTime()); + } + if (endTime_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getEndTime()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.asset.v1beta1.TimeWindow)) { + return super.equals(obj); + } + com.google.cloud.asset.v1beta1.TimeWindow other = (com.google.cloud.asset.v1beta1.TimeWindow) obj; + + boolean result = true; + result = result && (hasStartTime() == other.hasStartTime()); + if (hasStartTime()) { + result = result && getStartTime() + .equals(other.getStartTime()); + } + result = result && (hasEndTime() == other.hasEndTime()); + if (hasEndTime()) { + result = result && getEndTime() + .equals(other.getEndTime()); + } + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasStartTime()) { + hash = (37 * hash) + START_TIME_FIELD_NUMBER; + hash = (53 * hash) + getStartTime().hashCode(); + } + if (hasEndTime()) { + hash = (37 * hash) + END_TIME_FIELD_NUMBER; + hash = (53 * hash) + getEndTime().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.cloud.asset.v1beta1.TimeWindow parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.cloud.asset.v1beta1.TimeWindow prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * A time window of [start_time, end_time).
+   * 
+ * + * Protobuf type {@code google.cloud.asset.v1beta1.TimeWindow} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.cloud.asset.v1beta1.TimeWindow) + com.google.cloud.asset.v1beta1.TimeWindowOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TimeWindow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TimeWindow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.asset.v1beta1.TimeWindow.class, com.google.cloud.asset.v1beta1.TimeWindow.Builder.class); + } + + // Construct using com.google.cloud.asset.v1beta1.TimeWindow.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (startTimeBuilder_ == null) { + startTime_ = null; + } else { + startTime_ = null; + startTimeBuilder_ = null; + } + if (endTimeBuilder_ == null) { + endTime_ = null; + } else { + endTime_ = null; + endTimeBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.cloud.asset.v1beta1.AssetProto.internal_static_google_cloud_asset_v1beta1_TimeWindow_descriptor; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TimeWindow getDefaultInstanceForType() { + return com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TimeWindow build() { + com.google.cloud.asset.v1beta1.TimeWindow result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TimeWindow buildPartial() { + com.google.cloud.asset.v1beta1.TimeWindow result = new com.google.cloud.asset.v1beta1.TimeWindow(this); + if (startTimeBuilder_ == null) { + result.startTime_ = startTime_; + } else { + result.startTime_ = startTimeBuilder_.build(); + } + if (endTimeBuilder_ == null) { + result.endTime_ = endTime_; + } else { + result.endTime_ = endTimeBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.asset.v1beta1.TimeWindow) { + return mergeFrom((com.google.cloud.asset.v1beta1.TimeWindow)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.asset.v1beta1.TimeWindow other) { + if (other == com.google.cloud.asset.v1beta1.TimeWindow.getDefaultInstance()) return this; + if (other.hasStartTime()) { + mergeStartTime(other.getStartTime()); + } + if (other.hasEndTime()) { + mergeEndTime(other.getEndTime()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.cloud.asset.v1beta1.TimeWindow parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.cloud.asset.v1beta1.TimeWindow) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private com.google.protobuf.Timestamp startTime_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> startTimeBuilder_; + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public boolean hasStartTime() { + return startTimeBuilder_ != null || startTime_ != null; + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public com.google.protobuf.Timestamp getStartTime() { + if (startTimeBuilder_ == null) { + return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_; + } else { + return startTimeBuilder_.getMessage(); + } + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public Builder setStartTime(com.google.protobuf.Timestamp value) { + if (startTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + startTime_ = value; + onChanged(); + } else { + startTimeBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public Builder setStartTime( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (startTimeBuilder_ == null) { + startTime_ = builderForValue.build(); + onChanged(); + } else { + startTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public Builder mergeStartTime(com.google.protobuf.Timestamp value) { + if (startTimeBuilder_ == null) { + if (startTime_ != null) { + startTime_ = + com.google.protobuf.Timestamp.newBuilder(startTime_).mergeFrom(value).buildPartial(); + } else { + startTime_ = value; + } + onChanged(); + } else { + startTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public Builder clearStartTime() { + if (startTimeBuilder_ == null) { + startTime_ = null; + onChanged(); + } else { + startTime_ = null; + startTimeBuilder_ = null; + } + + return this; + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public com.google.protobuf.Timestamp.Builder getStartTimeBuilder() { + + onChanged(); + return getStartTimeFieldBuilder().getBuilder(); + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() { + if (startTimeBuilder_ != null) { + return startTimeBuilder_.getMessageOrBuilder(); + } else { + return startTime_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : startTime_; + } + } + /** + *
+     * Start time of the time window (inclusive).
+     * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getStartTimeFieldBuilder() { + if (startTimeBuilder_ == null) { + startTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getStartTime(), + getParentForChildren(), + isClean()); + startTime_ = null; + } + return startTimeBuilder_; + } + + private com.google.protobuf.Timestamp endTime_ = null; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> endTimeBuilder_; + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public boolean hasEndTime() { + return endTimeBuilder_ != null || endTime_ != null; + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public com.google.protobuf.Timestamp getEndTime() { + if (endTimeBuilder_ == null) { + return endTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : endTime_; + } else { + return endTimeBuilder_.getMessage(); + } + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public Builder setEndTime(com.google.protobuf.Timestamp value) { + if (endTimeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endTime_ = value; + onChanged(); + } else { + endTimeBuilder_.setMessage(value); + } + + return this; + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public Builder setEndTime( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (endTimeBuilder_ == null) { + endTime_ = builderForValue.build(); + onChanged(); + } else { + endTimeBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public Builder mergeEndTime(com.google.protobuf.Timestamp value) { + if (endTimeBuilder_ == null) { + if (endTime_ != null) { + endTime_ = + com.google.protobuf.Timestamp.newBuilder(endTime_).mergeFrom(value).buildPartial(); + } else { + endTime_ = value; + } + onChanged(); + } else { + endTimeBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public Builder clearEndTime() { + if (endTimeBuilder_ == null) { + endTime_ = null; + onChanged(); + } else { + endTime_ = null; + endTimeBuilder_ = null; + } + + return this; + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public com.google.protobuf.Timestamp.Builder getEndTimeBuilder() { + + onChanged(); + return getEndTimeFieldBuilder().getBuilder(); + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() { + if (endTimeBuilder_ != null) { + return endTimeBuilder_.getMessageOrBuilder(); + } else { + return endTime_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : endTime_; + } + } + /** + *
+     * End time of the time window (exclusive).
+     * Current timestamp if not specified.
+     * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getEndTimeFieldBuilder() { + if (endTimeBuilder_ == null) { + endTimeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getEndTime(), + getParentForChildren(), + isClean()); + endTime_ = null; + } + return endTimeBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1beta1.TimeWindow) + } + + // @@protoc_insertion_point(class_scope:google.cloud.asset.v1beta1.TimeWindow) + private static final com.google.cloud.asset.v1beta1.TimeWindow DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.cloud.asset.v1beta1.TimeWindow(); + } + + public static com.google.cloud.asset.v1beta1.TimeWindow getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TimeWindow parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new TimeWindow(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.asset.v1beta1.TimeWindow getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TimeWindowOrBuilder.java b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TimeWindowOrBuilder.java new file mode 100644 index 000000000000..ed8fb4bc6080 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/java/com/google/cloud/asset/v1beta1/TimeWindowOrBuilder.java @@ -0,0 +1,62 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/asset/v1beta1/assets.proto + +package com.google.cloud.asset.v1beta1; + +public interface TimeWindowOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1beta1.TimeWindow) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * Start time of the time window (inclusive).
+   * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + boolean hasStartTime(); + /** + *
+   * Start time of the time window (inclusive).
+   * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + com.google.protobuf.Timestamp getStartTime(); + /** + *
+   * Start time of the time window (inclusive).
+   * 
+ * + * .google.protobuf.Timestamp start_time = 1; + */ + com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder(); + + /** + *
+   * End time of the time window (exclusive).
+   * Current timestamp if not specified.
+   * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + boolean hasEndTime(); + /** + *
+   * End time of the time window (exclusive).
+   * Current timestamp if not specified.
+   * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + com.google.protobuf.Timestamp getEndTime(); + /** + *
+   * End time of the time window (exclusive).
+   * Current timestamp if not specified.
+   * 
+ * + * .google.protobuf.Timestamp end_time = 2; + */ + com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder(); +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/proto/google/cloud/asset/v1beta1/asset_service.proto b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/proto/google/cloud/asset/v1beta1/asset_service.proto new file mode 100644 index 000000000000..b64502f68e42 --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/proto/google/cloud/asset/v1beta1/asset_service.proto @@ -0,0 +1,163 @@ +// Copyright 2018 Google LLC. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +syntax = "proto3"; + +package google.cloud.asset.v1beta1; + +import "google/api/annotations.proto"; +import "google/cloud/asset/v1beta1/assets.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Asset.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/asset/v1beta1;asset"; +option java_multiple_files = true; +option java_outer_classname = "AssetServiceProto"; +option java_package = "com.google.cloud.asset.v1beta1"; +option php_namespace = "Google\\Cloud\\Asset\\V1beta1"; + + +// Asset service definition. +service AssetService { + // Exports assets with time and resource types to a given Google Cloud Storage + // location. The output format is newline-delimited JSON. + // This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing users + // to keep track of the export. + rpc ExportAssets(ExportAssetsRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*}:exportAssets" + body: "*" + additional_bindings { + post: "/v1beta1/{parent=organizations/*}:exportAssets" + body: "*" + } + }; + } + + // Batch gets assets update history that overlaps a time window. + // For RESOURCE content, this API outputs history with asset in both + // non-delete or deleted status. + // For IAM_POLICY content, this API only outputs history when asset and its + // attached IAM POLICY both exist. So there may be gaps in the output history. + rpc BatchGetAssetsHistory(BatchGetAssetsHistoryRequest) returns (BatchGetAssetsHistoryResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*}:batchGetAssetsHistory" + additional_bindings { + get: "/v1beta1/{parent=organizations/*}:batchGetAssetHistory" + } + }; + } +} + +// Export asset request. +message ExportAssetsRequest { + // Required. The relative name of the root asset. Can only be an organization + // number (such as "organizations/123"), or a project id (such as + // "projects/my-project-id") or a project number (such as "projects/12345"). + string parent = 1; + + // Timestamp to take an asset snapshot. This can only be set to a timestamp in + // the past or of the current time. If not specified, the current time will be + // used. Due to delays in resource data collection and indexing, there is a + // volatile window during which running the same query may get different + // results. + google.protobuf.Timestamp read_time = 2; + + // A list of asset types of which to take a snapshot for. Example: + // "google.compute.disk". If specified, only matching assets will be returned. + repeated string asset_types = 3; + + // Asset content type. If not specified, no content but the asset name will be + // returned. + ContentType content_type = 4; + + // Required. Output configuration indicating where the results will be output + // to. All results will be in newline delimited JSON format. + OutputConfig output_config = 5; +} + +// The export asset response. This message is returned by the +// [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned +// [google.longrunning.Operation.response][google.longrunning.Operation.response] field. +message ExportAssetsResponse { + // Time the snapshot was taken. + google.protobuf.Timestamp read_time = 1; + + // Output configuration indicating where the results were output to. + // All results are in JSON format. + OutputConfig output_config = 2; +} + +// Batch get assets history request. +message BatchGetAssetsHistoryRequest { + // Required. The relative name of the root asset. It can only be an + // organization number (such as "organizations/123"), or a project id (such as + // "projects/my-project-id")"or a project number (such as "projects/12345"). + string parent = 1; + + // A list of the full names of the assets. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + // Example: + // "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1". + // + // The request becomes a no-op if the asset name list is empty, and the max + // size of the asset name list is 100 in one request. + repeated string asset_names = 2; + + // Required. The content type. + ContentType content_type = 3; + + // Required. The time window for the asset history. The start time is + // required. The returned results contain all temporal assets whose time + // window overlap with read_time_window. + TimeWindow read_time_window = 4; +} + +// Batch get assets history response. +message BatchGetAssetsHistoryResponse { + // A list of assets with valid time windows. + repeated TemporalAsset assets = 1; +} + +// Output configuration for export assets destination. +message OutputConfig { + // Asset export destination. + oneof destination { + // Destination on Google Cloud Storage (GCS). + GcsDestination gcs_destination = 1; + } +} + +// A Google Cloud Storage (GCS) location. +message GcsDestination { + // The path of the GCS objects. It's the same path that is used by gsutil, for + // example: "gs://bucket_name/object_path". See: + // https://cloud.google.com/storage/docs/viewing-editing-metadata for more + // information. + string uri = 1; +} + +// Asset content type. +enum ContentType { + // Unspecified content type. + CONTENT_TYPE_UNSPECIFIED = 0; + + // Resource metadata. + RESOURCE = 1; + + // The actual IAM policy set on a resource. + IAM_POLICY = 2; +} diff --git a/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/proto/google/cloud/asset/v1beta1/assets.proto b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/proto/google/cloud/asset/v1beta1/assets.proto new file mode 100644 index 000000000000..db270b0879fa --- /dev/null +++ b/google-api-grpc/proto-google-cloud-cloudasset-v1beta1/src/main/proto/google/cloud/asset/v1beta1/assets.proto @@ -0,0 +1,114 @@ +// Copyright 2018 Google LLC. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +syntax = "proto3"; + +package google.cloud.asset.v1beta1; + +import "google/api/annotations.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.Asset.V1Beta1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/asset/v1beta1;asset"; +option java_multiple_files = true; +option java_outer_classname = "AssetProto"; +option java_package = "com.google.cloud.asset.v1beta1"; +option php_namespace = "Google\\Cloud\\Asset\\V1beta1"; + + +// Temporal asset. In addition to the asset, the temporal asset includes the +// status of the asset and valid from and to time of it. +message TemporalAsset { + // The time window when the asset data and state was observed. + TimeWindow window = 1; + + // If the asset is deleted or not. + bool deleted = 2; + + // Asset. + Asset asset = 3; +} + +// A time window of [start_time, end_time). +message TimeWindow { + // Start time of the time window (inclusive). + google.protobuf.Timestamp start_time = 1; + + // End time of the time window (exclusive). + // Current timestamp if not specified. + google.protobuf.Timestamp end_time = 2; +} + +// Cloud asset. This include all Google Cloud Platform resources, as well as +// IAM policies and other non-GCP assets. +message Asset { + // The full name of the asset. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + // Example: + // "//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1". + string name = 1; + + // Type of the asset. Example: "google.compute.disk". + string asset_type = 2; + + // Representation of the resource. + Resource resource = 3; + + // Representation of the actual IAM policy set on a cloud resource. For each + // resource, there must be at most one IAM policy set on it. + google.iam.v1.Policy iam_policy = 4; +} + +// Representation of a cloud resource. +message Resource { + // The API version. Example: "v1". + string version = 1; + + // The URL of the discovery document containing the resource's JSON schema. + // Example: + // "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest". + // It will be left unspecified for resources without a discovery-based API, + // such as Cloud Bigtable. + string discovery_document_uri = 2; + + // The JSON schema name listed in the discovery document. + // Example: "Project". It will be left unspecified for resources (such as + // Cloud Bigtable) without a discovery-based API. + string discovery_name = 3; + + // The REST URL for accessing the resource. An HTTP GET operation using this + // URL returns the resource itself. + // Example: + // `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`. + // It will be left unspecified for resources without a REST API. + string resource_url = 4; + + // The full name of the immediate parent of this resource. See: + // https://cloud.google.com/apis/design/resource_names#full_resource_name + // + // For GCP assets, it is the parent resource defined in the IAM policy + // hierarchy: https://cloud.google.com/iam/docs/overview#policy_hierarchy. + // Example: "//cloudresourcemanager.googleapis.com/projects/my_project_123". + // + // For third-party assets, it is up to the users to define. + string parent = 5; + + // The content of the resource, in which some sensitive fields are scrubbed + // away and may not be present. + google.protobuf.Struct data = 6; +} diff --git a/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java b/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java index c619ee9cdbf3..3740e5df6c2e 100644 --- a/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java +++ b/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java @@ -334,7 +334,7 @@ public java.lang.String getStatusDetail() { private boolean cancelRequested_; /** *
-   * Specifies if cancellation was requested for the operaiton.
+   * Specifies if cancellation was requested for the operation.
    * 
* * bool cancel_requested = 6; @@ -1397,7 +1397,7 @@ public Builder setStatusDetailBytes( private boolean cancelRequested_ ; /** *
-     * Specifies if cancellation was requested for the operaiton.
+     * Specifies if cancellation was requested for the operation.
      * 
* * bool cancel_requested = 6; @@ -1407,7 +1407,7 @@ public boolean getCancelRequested() { } /** *
-     * Specifies if cancellation was requested for the operaiton.
+     * Specifies if cancellation was requested for the operation.
      * 
* * bool cancel_requested = 6; @@ -1420,7 +1420,7 @@ public Builder setCancelRequested(boolean value) { } /** *
-     * Specifies if cancellation was requested for the operaiton.
+     * Specifies if cancellation was requested for the operation.
      * 
* * bool cancel_requested = 6; diff --git a/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadataOrBuilder.java b/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadataOrBuilder.java index 232e762aea2b..e849fdf497bc 100644 --- a/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadataOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadataOrBuilder.java @@ -113,7 +113,7 @@ public interface OperationMetadataOrBuilder extends /** *
-   * Specifies if cancellation was requested for the operaiton.
+   * Specifies if cancellation was requested for the operation.
    * 
* * bool cancel_requested = 6; diff --git a/google-api-grpc/proto-google-cloud-redis-v1/src/main/proto/google/cloud/redis/v1/cloud_redis.proto b/google-api-grpc/proto-google-cloud-redis-v1/src/main/proto/google/cloud/redis/v1/cloud_redis.proto index bf2cc0fe6b04..08cdf270cdf7 100644 --- a/google-api-grpc/proto-google-cloud-redis-v1/src/main/proto/google/cloud/redis/v1/cloud_redis.proto +++ b/google-api-grpc/proto-google-cloud-redis-v1/src/main/proto/google/cloud/redis/v1/cloud_redis.proto @@ -342,7 +342,7 @@ message OperationMetadata { // Operation status details. string status_detail = 5; - // Specifies if cancellation was requested for the operaiton. + // Specifies if cancellation was requested for the operation. bool cancel_requested = 6; // API version. diff --git a/google-api-grpc/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto b/google-api-grpc/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto index 89f7343c814b..56dbff19e17b 100644 --- a/google-api-grpc/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto +++ b/google-api-grpc/proto-google-cloud-spanner-admin-database-v1/src/main/proto/google/spanner/admin/database/v1/spanner_database_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2018 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google-api-grpc/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto b/google-api-grpc/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto index 23d315bc1746..e960e5428e3a 100644 --- a/google-api-grpc/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto +++ b/google-api-grpc/proto-google-cloud-spanner-admin-instance-v1/src/main/proto/google/spanner/admin/instance/v1/spanner_instance_admin.proto @@ -1,4 +1,4 @@ -// Copyright 2018 Google Inc. +// Copyright 2018 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java index cde1cf05aae8..3acf5bc0f359 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequest.java @@ -26,6 +26,7 @@ private ExecuteSqlRequest() { resumeToken_ = com.google.protobuf.ByteString.EMPTY; queryMode_ = 0; partitionToken_ = com.google.protobuf.ByteString.EMPTY; + seqno_ = 0L; } @java.lang.Override @@ -119,6 +120,11 @@ private ExecuteSqlRequest( partitionToken_ = input.readBytes(); break; } + case 72: { + + seqno_ = input.readInt64(); + break; + } default: { if (!parseUnknownFieldProto3( input, unknownFields, extensionRegistry, tag)) { @@ -165,7 +171,7 @@ protected com.google.protobuf.MapField internalGetMapField( /** *
-   * Mode in which the query must be processed.
+   * Mode in which the statement must be processed.
    * 
* * Protobuf enum {@code google.spanner.v1.ExecuteSqlRequest.QueryMode} @@ -174,8 +180,7 @@ public enum QueryMode implements com.google.protobuf.ProtocolMessageEnum { /** *
-     * The default mode where only the query result, without any information
-     * about the query plan is returned.
+     * The default mode. Only the statement results are returned.
      * 
* * NORMAL = 0; @@ -183,7 +188,7 @@ public enum QueryMode NORMAL(0), /** *
-     * This mode returns only the query plan, without any result rows or
+     * This mode returns only the query plan, without any results or
      * execution statistics information.
      * 
* @@ -193,7 +198,7 @@ public enum QueryMode /** *
      * This mode returns both the query plan and the execution statistics along
-     * with the result rows.
+     * with the results.
      * 
* * PROFILE = 2; @@ -204,8 +209,7 @@ public enum QueryMode /** *
-     * The default mode where only the query result, without any information
-     * about the query plan is returned.
+     * The default mode. Only the statement results are returned.
      * 
* * NORMAL = 0; @@ -213,7 +217,7 @@ public enum QueryMode public static final int NORMAL_VALUE = 0; /** *
-     * This mode returns only the query plan, without any result rows or
+     * This mode returns only the query plan, without any results or
      * execution statistics information.
      * 
* @@ -223,7 +227,7 @@ public enum QueryMode /** *
      * This mode returns both the query plan and the execution statistics along
-     * with the result rows.
+     * with the results.
      * 
* * PROFILE = 2; @@ -353,6 +357,13 @@ public java.lang.String getSession() { *
    * The transaction to use. If none is provided, the default is a
    * temporary read-only transaction with strong concurrency.
+   * The transaction to use.
+   * For queries, if none is provided, the default is a temporary read-only
+   * transaction with strong concurrency.
+   * Standard DML statements require a ReadWrite transaction. Single-use
+   * transactions are not supported (to avoid replay).  The caller must
+   * either supply an existing transaction ID or begin a new transaction.
+   * Partitioned DML requires an existing PartitionedDml transaction ID.
    * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -364,6 +375,13 @@ public boolean hasTransaction() { *
    * The transaction to use. If none is provided, the default is a
    * temporary read-only transaction with strong concurrency.
+   * The transaction to use.
+   * For queries, if none is provided, the default is a temporary read-only
+   * transaction with strong concurrency.
+   * Standard DML statements require a ReadWrite transaction. Single-use
+   * transactions are not supported (to avoid replay).  The caller must
+   * either supply an existing transaction ID or begin a new transaction.
+   * Partitioned DML requires an existing PartitionedDml transaction ID.
    * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -375,6 +393,13 @@ public com.google.spanner.v1.TransactionSelector getTransaction() { *
    * The transaction to use. If none is provided, the default is a
    * temporary read-only transaction with strong concurrency.
+   * The transaction to use.
+   * For queries, if none is provided, the default is a temporary read-only
+   * transaction with strong concurrency.
+   * Standard DML statements require a ReadWrite transaction. Single-use
+   * transactions are not supported (to avoid replay).  The caller must
+   * either supply an existing transaction ID or begin a new transaction.
+   * Partitioned DML requires an existing PartitionedDml transaction ID.
    * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -387,7 +412,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde private volatile java.lang.Object sql_; /** *
-   * Required. The SQL query string.
+   * Required. The SQL string.
    * 
* * string sql = 3; @@ -406,7 +431,7 @@ public java.lang.String getSql() { } /** *
-   * Required. The SQL query string.
+   * Required. The SQL string.
    * 
* * string sql = 3; @@ -429,14 +454,14 @@ public java.lang.String getSql() { private com.google.protobuf.Struct params_; /** *
-   * The SQL query string can contain parameter placeholders. A parameter
+   * The SQL string can contain parameter placeholders. A parameter
    * placeholder consists of `'@'` followed by the parameter
    * name. Parameter names consist of any combination of letters,
    * numbers, and underscores.
    * Parameters can appear anywhere that a literal value is expected.  The same
    * parameter name can be used more than once, for example:
    *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-   * It is an error to execute an SQL query with unbound parameters.
+   * It is an error to execute an SQL statement with unbound parameters.
    * Parameter values are specified using `params`, which is a JSON
    * object whose keys are parameter names, and whose values are the
    * corresponding parameter values.
@@ -449,14 +474,14 @@ public boolean hasParams() {
   }
   /**
    * 
-   * The SQL query string can contain parameter placeholders. A parameter
+   * The SQL string can contain parameter placeholders. A parameter
    * placeholder consists of `'@'` followed by the parameter
    * name. Parameter names consist of any combination of letters,
    * numbers, and underscores.
    * Parameters can appear anywhere that a literal value is expected.  The same
    * parameter name can be used more than once, for example:
    *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-   * It is an error to execute an SQL query with unbound parameters.
+   * It is an error to execute an SQL statement with unbound parameters.
    * Parameter values are specified using `params`, which is a JSON
    * object whose keys are parameter names, and whose values are the
    * corresponding parameter values.
@@ -469,14 +494,14 @@ public com.google.protobuf.Struct getParams() {
   }
   /**
    * 
-   * The SQL query string can contain parameter placeholders. A parameter
+   * The SQL string can contain parameter placeholders. A parameter
    * placeholder consists of `'@'` followed by the parameter
    * name. Parameter names consist of any combination of letters,
    * numbers, and underscores.
    * Parameters can appear anywhere that a literal value is expected.  The same
    * parameter name can be used more than once, for example:
    *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-   * It is an error to execute an SQL query with unbound parameters.
+   * It is an error to execute an SQL statement with unbound parameters.
    * Parameter values are specified using `params`, which is a JSON
    * object whose keys are parameter names, and whose values are the
    * corresponding parameter values.
@@ -520,7 +545,7 @@ public int getParamTypesCount() {
    * from a JSON value.  For example, values of type `BYTES` and values
    * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings.
    * In these cases, `param_types` can be used to specify the exact
-   * SQL type for some or all of the SQL query parameters. See the
+   * SQL type for some or all of the SQL statement parameters. See the
    * definition of [Type][google.spanner.v1.Type] for more information
    * about SQL types.
    * 
@@ -546,7 +571,7 @@ public java.util.Map getParamTypes * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -563,7 +588,7 @@ public java.util.Map getParamTypes * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -585,7 +610,7 @@ public com.google.spanner.v1.Type getParamTypesOrDefault( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. * @@ -608,10 +633,10 @@ public com.google.spanner.v1.Type getParamTypesOrThrow( private com.google.protobuf.ByteString resumeToken_; /** *
-   * If this request is resuming a previously interrupted SQL query
+   * If this request is resuming a previously interrupted SQL statement
    * execution, `resume_token` should be copied from the last
    * [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
-   * enables the new SQL query execution to resume where the last one left
+   * enables the new SQL statement execution to resume where the last one left
    * off. The rest of the request parameters must exactly match the
    * request that yielded this token.
    * 
@@ -667,6 +692,26 @@ public com.google.protobuf.ByteString getPartitionToken() { return partitionToken_; } + public static final int SEQNO_FIELD_NUMBER = 9; + private long seqno_; + /** + *
+   * A per-transaction sequence number used to identify this request. This
+   * makes each request idempotent such that if the request is received multiple
+   * times, at most one will succeed.
+   * The sequence number must be monotonically increasing within the
+   * transaction. If a request arrives for the first time with an out-of-order
+   * sequence number, the transaction may be aborted. Replays of previously
+   * handled requests will yield the same response as the first execution.
+   * Required for DML statements. Ignored for queries.
+   * 
+ * + * int64 seqno = 9; + */ + public long getSeqno() { + return seqno_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -708,6 +753,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!partitionToken_.isEmpty()) { output.writeBytes(8, partitionToken_); } + if (seqno_ != 0L) { + output.writeInt64(9, seqno_); + } unknownFields.writeTo(output); } @@ -753,6 +801,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(8, partitionToken_); } + if (seqno_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(9, seqno_); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -790,6 +842,8 @@ public boolean equals(final java.lang.Object obj) { result = result && queryMode_ == other.queryMode_; result = result && getPartitionToken() .equals(other.getPartitionToken()); + result = result && (getSeqno() + == other.getSeqno()); result = result && unknownFields.equals(other.unknownFields); return result; } @@ -823,6 +877,9 @@ public int hashCode() { hash = (53 * hash) + queryMode_; hash = (37 * hash) + PARTITION_TOKEN_FIELD_NUMBER; hash = (53 * hash) + getPartitionToken().hashCode(); + hash = (37 * hash) + SEQNO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSeqno()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -1006,6 +1063,8 @@ public Builder clear() { partitionToken_ = com.google.protobuf.ByteString.EMPTY; + seqno_ = 0L; + return this; } @@ -1051,6 +1110,7 @@ public com.google.spanner.v1.ExecuteSqlRequest buildPartial() { result.resumeToken_ = resumeToken_; result.queryMode_ = queryMode_; result.partitionToken_ = partitionToken_; + result.seqno_ = seqno_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -1125,6 +1185,9 @@ public Builder mergeFrom(com.google.spanner.v1.ExecuteSqlRequest other) { if (other.getPartitionToken() != com.google.protobuf.ByteString.EMPTY) { setPartitionToken(other.getPartitionToken()); } + if (other.getSeqno() != 0L) { + setSeqno(other.getSeqno()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -1251,6 +1314,13 @@ public Builder setSessionBytes( *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1262,6 +1332,13 @@ public boolean hasTransaction() { *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1277,6 +1354,13 @@ public com.google.spanner.v1.TransactionSelector getTransaction() { *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1298,6 +1382,13 @@ public Builder setTransaction(com.google.spanner.v1.TransactionSelector value) { *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1317,6 +1408,13 @@ public Builder setTransaction( *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1340,6 +1438,13 @@ public Builder mergeTransaction(com.google.spanner.v1.TransactionSelector value) *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1359,6 +1464,13 @@ public Builder clearTransaction() { *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1372,6 +1484,13 @@ public com.google.spanner.v1.TransactionSelector.Builder getTransactionBuilder() *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1388,6 +1507,13 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde *
      * The transaction to use. If none is provided, the default is a
      * temporary read-only transaction with strong concurrency.
+     * The transaction to use.
+     * For queries, if none is provided, the default is a temporary read-only
+     * transaction with strong concurrency.
+     * Standard DML statements require a ReadWrite transaction. Single-use
+     * transactions are not supported (to avoid replay).  The caller must
+     * either supply an existing transaction ID or begin a new transaction.
+     * Partitioned DML requires an existing PartitionedDml transaction ID.
      * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -1409,7 +1535,7 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde private java.lang.Object sql_ = ""; /** *
-     * Required. The SQL query string.
+     * Required. The SQL string.
      * 
* * string sql = 3; @@ -1428,7 +1554,7 @@ public java.lang.String getSql() { } /** *
-     * Required. The SQL query string.
+     * Required. The SQL string.
      * 
* * string sql = 3; @@ -1448,7 +1574,7 @@ public java.lang.String getSql() { } /** *
-     * Required. The SQL query string.
+     * Required. The SQL string.
      * 
* * string sql = 3; @@ -1465,7 +1591,7 @@ public Builder setSql( } /** *
-     * Required. The SQL query string.
+     * Required. The SQL string.
      * 
* * string sql = 3; @@ -1478,7 +1604,7 @@ public Builder clearSql() { } /** *
-     * Required. The SQL query string.
+     * Required. The SQL string.
      * 
* * string sql = 3; @@ -1500,14 +1626,14 @@ public Builder setSqlBytes( com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> paramsBuilder_; /** *
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1520,14 +1646,14 @@ public boolean hasParams() {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1544,14 +1670,14 @@ public com.google.protobuf.Struct getParams() {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1574,14 +1700,14 @@ public Builder setParams(com.google.protobuf.Struct value) {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1602,14 +1728,14 @@ public Builder setParams(
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1634,14 +1760,14 @@ public Builder mergeParams(com.google.protobuf.Struct value) {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1662,14 +1788,14 @@ public Builder clearParams() {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1684,14 +1810,14 @@ public com.google.protobuf.Struct.Builder getParamsBuilder() {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1709,14 +1835,14 @@ public com.google.protobuf.StructOrBuilder getParamsOrBuilder() {
     }
     /**
      * 
-     * The SQL query string can contain parameter placeholders. A parameter
+     * The SQL string can contain parameter placeholders. A parameter
      * placeholder consists of `'@'` followed by the parameter
      * name. Parameter names consist of any combination of letters,
      * numbers, and underscores.
      * Parameters can appear anywhere that a literal value is expected.  The same
      * parameter name can be used more than once, for example:
      *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-     * It is an error to execute an SQL query with unbound parameters.
+     * It is an error to execute an SQL statement with unbound parameters.
      * Parameter values are specified using `params`, which is a JSON
      * object whose keys are parameter names, and whose values are the
      * corresponding parameter values.
@@ -1770,7 +1896,7 @@ public int getParamTypesCount() {
      * from a JSON value.  For example, values of type `BYTES` and values
      * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings.
      * In these cases, `param_types` can be used to specify the exact
-     * SQL type for some or all of the SQL query parameters. See the
+     * SQL type for some or all of the SQL statement parameters. See the
      * definition of [Type][google.spanner.v1.Type] for more information
      * about SQL types.
      * 
@@ -1796,7 +1922,7 @@ public java.util.Map getParamTypes * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -1813,7 +1939,7 @@ public java.util.Map getParamTypes * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -1835,7 +1961,7 @@ public com.google.spanner.v1.Type getParamTypesOrDefault( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -1865,7 +1991,7 @@ public Builder clearParamTypes() { * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -1894,7 +2020,7 @@ public Builder removeParamTypes( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -1916,7 +2042,7 @@ public Builder putParamTypes( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -1934,10 +2060,10 @@ public Builder putAllParamTypes( private com.google.protobuf.ByteString resumeToken_ = com.google.protobuf.ByteString.EMPTY; /** *
-     * If this request is resuming a previously interrupted SQL query
+     * If this request is resuming a previously interrupted SQL statement
      * execution, `resume_token` should be copied from the last
      * [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
-     * enables the new SQL query execution to resume where the last one left
+     * enables the new SQL statement execution to resume where the last one left
      * off. The rest of the request parameters must exactly match the
      * request that yielded this token.
      * 
@@ -1949,10 +2075,10 @@ public com.google.protobuf.ByteString getResumeToken() { } /** *
-     * If this request is resuming a previously interrupted SQL query
+     * If this request is resuming a previously interrupted SQL statement
      * execution, `resume_token` should be copied from the last
      * [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
-     * enables the new SQL query execution to resume where the last one left
+     * enables the new SQL statement execution to resume where the last one left
      * off. The rest of the request parameters must exactly match the
      * request that yielded this token.
      * 
@@ -1970,10 +2096,10 @@ public Builder setResumeToken(com.google.protobuf.ByteString value) { } /** *
-     * If this request is resuming a previously interrupted SQL query
+     * If this request is resuming a previously interrupted SQL statement
      * execution, `resume_token` should be copied from the last
      * [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
-     * enables the new SQL query execution to resume where the last one left
+     * enables the new SQL statement execution to resume where the last one left
      * off. The rest of the request parameters must exactly match the
      * request that yielded this token.
      * 
@@ -2111,6 +2237,65 @@ public Builder clearPartitionToken() { onChanged(); return this; } + + private long seqno_ ; + /** + *
+     * A per-transaction sequence number used to identify this request. This
+     * makes each request idempotent such that if the request is received multiple
+     * times, at most one will succeed.
+     * The sequence number must be monotonically increasing within the
+     * transaction. If a request arrives for the first time with an out-of-order
+     * sequence number, the transaction may be aborted. Replays of previously
+     * handled requests will yield the same response as the first execution.
+     * Required for DML statements. Ignored for queries.
+     * 
+ * + * int64 seqno = 9; + */ + public long getSeqno() { + return seqno_; + } + /** + *
+     * A per-transaction sequence number used to identify this request. This
+     * makes each request idempotent such that if the request is received multiple
+     * times, at most one will succeed.
+     * The sequence number must be monotonically increasing within the
+     * transaction. If a request arrives for the first time with an out-of-order
+     * sequence number, the transaction may be aborted. Replays of previously
+     * handled requests will yield the same response as the first execution.
+     * Required for DML statements. Ignored for queries.
+     * 
+ * + * int64 seqno = 9; + */ + public Builder setSeqno(long value) { + + seqno_ = value; + onChanged(); + return this; + } + /** + *
+     * A per-transaction sequence number used to identify this request. This
+     * makes each request idempotent such that if the request is received multiple
+     * times, at most one will succeed.
+     * The sequence number must be monotonically increasing within the
+     * transaction. If a request arrives for the first time with an out-of-order
+     * sequence number, the transaction may be aborted. Replays of previously
+     * handled requests will yield the same response as the first execution.
+     * Required for DML statements. Ignored for queries.
+     * 
+ * + * int64 seqno = 9; + */ + public Builder clearSeqno() { + + seqno_ = 0L; + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java index 4be99d56d8db..09d723b5172e 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ExecuteSqlRequestOrBuilder.java @@ -29,6 +29,13 @@ public interface ExecuteSqlRequestOrBuilder extends *
    * The transaction to use. If none is provided, the default is a
    * temporary read-only transaction with strong concurrency.
+   * The transaction to use.
+   * For queries, if none is provided, the default is a temporary read-only
+   * transaction with strong concurrency.
+   * Standard DML statements require a ReadWrite transaction. Single-use
+   * transactions are not supported (to avoid replay).  The caller must
+   * either supply an existing transaction ID or begin a new transaction.
+   * Partitioned DML requires an existing PartitionedDml transaction ID.
    * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -38,6 +45,13 @@ public interface ExecuteSqlRequestOrBuilder extends *
    * The transaction to use. If none is provided, the default is a
    * temporary read-only transaction with strong concurrency.
+   * The transaction to use.
+   * For queries, if none is provided, the default is a temporary read-only
+   * transaction with strong concurrency.
+   * Standard DML statements require a ReadWrite transaction. Single-use
+   * transactions are not supported (to avoid replay).  The caller must
+   * either supply an existing transaction ID or begin a new transaction.
+   * Partitioned DML requires an existing PartitionedDml transaction ID.
    * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -47,6 +61,13 @@ public interface ExecuteSqlRequestOrBuilder extends *
    * The transaction to use. If none is provided, the default is a
    * temporary read-only transaction with strong concurrency.
+   * The transaction to use.
+   * For queries, if none is provided, the default is a temporary read-only
+   * transaction with strong concurrency.
+   * Standard DML statements require a ReadWrite transaction. Single-use
+   * transactions are not supported (to avoid replay).  The caller must
+   * either supply an existing transaction ID or begin a new transaction.
+   * Partitioned DML requires an existing PartitionedDml transaction ID.
    * 
* * .google.spanner.v1.TransactionSelector transaction = 2; @@ -55,7 +76,7 @@ public interface ExecuteSqlRequestOrBuilder extends /** *
-   * Required. The SQL query string.
+   * Required. The SQL string.
    * 
* * string sql = 3; @@ -63,7 +84,7 @@ public interface ExecuteSqlRequestOrBuilder extends java.lang.String getSql(); /** *
-   * Required. The SQL query string.
+   * Required. The SQL string.
    * 
* * string sql = 3; @@ -73,14 +94,14 @@ public interface ExecuteSqlRequestOrBuilder extends /** *
-   * The SQL query string can contain parameter placeholders. A parameter
+   * The SQL string can contain parameter placeholders. A parameter
    * placeholder consists of `'@'` followed by the parameter
    * name. Parameter names consist of any combination of letters,
    * numbers, and underscores.
    * Parameters can appear anywhere that a literal value is expected.  The same
    * parameter name can be used more than once, for example:
    *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-   * It is an error to execute an SQL query with unbound parameters.
+   * It is an error to execute an SQL statement with unbound parameters.
    * Parameter values are specified using `params`, which is a JSON
    * object whose keys are parameter names, and whose values are the
    * corresponding parameter values.
@@ -91,14 +112,14 @@ public interface ExecuteSqlRequestOrBuilder extends
   boolean hasParams();
   /**
    * 
-   * The SQL query string can contain parameter placeholders. A parameter
+   * The SQL string can contain parameter placeholders. A parameter
    * placeholder consists of `'@'` followed by the parameter
    * name. Parameter names consist of any combination of letters,
    * numbers, and underscores.
    * Parameters can appear anywhere that a literal value is expected.  The same
    * parameter name can be used more than once, for example:
    *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-   * It is an error to execute an SQL query with unbound parameters.
+   * It is an error to execute an SQL statement with unbound parameters.
    * Parameter values are specified using `params`, which is a JSON
    * object whose keys are parameter names, and whose values are the
    * corresponding parameter values.
@@ -109,14 +130,14 @@ public interface ExecuteSqlRequestOrBuilder extends
   com.google.protobuf.Struct getParams();
   /**
    * 
-   * The SQL query string can contain parameter placeholders. A parameter
+   * The SQL string can contain parameter placeholders. A parameter
    * placeholder consists of `'@'` followed by the parameter
    * name. Parameter names consist of any combination of letters,
    * numbers, and underscores.
    * Parameters can appear anywhere that a literal value is expected.  The same
    * parameter name can be used more than once, for example:
    *   `"WHERE id > @msg_id AND id < @msg_id + 100"`
-   * It is an error to execute an SQL query with unbound parameters.
+   * It is an error to execute an SQL statement with unbound parameters.
    * Parameter values are specified using `params`, which is a JSON
    * object whose keys are parameter names, and whose values are the
    * corresponding parameter values.
@@ -132,7 +153,7 @@ public interface ExecuteSqlRequestOrBuilder extends
    * from a JSON value.  For example, values of type `BYTES` and values
    * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings.
    * In these cases, `param_types` can be used to specify the exact
-   * SQL type for some or all of the SQL query parameters. See the
+   * SQL type for some or all of the SQL statement parameters. See the
    * definition of [Type][google.spanner.v1.Type] for more information
    * about SQL types.
    * 
@@ -146,7 +167,7 @@ public interface ExecuteSqlRequestOrBuilder extends * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -167,7 +188,7 @@ boolean containsParamTypes( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -182,7 +203,7 @@ boolean containsParamTypes( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -199,7 +220,7 @@ com.google.spanner.v1.Type getParamTypesOrDefault( * from a JSON value. For example, values of type `BYTES` and values * of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings. * In these cases, `param_types` can be used to specify the exact - * SQL type for some or all of the SQL query parameters. See the + * SQL type for some or all of the SQL statement parameters. See the * definition of [Type][google.spanner.v1.Type] for more information * about SQL types. *
@@ -212,10 +233,10 @@ com.google.spanner.v1.Type getParamTypesOrThrow( /** *
-   * If this request is resuming a previously interrupted SQL query
+   * If this request is resuming a previously interrupted SQL statement
    * execution, `resume_token` should be copied from the last
    * [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
-   * enables the new SQL query execution to resume where the last one left
+   * enables the new SQL statement execution to resume where the last one left
    * off. The rest of the request parameters must exactly match the
    * request that yielded this token.
    * 
@@ -256,4 +277,20 @@ com.google.spanner.v1.Type getParamTypesOrThrow( * bytes partition_token = 8; */ com.google.protobuf.ByteString getPartitionToken(); + + /** + *
+   * A per-transaction sequence number used to identify this request. This
+   * makes each request idempotent such that if the request is received multiple
+   * times, at most one will succeed.
+   * The sequence number must be monotonically increasing within the
+   * transaction. If a request arrives for the first time with an out-of-order
+   * sequence number, the transaction may be aborted. Replays of previously
+   * handled requests will yield the same response as the first execution.
+   * Required for DML statements. Ignored for queries.
+   * 
+ * + * int64 seqno = 9; + */ + long getSeqno(); } diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java index e83a63b201e1..0fc603c1063f 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSet.java @@ -549,10 +549,12 @@ public com.google.protobuf.ByteString getResumeToken() { private com.google.spanner.v1.ResultSetStats stats_; /** *
-   * Query plan and execution statistics for the query that produced this
+   * Query plan and execution statistics for the statement that produced this
    * streaming result set. These can be requested by setting
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
    * only once with the last response in the stream.
+   * This field will also be present in the last response for DML
+   * statements.
    * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -562,10 +564,12 @@ public boolean hasStats() { } /** *
-   * Query plan and execution statistics for the query that produced this
+   * Query plan and execution statistics for the statement that produced this
    * streaming result set. These can be requested by setting
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
    * only once with the last response in the stream.
+   * This field will also be present in the last response for DML
+   * statements.
    * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -575,10 +579,12 @@ public com.google.spanner.v1.ResultSetStats getStats() { } /** *
-   * Query plan and execution statistics for the query that produced this
+   * Query plan and execution statistics for the statement that produced this
    * streaming result set. These can be requested by setting
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
    * only once with the last response in the stream.
+   * This field will also be present in the last response for DML
+   * statements.
    * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2653,10 +2659,12 @@ public Builder clearResumeToken() { com.google.spanner.v1.ResultSetStats, com.google.spanner.v1.ResultSetStats.Builder, com.google.spanner.v1.ResultSetStatsOrBuilder> statsBuilder_; /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2666,10 +2674,12 @@ public boolean hasStats() { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2683,10 +2693,12 @@ public com.google.spanner.v1.ResultSetStats getStats() { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2706,10 +2718,12 @@ public Builder setStats(com.google.spanner.v1.ResultSetStats value) { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2727,10 +2741,12 @@ public Builder setStats( } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2752,10 +2768,12 @@ public Builder mergeStats(com.google.spanner.v1.ResultSetStats value) { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2773,10 +2791,12 @@ public Builder clearStats() { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2788,10 +2808,12 @@ public com.google.spanner.v1.ResultSetStats.Builder getStatsBuilder() { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -2806,10 +2828,12 @@ public com.google.spanner.v1.ResultSetStatsOrBuilder getStatsOrBuilder() { } /** *
-     * Query plan and execution statistics for the query that produced this
+     * Query plan and execution statistics for the statement that produced this
      * streaming result set. These can be requested by setting
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
      * only once with the last response in the stream.
+     * This field will also be present in the last response for DML
+     * statements.
      * 
* * .google.spanner.v1.ResultSetStats stats = 5; diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java index 2e8d97296e6b..69b0b8c03bdb 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartialResultSetOrBuilder.java @@ -395,10 +395,12 @@ com.google.protobuf.ValueOrBuilder getValuesOrBuilder( /** *
-   * Query plan and execution statistics for the query that produced this
+   * Query plan and execution statistics for the statement that produced this
    * streaming result set. These can be requested by setting
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
    * only once with the last response in the stream.
+   * This field will also be present in the last response for DML
+   * statements.
    * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -406,10 +408,12 @@ com.google.protobuf.ValueOrBuilder getValuesOrBuilder( boolean hasStats(); /** *
-   * Query plan and execution statistics for the query that produced this
+   * Query plan and execution statistics for the statement that produced this
    * streaming result set. These can be requested by setting
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
    * only once with the last response in the stream.
+   * This field will also be present in the last response for DML
+   * statements.
    * 
* * .google.spanner.v1.ResultSetStats stats = 5; @@ -417,10 +421,12 @@ com.google.protobuf.ValueOrBuilder getValuesOrBuilder( com.google.spanner.v1.ResultSetStats getStats(); /** *
-   * Query plan and execution statistics for the query that produced this
+   * Query plan and execution statistics for the statement that produced this
    * streaming result set. These can be requested by setting
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
    * only once with the last response in the stream.
+   * This field will also be present in the last response for DML
+   * statements.
    * 
* * .google.spanner.v1.ResultSetStats stats = 5; diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java index 5f604fe8d20e..aea633f0e263 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequest.java @@ -245,6 +245,9 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -269,6 +272,9 @@ public java.lang.String getSql() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -1226,6 +1232,9 @@ public com.google.spanner.v1.TransactionSelectorOrBuilder getTransactionOrBuilde * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -1250,6 +1259,9 @@ public java.lang.String getSql() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -1275,6 +1287,9 @@ public java.lang.String getSql() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -1297,6 +1312,9 @@ public Builder setSql( * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -1315,6 +1333,9 @@ public Builder clearSql() { * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java index 98ea4df69a28..d9a2697b2541 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/PartitionQueryRequestOrBuilder.java @@ -61,6 +61,9 @@ public interface PartitionQueryRequestOrBuilder extends * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; @@ -74,6 +77,9 @@ public interface PartitionQueryRequestOrBuilder extends * union operator conceptually divides one or more tables into multiple * splits, remotely evaluates a subquery independently on each split, and * then unions all results. + * This must not contain DML commands, such as INSERT, UPDATE, or + * DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a + * PartitionedDml transaction for large, partition-friendly DML operations. * * * string sql = 3; diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java index 72bcc7826be7..667e31de62db 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSet.java @@ -236,8 +236,13 @@ public com.google.protobuf.ListValueOrBuilder getRowsOrBuilder( private com.google.spanner.v1.ResultSetStats stats_; /** *
-   * Query plan and execution statistics for the query that produced this
-   * result set. These can be requested by setting
+   * Query plan and execution statistics for the SQL statement that
+   * produced this result set. These can be requested by setting
+   * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * DML statements always produce stats containing the number of rows
+   * modified, unless executed using the
+   * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * Other fields may or may not be populated, based on the
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
    * 
* @@ -248,8 +253,13 @@ public boolean hasStats() { } /** *
-   * Query plan and execution statistics for the query that produced this
-   * result set. These can be requested by setting
+   * Query plan and execution statistics for the SQL statement that
+   * produced this result set. These can be requested by setting
+   * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * DML statements always produce stats containing the number of rows
+   * modified, unless executed using the
+   * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * Other fields may or may not be populated, based on the
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
    * 
* @@ -260,8 +270,13 @@ public com.google.spanner.v1.ResultSetStats getStats() { } /** *
-   * Query plan and execution statistics for the query that produced this
-   * result set. These can be requested by setting
+   * Query plan and execution statistics for the SQL statement that
+   * produced this result set. These can be requested by setting
+   * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * DML statements always produce stats containing the number of rows
+   * modified, unless executed using the
+   * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * Other fields may or may not be populated, based on the
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
    * 
* @@ -1241,8 +1256,13 @@ public com.google.protobuf.ListValue.Builder addRowsBuilder( com.google.spanner.v1.ResultSetStats, com.google.spanner.v1.ResultSetStats.Builder, com.google.spanner.v1.ResultSetStatsOrBuilder> statsBuilder_; /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1253,8 +1273,13 @@ public boolean hasStats() { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1269,8 +1294,13 @@ public com.google.spanner.v1.ResultSetStats getStats() { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1291,8 +1321,13 @@ public Builder setStats(com.google.spanner.v1.ResultSetStats value) { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1311,8 +1346,13 @@ public Builder setStats( } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1335,8 +1375,13 @@ public Builder mergeStats(com.google.spanner.v1.ResultSetStats value) { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1355,8 +1400,13 @@ public Builder clearStats() { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1369,8 +1419,13 @@ public com.google.spanner.v1.ResultSetStats.Builder getStatsBuilder() { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* @@ -1386,8 +1441,13 @@ public com.google.spanner.v1.ResultSetStatsOrBuilder getStatsOrBuilder() { } /** *
-     * Query plan and execution statistics for the query that produced this
-     * result set. These can be requested by setting
+     * Query plan and execution statistics for the SQL statement that
+     * produced this result set. These can be requested by setting
+     * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * DML statements always produce stats containing the number of rows
+     * modified, unless executed using the
+     * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+     * Other fields may or may not be populated, based on the
      * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
      * 
* diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetOrBuilder.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetOrBuilder.java index 4a54ea19a36f..30e00ef6820a 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetOrBuilder.java @@ -103,8 +103,13 @@ com.google.protobuf.ListValueOrBuilder getRowsOrBuilder( /** *
-   * Query plan and execution statistics for the query that produced this
-   * result set. These can be requested by setting
+   * Query plan and execution statistics for the SQL statement that
+   * produced this result set. These can be requested by setting
+   * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * DML statements always produce stats containing the number of rows
+   * modified, unless executed using the
+   * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * Other fields may or may not be populated, based on the
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
    * 
* @@ -113,8 +118,13 @@ com.google.protobuf.ListValueOrBuilder getRowsOrBuilder( boolean hasStats(); /** *
-   * Query plan and execution statistics for the query that produced this
-   * result set. These can be requested by setting
+   * Query plan and execution statistics for the SQL statement that
+   * produced this result set. These can be requested by setting
+   * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * DML statements always produce stats containing the number of rows
+   * modified, unless executed using the
+   * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * Other fields may or may not be populated, based on the
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
    * 
* @@ -123,8 +133,13 @@ com.google.protobuf.ListValueOrBuilder getRowsOrBuilder( com.google.spanner.v1.ResultSetStats getStats(); /** *
-   * Query plan and execution statistics for the query that produced this
-   * result set. These can be requested by setting
+   * Query plan and execution statistics for the SQL statement that
+   * produced this result set. These can be requested by setting
+   * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * DML statements always produce stats containing the number of rows
+   * modified, unless executed using the
+   * [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+   * Other fields may or may not be populated, based on the
    * [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
    * 
* diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetProto.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetProto.java index 03323009f4bc..db5ab855f5d7 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetProto.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetProto.java @@ -60,14 +60,16 @@ public static void registerAllExtensions( "google.spanner.v1.ResultSetStats\"y\n\021Resu" + "ltSetMetadata\022/\n\010row_type\030\001 \001(\0132\035.google" + ".spanner.v1.StructType\0223\n\013transaction\030\002 " + - "\001(\0132\036.google.spanner.v1.Transaction\"p\n\016R" + - "esultSetStats\0220\n\nquery_plan\030\001 \001(\0132\034.goog" + - "le.spanner.v1.QueryPlan\022,\n\013query_stats\030\002" + - " \001(\0132\027.google.protobuf.StructB\232\001\n\025com.go" + - "ogle.spanner.v1B\016ResultSetProtoP\001Z8googl" + - "e.golang.org/genproto/googleapis/spanner" + - "/v1;spanner\370\001\001\252\002\027Google.Cloud.Spanner.V1" + - "\312\002\027Google\\Cloud\\Spanner\\V1b\006proto3" + "\001(\0132\036.google.spanner.v1.Transaction\"\271\001\n\016" + + "ResultSetStats\0220\n\nquery_plan\030\001 \001(\0132\034.goo" + + "gle.spanner.v1.QueryPlan\022,\n\013query_stats\030" + + "\002 \001(\0132\027.google.protobuf.Struct\022\031\n\017row_co" + + "unt_exact\030\003 \001(\003H\000\022\037\n\025row_count_lower_bou" + + "nd\030\004 \001(\003H\000B\013\n\trow_countB\232\001\n\025com.google.s" + + "panner.v1B\016ResultSetProtoP\001Z8google.gola" + + "ng.org/genproto/googleapis/spanner/v1;sp" + + "anner\370\001\001\252\002\027Google.Cloud.Spanner.V1\312\002\027Goo" + + "gle\\Cloud\\Spanner\\V1b\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -109,7 +111,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_google_spanner_v1_ResultSetStats_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_spanner_v1_ResultSetStats_descriptor, - new java.lang.String[] { "QueryPlan", "QueryStats", }); + new java.lang.String[] { "QueryPlan", "QueryStats", "RowCountExact", "RowCountLowerBound", "RowCount", }); com.google.api.AnnotationsProto.getDescriptor(); com.google.protobuf.StructProto.getDescriptor(); com.google.spanner.v1.QueryPlanProto.getDescriptor(); diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java index c4f2438a32a3..67d309332cc1 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStats.java @@ -72,6 +72,16 @@ private ResultSetStats( break; } + case 24: { + rowCountCase_ = 3; + rowCount_ = input.readInt64(); + break; + } + case 32: { + rowCountCase_ = 4; + rowCount_ = input.readInt64(); + break; + } default: { if (!parseUnknownFieldProto3( input, unknownFields, extensionRegistry, tag)) { @@ -104,6 +114,44 @@ private ResultSetStats( com.google.spanner.v1.ResultSetStats.class, com.google.spanner.v1.ResultSetStats.Builder.class); } + private int rowCountCase_ = 0; + private java.lang.Object rowCount_; + public enum RowCountCase + implements com.google.protobuf.Internal.EnumLite { + ROW_COUNT_EXACT(3), + ROW_COUNT_LOWER_BOUND(4), + ROWCOUNT_NOT_SET(0); + private final int value; + private RowCountCase(int value) { + this.value = value; + } + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static RowCountCase valueOf(int value) { + return forNumber(value); + } + + public static RowCountCase forNumber(int value) { + switch (value) { + case 3: return ROW_COUNT_EXACT; + case 4: return ROW_COUNT_LOWER_BOUND; + case 0: return ROWCOUNT_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public RowCountCase + getRowCountCase() { + return RowCountCase.forNumber( + rowCountCase_); + } + public static final int QUERY_PLAN_FIELD_NUMBER = 1; private com.google.spanner.v1.QueryPlan queryPlan_; /** @@ -191,6 +239,37 @@ public com.google.protobuf.StructOrBuilder getQueryStatsOrBuilder() { return getQueryStats(); } + public static final int ROW_COUNT_EXACT_FIELD_NUMBER = 3; + /** + *
+   * Standard DML returns an exact count of rows that were modified.
+   * 
+ * + * int64 row_count_exact = 3; + */ + public long getRowCountExact() { + if (rowCountCase_ == 3) { + return (java.lang.Long) rowCount_; + } + return 0L; + } + + public static final int ROW_COUNT_LOWER_BOUND_FIELD_NUMBER = 4; + /** + *
+   * Partitioned DML does not offer exactly-once semantics, so it
+   * returns a lower bound of the rows modified.
+   * 
+ * + * int64 row_count_lower_bound = 4; + */ + public long getRowCountLowerBound() { + if (rowCountCase_ == 4) { + return (java.lang.Long) rowCount_; + } + return 0L; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -211,6 +290,14 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (queryStats_ != null) { output.writeMessage(2, getQueryStats()); } + if (rowCountCase_ == 3) { + output.writeInt64( + 3, (long)((java.lang.Long) rowCount_)); + } + if (rowCountCase_ == 4) { + output.writeInt64( + 4, (long)((java.lang.Long) rowCount_)); + } unknownFields.writeTo(output); } @@ -228,6 +315,16 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getQueryStats()); } + if (rowCountCase_ == 3) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size( + 3, (long)((java.lang.Long) rowCount_)); + } + if (rowCountCase_ == 4) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size( + 4, (long)((java.lang.Long) rowCount_)); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -254,6 +351,21 @@ public boolean equals(final java.lang.Object obj) { result = result && getQueryStats() .equals(other.getQueryStats()); } + result = result && getRowCountCase().equals( + other.getRowCountCase()); + if (!result) return false; + switch (rowCountCase_) { + case 3: + result = result && (getRowCountExact() + == other.getRowCountExact()); + break; + case 4: + result = result && (getRowCountLowerBound() + == other.getRowCountLowerBound()); + break; + case 0: + default: + } result = result && unknownFields.equals(other.unknownFields); return result; } @@ -273,6 +385,20 @@ public int hashCode() { hash = (37 * hash) + QUERY_STATS_FIELD_NUMBER; hash = (53 * hash) + getQueryStats().hashCode(); } + switch (rowCountCase_) { + case 3: + hash = (37 * hash) + ROW_COUNT_EXACT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRowCountExact()); + break; + case 4: + hash = (37 * hash) + ROW_COUNT_LOWER_BOUND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRowCountLowerBound()); + break; + case 0: + default: + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -422,6 +548,8 @@ public Builder clear() { queryStats_ = null; queryStatsBuilder_ = null; } + rowCountCase_ = 0; + rowCount_ = null; return this; } @@ -458,6 +586,13 @@ public com.google.spanner.v1.ResultSetStats buildPartial() { } else { result.queryStats_ = queryStatsBuilder_.build(); } + if (rowCountCase_ == 3) { + result.rowCount_ = rowCount_; + } + if (rowCountCase_ == 4) { + result.rowCount_ = rowCount_; + } + result.rowCountCase_ = rowCountCase_; onBuilt(); return result; } @@ -512,6 +647,19 @@ public Builder mergeFrom(com.google.spanner.v1.ResultSetStats other) { if (other.hasQueryStats()) { mergeQueryStats(other.getQueryStats()); } + switch (other.getRowCountCase()) { + case ROW_COUNT_EXACT: { + setRowCountExact(other.getRowCountExact()); + break; + } + case ROW_COUNT_LOWER_BOUND: { + setRowCountLowerBound(other.getRowCountLowerBound()); + break; + } + case ROWCOUNT_NOT_SET: { + break; + } + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -540,6 +688,21 @@ public Builder mergeFrom( } return this; } + private int rowCountCase_ = 0; + private java.lang.Object rowCount_; + public RowCountCase + getRowCountCase() { + return RowCountCase.forNumber( + rowCountCase_); + } + + public Builder clearRowCount() { + rowCountCase_ = 0; + rowCount_ = null; + onChanged(); + return this; + } + private com.google.spanner.v1.QueryPlan queryPlan_ = null; private com.google.protobuf.SingleFieldBuilderV3< @@ -909,6 +1072,93 @@ public com.google.protobuf.StructOrBuilder getQueryStatsOrBuilder() { } return queryStatsBuilder_; } + + /** + *
+     * Standard DML returns an exact count of rows that were modified.
+     * 
+ * + * int64 row_count_exact = 3; + */ + public long getRowCountExact() { + if (rowCountCase_ == 3) { + return (java.lang.Long) rowCount_; + } + return 0L; + } + /** + *
+     * Standard DML returns an exact count of rows that were modified.
+     * 
+ * + * int64 row_count_exact = 3; + */ + public Builder setRowCountExact(long value) { + rowCountCase_ = 3; + rowCount_ = value; + onChanged(); + return this; + } + /** + *
+     * Standard DML returns an exact count of rows that were modified.
+     * 
+ * + * int64 row_count_exact = 3; + */ + public Builder clearRowCountExact() { + if (rowCountCase_ == 3) { + rowCountCase_ = 0; + rowCount_ = null; + onChanged(); + } + return this; + } + + /** + *
+     * Partitioned DML does not offer exactly-once semantics, so it
+     * returns a lower bound of the rows modified.
+     * 
+ * + * int64 row_count_lower_bound = 4; + */ + public long getRowCountLowerBound() { + if (rowCountCase_ == 4) { + return (java.lang.Long) rowCount_; + } + return 0L; + } + /** + *
+     * Partitioned DML does not offer exactly-once semantics, so it
+     * returns a lower bound of the rows modified.
+     * 
+ * + * int64 row_count_lower_bound = 4; + */ + public Builder setRowCountLowerBound(long value) { + rowCountCase_ = 4; + rowCount_ = value; + onChanged(); + return this; + } + /** + *
+     * Partitioned DML does not offer exactly-once semantics, so it
+     * returns a lower bound of the rows modified.
+     * 
+ * + * int64 row_count_lower_bound = 4; + */ + public Builder clearRowCountLowerBound() { + if (rowCountCase_ == 4) { + rowCountCase_ = 0; + rowCount_ = null; + onChanged(); + } + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java index 390292ec9df9..a168bbe2e2db 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/ResultSetStatsOrBuilder.java @@ -77,4 +77,25 @@ public interface ResultSetStatsOrBuilder extends * .google.protobuf.Struct query_stats = 2; */ com.google.protobuf.StructOrBuilder getQueryStatsOrBuilder(); + + /** + *
+   * Standard DML returns an exact count of rows that were modified.
+   * 
+ * + * int64 row_count_exact = 3; + */ + long getRowCountExact(); + + /** + *
+   * Partitioned DML does not offer exactly-once semantics, so it
+   * returns a lower bound of the rows modified.
+   * 
+ * + * int64 row_count_lower_bound = 4; + */ + long getRowCountLowerBound(); + + public com.google.spanner.v1.ResultSetStats.RowCountCase getRowCountCase(); } diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java index 2f3ca6d3e93f..494e28b9d4ff 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/SpannerProto.java @@ -146,7 +146,7 @@ public static void registerAllExtensions( "\"]\n\024ListSessionsResponse\022,\n\010sessions\030\001 \003" + "(\0132\032.google.spanner.v1.Session\022\027\n\017next_p" + "age_token\030\002 \001(\t\"$\n\024DeleteSessionRequest\022" + - "\014\n\004name\030\001 \001(\t\"\321\003\n\021ExecuteSqlRequest\022\017\n\007s" + + "\014\n\004name\030\001 \001(\t\"\340\003\n\021ExecuteSqlRequest\022\017\n\007s" + "ession\030\001 \001(\t\022;\n\013transaction\030\002 \001(\0132&.goog" + "le.spanner.v1.TransactionSelector\022\013\n\003sql" + "\030\003 \001(\t\022\'\n\006params\030\004 \001(\0132\027.google.protobuf" + @@ -154,108 +154,108 @@ public static void registerAllExtensions( "anner.v1.ExecuteSqlRequest.ParamTypesEnt" + "ry\022\024\n\014resume_token\030\006 \001(\014\022B\n\nquery_mode\030\007" + " \001(\0162..google.spanner.v1.ExecuteSqlReque" + - "st.QueryMode\022\027\n\017partition_token\030\010 \001(\014\032J\n" + - "\017ParamTypesEntry\022\013\n\003key\030\001 \001(\t\022&\n\005value\030\002" + - " \001(\0132\027.google.spanner.v1.Type:\0028\001\".\n\tQue" + - "ryMode\022\n\n\006NORMAL\020\000\022\010\n\004PLAN\020\001\022\013\n\007PROFILE\020" + - "\002\"H\n\020PartitionOptions\022\034\n\024partition_size_" + - "bytes\030\001 \001(\003\022\026\n\016max_partitions\030\002 \001(\003\"\366\002\n\025" + - "PartitionQueryRequest\022\017\n\007session\030\001 \001(\t\022;" + - "\n\013transaction\030\002 \001(\0132&.google.spanner.v1." + - "TransactionSelector\022\013\n\003sql\030\003 \001(\t\022\'\n\006para" + - "ms\030\004 \001(\0132\027.google.protobuf.Struct\022M\n\013par" + - "am_types\030\005 \003(\01328.google.spanner.v1.Parti" + - "tionQueryRequest.ParamTypesEntry\022>\n\021part" + - "ition_options\030\006 \001(\0132#.google.spanner.v1." + - "PartitionOptions\032J\n\017ParamTypesEntry\022\013\n\003k" + - "ey\030\001 \001(\t\022&\n\005value\030\002 \001(\0132\027.google.spanner" + - ".v1.Type:\0028\001\"\377\001\n\024PartitionReadRequest\022\017\n" + - "\007session\030\001 \001(\t\022;\n\013transaction\030\002 \001(\0132&.go" + - "ogle.spanner.v1.TransactionSelector\022\r\n\005t" + - "able\030\003 \001(\t\022\r\n\005index\030\004 \001(\t\022\017\n\007columns\030\005 \003" + - "(\t\022*\n\007key_set\030\006 \001(\0132\031.google.spanner.v1." + - "KeySet\022>\n\021partition_options\030\t \001(\0132#.goog" + - "le.spanner.v1.PartitionOptions\"$\n\tPartit" + - "ion\022\027\n\017partition_token\030\001 \001(\014\"z\n\021Partitio" + - "nResponse\0220\n\npartitions\030\001 \003(\0132\034.google.s" + - "panner.v1.Partition\0223\n\013transaction\030\002 \001(\013" + - "2\036.google.spanner.v1.Transaction\"\364\001\n\013Rea" + - "dRequest\022\017\n\007session\030\001 \001(\t\022;\n\013transaction" + - "\030\002 \001(\0132&.google.spanner.v1.TransactionSe" + - "lector\022\r\n\005table\030\003 \001(\t\022\r\n\005index\030\004 \001(\t\022\017\n\007" + - "columns\030\005 \003(\t\022*\n\007key_set\030\006 \001(\0132\031.google." + - "spanner.v1.KeySet\022\r\n\005limit\030\010 \001(\003\022\024\n\014resu" + - "me_token\030\t \001(\014\022\027\n\017partition_token\030\n \001(\014\"" + - "b\n\027BeginTransactionRequest\022\017\n\007session\030\001 " + - "\001(\t\0226\n\007options\030\002 \001(\0132%.google.spanner.v1" + - ".TransactionOptions\"\302\001\n\rCommitRequest\022\017\n" + - "\007session\030\001 \001(\t\022\030\n\016transaction_id\030\002 \001(\014H\000" + - "\022G\n\026single_use_transaction\030\003 \001(\0132%.googl" + - "e.spanner.v1.TransactionOptionsH\000\022.\n\tmut" + - "ations\030\004 \003(\0132\033.google.spanner.v1.Mutatio" + - "nB\r\n\013transaction\"F\n\016CommitResponse\0224\n\020co" + - "mmit_timestamp\030\001 \001(\0132\032.google.protobuf.T" + - "imestamp\":\n\017RollbackRequest\022\017\n\007session\030\001" + - " \001(\t\022\026\n\016transaction_id\030\002 \001(\0142\203\021\n\007Spanner" + - "\022\233\001\n\rCreateSession\022\'.google.spanner.v1.C" + - "reateSessionRequest\032\032.google.spanner.v1." + - "Session\"E\202\323\344\223\002?\":/v1/{database=projects/" + - "*/instances/*/databases/*}/sessions:\001*\022\220" + - "\001\n\nGetSession\022$.google.spanner.v1.GetSes" + - "sionRequest\032\032.google.spanner.v1.Session\"" + - "@\202\323\344\223\002:\0228/v1/{name=projects/*/instances/" + - "*/databases/*/sessions/*}\022\243\001\n\014ListSessio" + - "ns\022&.google.spanner.v1.ListSessionsReque" + - "st\032\'.google.spanner.v1.ListSessionsRespo" + - "nse\"B\202\323\344\223\002<\022:/v1/{database=projects/*/in" + - "stances/*/databases/*}/sessions\022\222\001\n\rDele" + - "teSession\022\'.google.spanner.v1.DeleteSess" + - "ionRequest\032\026.google.protobuf.Empty\"@\202\323\344\223" + - "\002:*8/v1/{name=projects/*/instances/*/dat" + - "abases/*/sessions/*}\022\243\001\n\nExecuteSql\022$.go" + - "ogle.spanner.v1.ExecuteSqlRequest\032\034.goog" + - "le.spanner.v1.ResultSet\"Q\202\323\344\223\002K\"F/v1/{se" + - "ssion=projects/*/instances/*/databases/*" + - "/sessions/*}:executeSql:\001*\022\276\001\n\023ExecuteSt" + - "reamingSql\022$.google.spanner.v1.ExecuteSq" + - "lRequest\032#.google.spanner.v1.PartialResu" + - "ltSet\"Z\202\323\344\223\002T\"O/v1/{session=projects/*/i" + - "nstances/*/databases/*/sessions/*}:execu" + - "teStreamingSql:\001*0\001\022\221\001\n\004Read\022\036.google.sp" + - "anner.v1.ReadRequest\032\034.google.spanner.v1" + - ".ResultSet\"K\202\323\344\223\002E\"@/v1/{session=project" + - "s/*/instances/*/databases/*/sessions/*}:" + - "read:\001*\022\254\001\n\rStreamingRead\022\036.google.spann" + - "er.v1.ReadRequest\032#.google.spanner.v1.Pa" + - "rtialResultSet\"T\202\323\344\223\002N\"I/v1/{session=pro" + - "jects/*/instances/*/databases/*/sessions" + - "/*}:streamingRead:\001*0\001\022\267\001\n\020BeginTransact" + - "ion\022*.google.spanner.v1.BeginTransaction" + - "Request\032\036.google.spanner.v1.Transaction\"" + - "W\202\323\344\223\002Q\"L/v1/{session=projects/*/instanc" + - "es/*/databases/*/sessions/*}:beginTransa" + - "ction:\001*\022\234\001\n\006Commit\022 .google.spanner.v1." + - "CommitRequest\032!.google.spanner.v1.Commit" + - "Response\"M\202\323\344\223\002G\"B/v1/{session=projects/" + - "*/instances/*/databases/*/sessions/*}:co" + - "mmit:\001*\022\227\001\n\010Rollback\022\".google.spanner.v1" + - ".RollbackRequest\032\026.google.protobuf.Empty" + - "\"O\202\323\344\223\002I\"D/v1/{session=projects/*/instan" + - "ces/*/databases/*/sessions/*}:rollback:\001" + - "*\022\267\001\n\016PartitionQuery\022(.google.spanner.v1" + - ".PartitionQueryRequest\032$.google.spanner." + - "v1.PartitionResponse\"U\202\323\344\223\002O\"J/v1/{sessi" + + "st.QueryMode\022\027\n\017partition_token\030\010 \001(\014\022\r\n" + + "\005seqno\030\t \001(\003\032J\n\017ParamTypesEntry\022\013\n\003key\030\001" + + " \001(\t\022&\n\005value\030\002 \001(\0132\027.google.spanner.v1." + + "Type:\0028\001\".\n\tQueryMode\022\n\n\006NORMAL\020\000\022\010\n\004PLA" + + "N\020\001\022\013\n\007PROFILE\020\002\"H\n\020PartitionOptions\022\034\n\024" + + "partition_size_bytes\030\001 \001(\003\022\026\n\016max_partit" + + "ions\030\002 \001(\003\"\366\002\n\025PartitionQueryRequest\022\017\n\007" + + "session\030\001 \001(\t\022;\n\013transaction\030\002 \001(\0132&.goo" + + "gle.spanner.v1.TransactionSelector\022\013\n\003sq" + + "l\030\003 \001(\t\022\'\n\006params\030\004 \001(\0132\027.google.protobu" + + "f.Struct\022M\n\013param_types\030\005 \003(\01328.google.s" + + "panner.v1.PartitionQueryRequest.ParamTyp" + + "esEntry\022>\n\021partition_options\030\006 \001(\0132#.goo" + + "gle.spanner.v1.PartitionOptions\032J\n\017Param" + + "TypesEntry\022\013\n\003key\030\001 \001(\t\022&\n\005value\030\002 \001(\0132\027" + + ".google.spanner.v1.Type:\0028\001\"\377\001\n\024Partitio" + + "nReadRequest\022\017\n\007session\030\001 \001(\t\022;\n\013transac" + + "tion\030\002 \001(\0132&.google.spanner.v1.Transacti" + + "onSelector\022\r\n\005table\030\003 \001(\t\022\r\n\005index\030\004 \001(\t" + + "\022\017\n\007columns\030\005 \003(\t\022*\n\007key_set\030\006 \001(\0132\031.goo" + + "gle.spanner.v1.KeySet\022>\n\021partition_optio" + + "ns\030\t \001(\0132#.google.spanner.v1.PartitionOp" + + "tions\"$\n\tPartition\022\027\n\017partition_token\030\001 " + + "\001(\014\"z\n\021PartitionResponse\0220\n\npartitions\030\001" + + " \003(\0132\034.google.spanner.v1.Partition\0223\n\013tr" + + "ansaction\030\002 \001(\0132\036.google.spanner.v1.Tran" + + "saction\"\364\001\n\013ReadRequest\022\017\n\007session\030\001 \001(\t" + + "\022;\n\013transaction\030\002 \001(\0132&.google.spanner.v" + + "1.TransactionSelector\022\r\n\005table\030\003 \001(\t\022\r\n\005" + + "index\030\004 \001(\t\022\017\n\007columns\030\005 \003(\t\022*\n\007key_set\030" + + "\006 \001(\0132\031.google.spanner.v1.KeySet\022\r\n\005limi" + + "t\030\010 \001(\003\022\024\n\014resume_token\030\t \001(\014\022\027\n\017partiti" + + "on_token\030\n \001(\014\"b\n\027BeginTransactionReques" + + "t\022\017\n\007session\030\001 \001(\t\0226\n\007options\030\002 \001(\0132%.go" + + "ogle.spanner.v1.TransactionOptions\"\302\001\n\rC" + + "ommitRequest\022\017\n\007session\030\001 \001(\t\022\030\n\016transac" + + "tion_id\030\002 \001(\014H\000\022G\n\026single_use_transactio" + + "n\030\003 \001(\0132%.google.spanner.v1.TransactionO" + + "ptionsH\000\022.\n\tmutations\030\004 \003(\0132\033.google.spa" + + "nner.v1.MutationB\r\n\013transaction\"F\n\016Commi" + + "tResponse\0224\n\020commit_timestamp\030\001 \001(\0132\032.go" + + "ogle.protobuf.Timestamp\":\n\017RollbackReque" + + "st\022\017\n\007session\030\001 \001(\t\022\026\n\016transaction_id\030\002 " + + "\001(\0142\203\021\n\007Spanner\022\233\001\n\rCreateSession\022\'.goog" + + "le.spanner.v1.CreateSessionRequest\032\032.goo" + + "gle.spanner.v1.Session\"E\202\323\344\223\002?\":/v1/{dat" + + "abase=projects/*/instances/*/databases/*" + + "}/sessions:\001*\022\220\001\n\nGetSession\022$.google.sp" + + "anner.v1.GetSessionRequest\032\032.google.span" + + "ner.v1.Session\"@\202\323\344\223\002:\0228/v1/{name=projec" + + "ts/*/instances/*/databases/*/sessions/*}" + + "\022\243\001\n\014ListSessions\022&.google.spanner.v1.Li" + + "stSessionsRequest\032\'.google.spanner.v1.Li" + + "stSessionsResponse\"B\202\323\344\223\002<\022:/v1/{databas" + + "e=projects/*/instances/*/databases/*}/se" + + "ssions\022\222\001\n\rDeleteSession\022\'.google.spanne" + + "r.v1.DeleteSessionRequest\032\026.google.proto" + + "buf.Empty\"@\202\323\344\223\002:*8/v1/{name=projects/*/" + + "instances/*/databases/*/sessions/*}\022\243\001\n\n" + + "ExecuteSql\022$.google.spanner.v1.ExecuteSq" + + "lRequest\032\034.google.spanner.v1.ResultSet\"Q" + + "\202\323\344\223\002K\"F/v1/{session=projects/*/instance" + + "s/*/databases/*/sessions/*}:executeSql:\001" + + "*\022\276\001\n\023ExecuteStreamingSql\022$.google.spann" + + "er.v1.ExecuteSqlRequest\032#.google.spanner" + + ".v1.PartialResultSet\"Z\202\323\344\223\002T\"O/v1/{sessi" + "on=projects/*/instances/*/databases/*/se" + - "ssions/*}:partitionQuery:\001*\022\264\001\n\rPartitio" + - "nRead\022\'.google.spanner.v1.PartitionReadR" + - "equest\032$.google.spanner.v1.PartitionResp" + - "onse\"T\202\323\344\223\002N\"I/v1/{session=projects/*/in" + - "stances/*/databases/*/sessions/*}:partit" + - "ionRead:\001*B\225\001\n\025com.google.spanner.v1B\014Sp" + - "annerProtoP\001Z8google.golang.org/genproto" + - "/googleapis/spanner/v1;spanner\252\002\027Google." + - "Cloud.Spanner.V1\312\002\027Google\\Cloud\\Spanner\\" + - "V1b\006proto3" + "ssions/*}:executeStreamingSql:\001*0\001\022\221\001\n\004R" + + "ead\022\036.google.spanner.v1.ReadRequest\032\034.go" + + "ogle.spanner.v1.ResultSet\"K\202\323\344\223\002E\"@/v1/{" + + "session=projects/*/instances/*/databases" + + "/*/sessions/*}:read:\001*\022\254\001\n\rStreamingRead" + + "\022\036.google.spanner.v1.ReadRequest\032#.googl" + + "e.spanner.v1.PartialResultSet\"T\202\323\344\223\002N\"I/" + + "v1/{session=projects/*/instances/*/datab" + + "ases/*/sessions/*}:streamingRead:\001*0\001\022\267\001" + + "\n\020BeginTransaction\022*.google.spanner.v1.B" + + "eginTransactionRequest\032\036.google.spanner." + + "v1.Transaction\"W\202\323\344\223\002Q\"L/v1/{session=pro" + + "jects/*/instances/*/databases/*/sessions" + + "/*}:beginTransaction:\001*\022\234\001\n\006Commit\022 .goo" + + "gle.spanner.v1.CommitRequest\032!.google.sp" + + "anner.v1.CommitResponse\"M\202\323\344\223\002G\"B/v1/{se" + + "ssion=projects/*/instances/*/databases/*" + + "/sessions/*}:commit:\001*\022\227\001\n\010Rollback\022\".go" + + "ogle.spanner.v1.RollbackRequest\032\026.google" + + ".protobuf.Empty\"O\202\323\344\223\002I\"D/v1/{session=pr" + + "ojects/*/instances/*/databases/*/session" + + "s/*}:rollback:\001*\022\267\001\n\016PartitionQuery\022(.go" + + "ogle.spanner.v1.PartitionQueryRequest\032$." + + "google.spanner.v1.PartitionResponse\"U\202\323\344" + + "\223\002O\"J/v1/{session=projects/*/instances/*" + + "/databases/*/sessions/*}:partitionQuery:" + + "\001*\022\264\001\n\rPartitionRead\022\'.google.spanner.v1" + + ".PartitionReadRequest\032$.google.spanner.v" + + "1.PartitionResponse\"T\202\323\344\223\002N\"I/v1/{sessio" + + "n=projects/*/instances/*/databases/*/ses" + + "sions/*}:partitionRead:\001*B\225\001\n\025com.google" + + ".spanner.v1B\014SpannerProtoP\001Z8google.gola" + + "ng.org/genproto/googleapis/spanner/v1;sp" + + "anner\252\002\027Google.Cloud.Spanner.V1\312\002\027Google" + + "\\Cloud\\Spanner\\V1b\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -325,7 +325,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_google_spanner_v1_ExecuteSqlRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_spanner_v1_ExecuteSqlRequest_descriptor, - new java.lang.String[] { "Session", "Transaction", "Sql", "Params", "ParamTypes", "ResumeToken", "QueryMode", "PartitionToken", }); + new java.lang.String[] { "Session", "Transaction", "Sql", "Params", "ParamTypes", "ResumeToken", "QueryMode", "PartitionToken", "Seqno", }); internal_static_google_spanner_v1_ExecuteSqlRequest_ParamTypesEntry_descriptor = internal_static_google_spanner_v1_ExecuteSqlRequest_descriptor.getNestedTypes().get(0); internal_static_google_spanner_v1_ExecuteSqlRequest_ParamTypesEntry_fieldAccessorTable = new diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java index 9712d6bd06a5..6f3d628dd488 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptions.java @@ -11,7 +11,7 @@ * re-used for the next transaction. It is not necessary to create a * new session for each transaction. * # Transaction Modes - * Cloud Spanner supports two transaction modes: + * Cloud Spanner supports three transaction modes: * 1. Locking read-write. This type of transaction is the only way * to write data into Cloud Spanner. These transactions rely on * pessimistic locking and, if necessary, two-phase commit. @@ -22,6 +22,12 @@ * writes. Snapshot read-only transactions can be configured to * read at timestamps in the past. Snapshot read-only * transactions do not need to be committed. + * 3. Partitioned DML. This type of transaction is used to execute + * a single Partitioned DML statement. Partitioned DML partitions + * the key space and runs the DML statement over each partition + * in parallel using separate, internal transactions that commit + * independently. Partitioned DML transactions do not need to be + * committed. * For transactions that only read, snapshot read-only transactions * provide simpler semantics and are almost always faster. In * particular, read-only transactions do not take locks, so they do @@ -43,11 +49,8 @@ * [Rollback][google.spanner.v1.Spanner.Rollback]. Long periods of * inactivity at the client may cause Cloud Spanner to release a * transaction's locks and abort it. - * Reads performed within a transaction acquire locks on the data - * being read. Writes can only be done at commit time, after all reads - * have been completed. * Conceptually, a read-write transaction consists of zero or more - * reads or SQL queries followed by + * reads or SQL statements followed by * [Commit][google.spanner.v1.Spanner.Commit]. At any time before * [Commit][google.spanner.v1.Spanner.Commit], the client can send a * [Rollback][google.spanner.v1.Spanner.Rollback] request to abort the @@ -173,6 +176,50 @@ * restriction also applies to in-progress reads and/or SQL queries whose * timestamp become too old while executing. Reads and SQL queries with * too-old read timestamps fail with the error `FAILED_PRECONDITION`. + * ## Partitioned DML Transactions + * Partitioned DML transactions are used to execute DML statements with a + * different execution strategy that provides different, and often better, + * scalability properties for large, table-wide operations than DML in a + * ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, + * should prefer using ReadWrite transactions. + * Partitioned DML partitions the keyspace and runs the DML statement on each + * partition in separate, internal transactions. These transactions commit + * automatically when complete, and run independently from one another. + * To reduce lock contention, this execution strategy only acquires read locks + * on rows that match the WHERE clause of the statement. Additionally, the + * smaller per-partition transactions hold locks for less time. + * That said, Partitioned DML is not a drop-in replacement for standard DML used + * in ReadWrite transactions. + * - The DML statement must be fully-partitionable. Specifically, the statement + * must be expressible as the union of many statements which each access only + * a single row of the table. + * - The statement is not applied atomically to all rows of the table. Rather, + * the statement is applied atomically to partitions of the table, in + * independent transactions. Secondary index rows are updated atomically + * with the base table rows. + * - Partitioned DML does not guarantee exactly-once execution semantics + * against a partition. The statement will be applied at least once to each + * partition. It is strongly recommended that the DML statement should be + * idempotent to avoid unexpected results. For instance, it is potentially + * dangerous to run a statement such as + * `UPDATE table SET column = column + 1` as it could be run multiple times + * against some rows. + * - The partitions are committed automatically - there is no support for + * Commit or Rollback. If the call returns an error, or if the client issuing + * the ExecuteSql call dies, it is possible that some rows had the statement + * executed on them successfully. It is also possible that statement was + * never executed against other rows. + * - Partitioned DML transactions may only contain the execution of a single + * DML statement via ExecuteSql or ExecuteStreamingSql. + * - If any error is encountered during the execution of the partitioned DML + * operation (for instance, a UNIQUE INDEX violation, division by zero, or a + * value that cannot be stored due to schema constraints), then the + * operation is stopped at that point and an error is returned. It is + * possible that at this point, some partitions have been committed (or even + * committed multiple times), and other partitions have not been run at all. + * Given the above, Partitioned DML is good fit for large, database-wide, + * operations that are idempotent, such as deleting old rows from a very large + * table. * * * Protobuf type {@code google.spanner.v1.TransactionOptions} @@ -241,6 +288,20 @@ private TransactionOptions( modeCase_ = 2; break; } + case 26: { + com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder subBuilder = null; + if (modeCase_ == 3) { + subBuilder = ((com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_).toBuilder(); + } + mode_ = + input.readMessage(com.google.spanner.v1.TransactionOptions.PartitionedDml.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_); + mode_ = subBuilder.buildPartial(); + } + modeCase_ = 3; + break; + } default: { if (!parseUnknownFieldProto3( input, unknownFields, extensionRegistry, tag)) { @@ -695,6 +756,426 @@ public com.google.spanner.v1.TransactionOptions.ReadWrite getDefaultInstanceForT } + public interface PartitionedDmlOrBuilder extends + // @@protoc_insertion_point(interface_extends:google.spanner.v1.TransactionOptions.PartitionedDml) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Message type to initiate a Partitioned DML transaction.
+   * 
+ * + * Protobuf type {@code google.spanner.v1.TransactionOptions.PartitionedDml} + */ + public static final class PartitionedDml extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:google.spanner.v1.TransactionOptions.PartitionedDml) + PartitionedDmlOrBuilder { + private static final long serialVersionUID = 0L; + // Use PartitionedDml.newBuilder() to construct. + private PartitionedDml(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PartitionedDml() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private PartitionedDml( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownFieldProto3( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.spanner.v1.TransactionProto.internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.v1.TransactionProto.internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.v1.TransactionOptions.PartitionedDml.class, com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.spanner.v1.TransactionOptions.PartitionedDml)) { + return super.equals(obj); + } + com.google.spanner.v1.TransactionOptions.PartitionedDml other = (com.google.spanner.v1.TransactionOptions.PartitionedDml) obj; + + boolean result = true; + result = result && unknownFields.equals(other.unknownFields); + return result; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.google.spanner.v1.TransactionOptions.PartitionedDml parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.google.spanner.v1.TransactionOptions.PartitionedDml prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Message type to initiate a Partitioned DML transaction.
+     * 
+ * + * Protobuf type {@code google.spanner.v1.TransactionOptions.PartitionedDml} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:google.spanner.v1.TransactionOptions.PartitionedDml) + com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.google.spanner.v1.TransactionProto.internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.spanner.v1.TransactionProto.internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.spanner.v1.TransactionOptions.PartitionedDml.class, com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder.class); + } + + // Construct using com.google.spanner.v1.TransactionOptions.PartitionedDml.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.google.spanner.v1.TransactionProto.internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor; + } + + @java.lang.Override + public com.google.spanner.v1.TransactionOptions.PartitionedDml getDefaultInstanceForType() { + return com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } + + @java.lang.Override + public com.google.spanner.v1.TransactionOptions.PartitionedDml build() { + com.google.spanner.v1.TransactionOptions.PartitionedDml result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.spanner.v1.TransactionOptions.PartitionedDml buildPartial() { + com.google.spanner.v1.TransactionOptions.PartitionedDml result = new com.google.spanner.v1.TransactionOptions.PartitionedDml(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return (Builder) super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return (Builder) super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return (Builder) super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return (Builder) super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return (Builder) super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.spanner.v1.TransactionOptions.PartitionedDml) { + return mergeFrom((com.google.spanner.v1.TransactionOptions.PartitionedDml)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.spanner.v1.TransactionOptions.PartitionedDml other) { + if (other == com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance()) return this; + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.spanner.v1.TransactionOptions.PartitionedDml parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (com.google.spanner.v1.TransactionOptions.PartitionedDml) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFieldsProto3(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:google.spanner.v1.TransactionOptions.PartitionedDml) + } + + // @@protoc_insertion_point(class_scope:google.spanner.v1.TransactionOptions.PartitionedDml) + private static final com.google.spanner.v1.TransactionOptions.PartitionedDml DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.google.spanner.v1.TransactionOptions.PartitionedDml(); + } + + public static com.google.spanner.v1.TransactionOptions.PartitionedDml getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PartitionedDml parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PartitionedDml(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.spanner.v1.TransactionOptions.PartitionedDml getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface ReadOnlyOrBuilder extends // @@protoc_insertion_point(interface_extends:google.spanner.v1.TransactionOptions.ReadOnly) com.google.protobuf.MessageOrBuilder { @@ -2986,6 +3467,7 @@ public com.google.spanner.v1.TransactionOptions.ReadOnly getDefaultInstanceForTy public enum ModeCase implements com.google.protobuf.Internal.EnumLite { READ_WRITE(1), + PARTITIONED_DML(3), READ_ONLY(2), MODE_NOT_SET(0); private final int value; @@ -3003,6 +3485,7 @@ public static ModeCase valueOf(int value) { public static ModeCase forNumber(int value) { switch (value) { case 1: return READ_WRITE; + case 3: return PARTITIONED_DML; case 2: return READ_ONLY; case 0: return MODE_NOT_SET; default: return null; @@ -3066,6 +3549,53 @@ public com.google.spanner.v1.TransactionOptions.ReadWriteOrBuilder getReadWriteO return com.google.spanner.v1.TransactionOptions.ReadWrite.getDefaultInstance(); } + public static final int PARTITIONED_DML_FIELD_NUMBER = 3; + /** + *
+   * Partitioned DML transaction.
+   * Authorization to begin a Partitioned DML transaction requires
+   * `spanner.databases.beginPartitionedDmlTransaction` permission
+   * on the `session` resource.
+   * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public boolean hasPartitionedDml() { + return modeCase_ == 3; + } + /** + *
+   * Partitioned DML transaction.
+   * Authorization to begin a Partitioned DML transaction requires
+   * `spanner.databases.beginPartitionedDmlTransaction` permission
+   * on the `session` resource.
+   * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public com.google.spanner.v1.TransactionOptions.PartitionedDml getPartitionedDml() { + if (modeCase_ == 3) { + return (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_; + } + return com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } + /** + *
+   * Partitioned DML transaction.
+   * Authorization to begin a Partitioned DML transaction requires
+   * `spanner.databases.beginPartitionedDmlTransaction` permission
+   * on the `session` resource.
+   * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder getPartitionedDmlOrBuilder() { + if (modeCase_ == 3) { + return (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_; + } + return com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } + public static final int READ_ONLY_FIELD_NUMBER = 2; /** *
@@ -3133,6 +3663,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
     if (modeCase_ == 2) {
       output.writeMessage(2, (com.google.spanner.v1.TransactionOptions.ReadOnly) mode_);
     }
+    if (modeCase_ == 3) {
+      output.writeMessage(3, (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_);
+    }
     unknownFields.writeTo(output);
   }
 
@@ -3150,6 +3683,10 @@ public int getSerializedSize() {
       size += com.google.protobuf.CodedOutputStream
         .computeMessageSize(2, (com.google.spanner.v1.TransactionOptions.ReadOnly) mode_);
     }
+    if (modeCase_ == 3) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeMessageSize(3, (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_);
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -3174,6 +3711,10 @@ public boolean equals(final java.lang.Object obj) {
         result = result && getReadWrite()
             .equals(other.getReadWrite());
         break;
+      case 3:
+        result = result && getPartitionedDml()
+            .equals(other.getPartitionedDml());
+        break;
       case 2:
         result = result && getReadOnly()
             .equals(other.getReadOnly());
@@ -3197,6 +3738,10 @@ public int hashCode() {
         hash = (37 * hash) + READ_WRITE_FIELD_NUMBER;
         hash = (53 * hash) + getReadWrite().hashCode();
         break;
+      case 3:
+        hash = (37 * hash) + PARTITIONED_DML_FIELD_NUMBER;
+        hash = (53 * hash) + getPartitionedDml().hashCode();
+        break;
       case 2:
         hash = (37 * hash) + READ_ONLY_FIELD_NUMBER;
         hash = (53 * hash) + getReadOnly().hashCode();
@@ -3307,7 +3852,7 @@ protected Builder newBuilderForType(
    * re-used for the next transaction. It is not necessary to create a
    * new session for each transaction.
    * # Transaction Modes
-   * Cloud Spanner supports two transaction modes:
+   * Cloud Spanner supports three transaction modes:
    *   1. Locking read-write. This type of transaction is the only way
    *      to write data into Cloud Spanner. These transactions rely on
    *      pessimistic locking and, if necessary, two-phase commit.
@@ -3318,6 +3863,12 @@ protected Builder newBuilderForType(
    *      writes. Snapshot read-only transactions can be configured to
    *      read at timestamps in the past. Snapshot read-only
    *      transactions do not need to be committed.
+   *   3. Partitioned DML. This type of transaction is used to execute
+   *      a single Partitioned DML statement. Partitioned DML partitions
+   *      the key space and runs the DML statement over each partition
+   *      in parallel using separate, internal transactions that commit
+   *      independently. Partitioned DML transactions do not need to be
+   *      committed.
    * For transactions that only read, snapshot read-only transactions
    * provide simpler semantics and are almost always faster. In
    * particular, read-only transactions do not take locks, so they do
@@ -3339,11 +3890,8 @@ protected Builder newBuilderForType(
    * [Rollback][google.spanner.v1.Spanner.Rollback].  Long periods of
    * inactivity at the client may cause Cloud Spanner to release a
    * transaction's locks and abort it.
-   * Reads performed within a transaction acquire locks on the data
-   * being read. Writes can only be done at commit time, after all reads
-   * have been completed.
    * Conceptually, a read-write transaction consists of zero or more
-   * reads or SQL queries followed by
+   * reads or SQL statements followed by
    * [Commit][google.spanner.v1.Spanner.Commit]. At any time before
    * [Commit][google.spanner.v1.Spanner.Commit], the client can send a
    * [Rollback][google.spanner.v1.Spanner.Rollback] request to abort the
@@ -3469,6 +4017,50 @@ protected Builder newBuilderForType(
    * restriction also applies to in-progress reads and/or SQL queries whose
    * timestamp become too old while executing. Reads and SQL queries with
    * too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+   * ## Partitioned DML Transactions
+   * Partitioned DML transactions are used to execute DML statements with a
+   * different execution strategy that provides different, and often better,
+   * scalability properties for large, table-wide operations than DML in a
+   * ReadWrite transaction. Smaller scoped statements, such as an OLTP workload,
+   * should prefer using ReadWrite transactions.
+   * Partitioned DML partitions the keyspace and runs the DML statement on each
+   * partition in separate, internal transactions. These transactions commit
+   * automatically when complete, and run independently from one another.
+   * To reduce lock contention, this execution strategy only acquires read locks
+   * on rows that match the WHERE clause of the statement. Additionally, the
+   * smaller per-partition transactions hold locks for less time.
+   * That said, Partitioned DML is not a drop-in replacement for standard DML used
+   * in ReadWrite transactions.
+   *  - The DML statement must be fully-partitionable. Specifically, the statement
+   *    must be expressible as the union of many statements which each access only
+   *    a single row of the table.
+   *  - The statement is not applied atomically to all rows of the table. Rather,
+   *    the statement is applied atomically to partitions of the table, in
+   *    independent transactions. Secondary index rows are updated atomically
+   *    with the base table rows.
+   *  - Partitioned DML does not guarantee exactly-once execution semantics
+   *    against a partition. The statement will be applied at least once to each
+   *    partition. It is strongly recommended that the DML statement should be
+   *    idempotent to avoid unexpected results. For instance, it is potentially
+   *    dangerous to run a statement such as
+   *    `UPDATE table SET column = column + 1` as it could be run multiple times
+   *    against some rows.
+   *  - The partitions are committed automatically - there is no support for
+   *    Commit or Rollback. If the call returns an error, or if the client issuing
+   *    the ExecuteSql call dies, it is possible that some rows had the statement
+   *    executed on them successfully. It is also possible that statement was
+   *    never executed against other rows.
+   *  - Partitioned DML transactions may only contain the execution of a single
+   *    DML statement via ExecuteSql or ExecuteStreamingSql.
+   *  - If any error is encountered during the execution of the partitioned DML
+   *    operation (for instance, a UNIQUE INDEX violation, division by zero, or a
+   *    value that cannot be stored due to schema constraints), then the
+   *    operation is stopped at that point and an error is returned. It is
+   *    possible that at this point, some partitions have been committed (or even
+   *    committed multiple times), and other partitions have not been run at all.
+   * Given the above, Partitioned DML is good fit for large, database-wide,
+   * operations that are idempotent, such as deleting old rows from a very large
+   * table.
    * 
* * Protobuf type {@code google.spanner.v1.TransactionOptions} @@ -3543,6 +4135,13 @@ public com.google.spanner.v1.TransactionOptions buildPartial() { result.mode_ = readWriteBuilder_.build(); } } + if (modeCase_ == 3) { + if (partitionedDmlBuilder_ == null) { + result.mode_ = mode_; + } else { + result.mode_ = partitionedDmlBuilder_.build(); + } + } if (modeCase_ == 2) { if (readOnlyBuilder_ == null) { result.mode_ = mode_; @@ -3604,6 +4203,10 @@ public Builder mergeFrom(com.google.spanner.v1.TransactionOptions other) { mergeReadWrite(other.getReadWrite()); break; } + case PARTITIONED_DML: { + mergePartitionedDml(other.getPartitionedDml()); + break; + } case READ_ONLY: { mergeReadOnly(other.getReadOnly()); break; @@ -3855,6 +4458,205 @@ public com.google.spanner.v1.TransactionOptions.ReadWriteOrBuilder getReadWriteO return readWriteBuilder_; } + private com.google.protobuf.SingleFieldBuilderV3< + com.google.spanner.v1.TransactionOptions.PartitionedDml, com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder, com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder> partitionedDmlBuilder_; + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public boolean hasPartitionedDml() { + return modeCase_ == 3; + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public com.google.spanner.v1.TransactionOptions.PartitionedDml getPartitionedDml() { + if (partitionedDmlBuilder_ == null) { + if (modeCase_ == 3) { + return (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_; + } + return com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } else { + if (modeCase_ == 3) { + return partitionedDmlBuilder_.getMessage(); + } + return com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public Builder setPartitionedDml(com.google.spanner.v1.TransactionOptions.PartitionedDml value) { + if (partitionedDmlBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mode_ = value; + onChanged(); + } else { + partitionedDmlBuilder_.setMessage(value); + } + modeCase_ = 3; + return this; + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public Builder setPartitionedDml( + com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder builderForValue) { + if (partitionedDmlBuilder_ == null) { + mode_ = builderForValue.build(); + onChanged(); + } else { + partitionedDmlBuilder_.setMessage(builderForValue.build()); + } + modeCase_ = 3; + return this; + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public Builder mergePartitionedDml(com.google.spanner.v1.TransactionOptions.PartitionedDml value) { + if (partitionedDmlBuilder_ == null) { + if (modeCase_ == 3 && + mode_ != com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance()) { + mode_ = com.google.spanner.v1.TransactionOptions.PartitionedDml.newBuilder((com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_) + .mergeFrom(value).buildPartial(); + } else { + mode_ = value; + } + onChanged(); + } else { + if (modeCase_ == 3) { + partitionedDmlBuilder_.mergeFrom(value); + } + partitionedDmlBuilder_.setMessage(value); + } + modeCase_ = 3; + return this; + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public Builder clearPartitionedDml() { + if (partitionedDmlBuilder_ == null) { + if (modeCase_ == 3) { + modeCase_ = 0; + mode_ = null; + onChanged(); + } + } else { + if (modeCase_ == 3) { + modeCase_ = 0; + mode_ = null; + } + partitionedDmlBuilder_.clear(); + } + return this; + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder getPartitionedDmlBuilder() { + return getPartitionedDmlFieldBuilder().getBuilder(); + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + public com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder getPartitionedDmlOrBuilder() { + if ((modeCase_ == 3) && (partitionedDmlBuilder_ != null)) { + return partitionedDmlBuilder_.getMessageOrBuilder(); + } else { + if (modeCase_ == 3) { + return (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_; + } + return com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } + } + /** + *
+     * Partitioned DML transaction.
+     * Authorization to begin a Partitioned DML transaction requires
+     * `spanner.databases.beginPartitionedDmlTransaction` permission
+     * on the `session` resource.
+     * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.spanner.v1.TransactionOptions.PartitionedDml, com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder, com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder> + getPartitionedDmlFieldBuilder() { + if (partitionedDmlBuilder_ == null) { + if (!(modeCase_ == 3)) { + mode_ = com.google.spanner.v1.TransactionOptions.PartitionedDml.getDefaultInstance(); + } + partitionedDmlBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.spanner.v1.TransactionOptions.PartitionedDml, com.google.spanner.v1.TransactionOptions.PartitionedDml.Builder, com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder>( + (com.google.spanner.v1.TransactionOptions.PartitionedDml) mode_, + getParentForChildren(), + isClean()); + mode_ = null; + } + modeCase_ = 3; + onChanged();; + return partitionedDmlBuilder_; + } + private com.google.protobuf.SingleFieldBuilderV3< com.google.spanner.v1.TransactionOptions.ReadOnly, com.google.spanner.v1.TransactionOptions.ReadOnly.Builder, com.google.spanner.v1.TransactionOptions.ReadOnlyOrBuilder> readOnlyBuilder_; /** diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java index 5456c87177ac..1807af45af3d 100644 --- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java +++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionOptionsOrBuilder.java @@ -41,6 +41,40 @@ public interface TransactionOptionsOrBuilder extends */ com.google.spanner.v1.TransactionOptions.ReadWriteOrBuilder getReadWriteOrBuilder(); + /** + *
+   * Partitioned DML transaction.
+   * Authorization to begin a Partitioned DML transaction requires
+   * `spanner.databases.beginPartitionedDmlTransaction` permission
+   * on the `session` resource.
+   * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + boolean hasPartitionedDml(); + /** + *
+   * Partitioned DML transaction.
+   * Authorization to begin a Partitioned DML transaction requires
+   * `spanner.databases.beginPartitionedDmlTransaction` permission
+   * on the `session` resource.
+   * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + com.google.spanner.v1.TransactionOptions.PartitionedDml getPartitionedDml(); + /** + *
+   * Partitioned DML transaction.
+   * Authorization to begin a Partitioned DML transaction requires
+   * `spanner.databases.beginPartitionedDmlTransaction` permission
+   * on the `session` resource.
+   * 
+ * + * .google.spanner.v1.TransactionOptions.PartitionedDml partitioned_dml = 3; + */ + com.google.spanner.v1.TransactionOptions.PartitionedDmlOrBuilder getPartitionedDmlOrBuilder(); + /** *
    * Transaction will not write.
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java
index 7b6500bb2cbb..ef3b3fda954b 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/java/com/google/spanner/v1/TransactionProto.java
@@ -24,6 +24,11 @@ public static void registerAllExtensions(
   static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_spanner_v1_TransactionOptions_ReadWrite_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
     internal_static_google_spanner_v1_TransactionOptions_ReadOnly_descriptor;
   static final 
@@ -51,30 +56,32 @@ public static void registerAllExtensions(
       "\n#google/spanner/v1/transaction.proto\022\021g" +
       "oogle.spanner.v1\032\034google/api/annotations" +
       ".proto\032\036google/protobuf/duration.proto\032\037" +
-      "google/protobuf/timestamp.proto\"\340\003\n\022Tran" +
+      "google/protobuf/timestamp.proto\"\303\004\n\022Tran" +
       "sactionOptions\022E\n\nread_write\030\001 \001(\0132/.goo" +
       "gle.spanner.v1.TransactionOptions.ReadWr" +
-      "iteH\000\022C\n\tread_only\030\002 \001(\0132..google.spanne" +
-      "r.v1.TransactionOptions.ReadOnlyH\000\032\013\n\tRe" +
-      "adWrite\032\250\002\n\010ReadOnly\022\020\n\006strong\030\001 \001(\010H\000\0228" +
-      "\n\022min_read_timestamp\030\002 \001(\0132\032.google.prot" +
-      "obuf.TimestampH\000\0222\n\rmax_staleness\030\003 \001(\0132" +
-      "\031.google.protobuf.DurationH\000\0224\n\016read_tim" +
-      "estamp\030\004 \001(\0132\032.google.protobuf.Timestamp" +
-      "H\000\0224\n\017exact_staleness\030\005 \001(\0132\031.google.pro" +
-      "tobuf.DurationH\000\022\035\n\025return_read_timestam" +
-      "p\030\006 \001(\010B\021\n\017timestamp_boundB\006\n\004mode\"M\n\013Tr" +
-      "ansaction\022\n\n\002id\030\001 \001(\014\0222\n\016read_timestamp\030" +
-      "\002 \001(\0132\032.google.protobuf.Timestamp\"\244\001\n\023Tr" +
-      "ansactionSelector\022;\n\nsingle_use\030\001 \001(\0132%." +
-      "google.spanner.v1.TransactionOptionsH\000\022\014" +
-      "\n\002id\030\002 \001(\014H\000\0226\n\005begin\030\003 \001(\0132%.google.spa" +
-      "nner.v1.TransactionOptionsH\000B\n\n\010selector" +
-      "B\231\001\n\025com.google.spanner.v1B\020TransactionP" +
-      "rotoP\001Z8google.golang.org/genproto/googl" +
-      "eapis/spanner/v1;spanner\252\002\027Google.Cloud." +
-      "Spanner.V1\312\002\027Google\\Cloud\\Spanner\\V1b\006pr" +
-      "oto3"
+      "iteH\000\022O\n\017partitioned_dml\030\003 \001(\01324.google." +
+      "spanner.v1.TransactionOptions.Partitione" +
+      "dDmlH\000\022C\n\tread_only\030\002 \001(\0132..google.spann" +
+      "er.v1.TransactionOptions.ReadOnlyH\000\032\013\n\tR" +
+      "eadWrite\032\020\n\016PartitionedDml\032\250\002\n\010ReadOnly\022" +
+      "\020\n\006strong\030\001 \001(\010H\000\0228\n\022min_read_timestamp\030" +
+      "\002 \001(\0132\032.google.protobuf.TimestampH\000\0222\n\rm" +
+      "ax_staleness\030\003 \001(\0132\031.google.protobuf.Dur" +
+      "ationH\000\0224\n\016read_timestamp\030\004 \001(\0132\032.google" +
+      ".protobuf.TimestampH\000\0224\n\017exact_staleness" +
+      "\030\005 \001(\0132\031.google.protobuf.DurationH\000\022\035\n\025r" +
+      "eturn_read_timestamp\030\006 \001(\010B\021\n\017timestamp_" +
+      "boundB\006\n\004mode\"M\n\013Transaction\022\n\n\002id\030\001 \001(\014" +
+      "\0222\n\016read_timestamp\030\002 \001(\0132\032.google.protob" +
+      "uf.Timestamp\"\244\001\n\023TransactionSelector\022;\n\n" +
+      "single_use\030\001 \001(\0132%.google.spanner.v1.Tra" +
+      "nsactionOptionsH\000\022\014\n\002id\030\002 \001(\014H\000\0226\n\005begin" +
+      "\030\003 \001(\0132%.google.spanner.v1.TransactionOp" +
+      "tionsH\000B\n\n\010selectorB\231\001\n\025com.google.spann" +
+      "er.v1B\020TransactionProtoP\001Z8google.golang" +
+      ".org/genproto/googleapis/spanner/v1;span" +
+      "ner\252\002\027Google.Cloud.Spanner.V1\312\002\027Google\\C" +
+      "loud\\Spanner\\V1b\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
@@ -96,15 +103,21 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     internal_static_google_spanner_v1_TransactionOptions_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_google_spanner_v1_TransactionOptions_descriptor,
-        new java.lang.String[] { "ReadWrite", "ReadOnly", "Mode", });
+        new java.lang.String[] { "ReadWrite", "PartitionedDml", "ReadOnly", "Mode", });
     internal_static_google_spanner_v1_TransactionOptions_ReadWrite_descriptor =
       internal_static_google_spanner_v1_TransactionOptions_descriptor.getNestedTypes().get(0);
     internal_static_google_spanner_v1_TransactionOptions_ReadWrite_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_google_spanner_v1_TransactionOptions_ReadWrite_descriptor,
         new java.lang.String[] { });
-    internal_static_google_spanner_v1_TransactionOptions_ReadOnly_descriptor =
+    internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor =
       internal_static_google_spanner_v1_TransactionOptions_descriptor.getNestedTypes().get(1);
+    internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_google_spanner_v1_TransactionOptions_PartitionedDml_descriptor,
+        new java.lang.String[] { });
+    internal_static_google_spanner_v1_TransactionOptions_ReadOnly_descriptor =
+      internal_static_google_spanner_v1_TransactionOptions_descriptor.getNestedTypes().get(2);
     internal_static_google_spanner_v1_TransactionOptions_ReadOnly_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_google_spanner_v1_TransactionOptions_ReadOnly_descriptor,
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/keys.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/keys.proto
index 463fb689cb3c..2078610f310f 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/keys.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/keys.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/mutation.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/mutation.proto
index 30ab1e6e7e7d..d4d5354c9965 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/mutation.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/mutation.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/query_plan.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/query_plan.proto
index 44c0dcf4ca43..7e82a404fc42 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/query_plan.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/query_plan.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/result_set.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/result_set.proto
index ce3b3026f279..152b1368a2ec 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/result_set.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/result_set.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -45,8 +45,13 @@ message ResultSet {
   // [here][google.spanner.v1.TypeCode].
   repeated google.protobuf.ListValue rows = 2;
 
-  // Query plan and execution statistics for the query that produced this
-  // result set. These can be requested by setting
+  // Query plan and execution statistics for the SQL statement that
+  // produced this result set. These can be requested by setting
+  // [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+  // DML statements always produce stats containing the number of rows
+  // modified, unless executed using the
+  // [ExecuteSqlRequest.QueryMode.PLAN][google.spanner.v1.ExecuteSqlRequest.QueryMode.PLAN] [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
+  // Other fields may or may not be populated, based on the
   // [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode].
   ResultSetStats stats = 3;
 }
@@ -146,10 +151,12 @@ message PartialResultSet {
   // same session invalidates the token.
   bytes resume_token = 4;
 
-  // Query plan and execution statistics for the query that produced this
+  // Query plan and execution statistics for the statement that produced this
   // streaming result set. These can be requested by setting
   // [ExecuteSqlRequest.query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode] and are sent
   // only once with the last response in the stream.
+  // This field will also be present in the last response for DML
+  // statements.
   ResultSetStats stats = 5;
 }
 
@@ -185,4 +192,14 @@ message ResultSetStats {
   //       "cpu_time": "1.19 secs"
   //     }
   google.protobuf.Struct query_stats = 2;
+
+  // The number of rows modified by the DML statement.
+  oneof row_count {
+    // Standard DML returns an exact count of rows that were modified.
+    int64 row_count_exact = 3;
+
+    // Partitioned DML does not offer exactly-once semantics, so it
+    // returns a lower bound of the rows modified.
+    int64 row_count_lower_bound = 4;
+  }
 }
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto
index 30eecea9ff27..7d3de6ad771e 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/spanner.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -88,12 +88,12 @@ service Spanner {
     };
   }
 
-  // Executes an SQL query, returning all rows in a single reply. This
+  // Executes an SQL statement, returning all results in a single reply. This
   // method cannot be used to return a result set larger than 10 MiB;
   // if the query yields more data than that, the query fails with
   // a `FAILED_PRECONDITION` error.
   //
-  // Queries inside read-write transactions might return `ABORTED`. If
+  // Operations inside read-write transactions might return `ABORTED`. If
   // this occurs, the application should restart the transaction from
   // the beginning. See [Transaction][google.spanner.v1.Transaction] for more details.
   //
@@ -197,8 +197,11 @@ service Spanner {
   // of the query result to read.  The same session and read-only transaction
   // must be used by the PartitionQueryRequest used to create the
   // partition tokens and the ExecuteSqlRequests that use the partition tokens.
+  //
   // Partition tokens become invalid when the session used to create them
-  // is deleted or begins a new transaction.
+  // is deleted, is idle for too long, begins a new transaction, or becomes too
+  // old.  When any of these happen, it is not possible to resume the query, and
+  // the whole operation must be restarted from the beginning.
   rpc PartitionQuery(PartitionQueryRequest) returns (PartitionResponse) {
     option (google.api.http) = {
       post: "/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery"
@@ -211,9 +214,14 @@ service Spanner {
   // by [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read
   // result to read.  The same session and read-only transaction must be used by
   // the PartitionReadRequest used to create the partition tokens and the
-  // ReadRequests that use the partition tokens.
+  // ReadRequests that use the partition tokens.  There are no ordering
+  // guarantees on rows returned among the returned partition tokens, or even
+  // within each individual StreamingRead call issued with a partition_token.
+  //
   // Partition tokens become invalid when the session used to create them
-  // is deleted or begins a new transaction.
+  // is deleted, is idle for too long, begins a new transaction, or becomes too
+  // old.  When any of these happen, it is not possible to resume the read, and
+  // the whole operation must be restarted from the beginning.
   rpc PartitionRead(PartitionReadRequest) returns (PartitionResponse) {
     option (google.api.http) = {
       post: "/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead"
@@ -309,18 +317,17 @@ message DeleteSessionRequest {
 // The request for [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and
 // [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql].
 message ExecuteSqlRequest {
-  // Mode in which the query must be processed.
+  // Mode in which the statement must be processed.
   enum QueryMode {
-    // The default mode where only the query result, without any information
-    // about the query plan is returned.
+    // The default mode. Only the statement results are returned.
     NORMAL = 0;
 
-    // This mode returns only the query plan, without any result rows or
+    // This mode returns only the query plan, without any results or
     // execution statistics information.
     PLAN = 1;
 
     // This mode returns both the query plan and the execution statistics along
-    // with the result rows.
+    // with the results.
     PROFILE = 2;
   }
 
@@ -329,12 +336,23 @@ message ExecuteSqlRequest {
 
   // The transaction to use. If none is provided, the default is a
   // temporary read-only transaction with strong concurrency.
+  //
+  // The transaction to use.
+  //
+  // For queries, if none is provided, the default is a temporary read-only
+  // transaction with strong concurrency.
+  //
+  // Standard DML statements require a ReadWrite transaction. Single-use
+  // transactions are not supported (to avoid replay).  The caller must
+  // either supply an existing transaction ID or begin a new transaction.
+  //
+  // Partitioned DML requires an existing PartitionedDml transaction ID.
   TransactionSelector transaction = 2;
 
-  // Required. The SQL query string.
+  // Required. The SQL string.
   string sql = 3;
 
-  // The SQL query string can contain parameter placeholders. A parameter
+  // The SQL string can contain parameter placeholders. A parameter
   // placeholder consists of `'@'` followed by the parameter
   // name. Parameter names consist of any combination of letters,
   // numbers, and underscores.
@@ -343,7 +361,7 @@ message ExecuteSqlRequest {
   // parameter name can be used more than once, for example:
   //   `"WHERE id > @msg_id AND id < @msg_id + 100"`
   //
-  // It is an error to execute an SQL query with unbound parameters.
+  // It is an error to execute an SQL statement with unbound parameters.
   //
   // Parameter values are specified using `params`, which is a JSON
   // object whose keys are parameter names, and whose values are the
@@ -355,15 +373,15 @@ message ExecuteSqlRequest {
   // of type `STRING` both appear in [params][google.spanner.v1.ExecuteSqlRequest.params] as JSON strings.
   //
   // In these cases, `param_types` can be used to specify the exact
-  // SQL type for some or all of the SQL query parameters. See the
+  // SQL type for some or all of the SQL statement parameters. See the
   // definition of [Type][google.spanner.v1.Type] for more information
   // about SQL types.
   map param_types = 5;
 
-  // If this request is resuming a previously interrupted SQL query
+  // If this request is resuming a previously interrupted SQL statement
   // execution, `resume_token` should be copied from the last
   // [PartialResultSet][google.spanner.v1.PartialResultSet] yielded before the interruption. Doing this
-  // enables the new SQL query execution to resume where the last one left
+  // enables the new SQL statement execution to resume where the last one left
   // off. The rest of the request parameters must exactly match the
   // request that yielded this token.
   bytes resume_token = 6;
@@ -378,6 +396,18 @@ message ExecuteSqlRequest {
   // match for the values of fields common to this message and the
   // PartitionQueryRequest message used to create this partition_token.
   bytes partition_token = 8;
+
+  // A per-transaction sequence number used to identify this request. This
+  // makes each request idempotent such that if the request is received multiple
+  // times, at most one will succeed.
+  //
+  // The sequence number must be monotonically increasing within the
+  // transaction. If a request arrives for the first time with an out-of-order
+  // sequence number, the transaction may be aborted. Replays of previously
+  // handled requests will yield the same response as the first execution.
+  //
+  // Required for DML statements. Ignored for queries.
+  int64 seqno = 9;
 }
 
 // Options for a PartitionQueryRequest and
@@ -417,6 +447,10 @@ message PartitionQueryRequest {
   // union operator conceptually divides one or more tables into multiple
   // splits, remotely evaluates a subquery independently on each split, and
   // then unions all results.
+  //
+  // This must not contain DML commands, such as INSERT, UPDATE, or
+  // DELETE. Use [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] with a
+  // PartitionedDml transaction for large, partition-friendly DML operations.
   string sql = 3;
 
   // The SQL query string can contain parameter placeholders. A parameter
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto
index d4eb7f9565a5..e7fafc0e7655 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/transaction.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -38,7 +38,7 @@ option php_namespace = "Google\\Cloud\\Spanner\\V1";
 //
 // # Transaction Modes
 //
-// Cloud Spanner supports two transaction modes:
+// Cloud Spanner supports three transaction modes:
 //
 //   1. Locking read-write. This type of transaction is the only way
 //      to write data into Cloud Spanner. These transactions rely on
@@ -52,6 +52,13 @@ option php_namespace = "Google\\Cloud\\Spanner\\V1";
 //      read at timestamps in the past. Snapshot read-only
 //      transactions do not need to be committed.
 //
+//   3. Partitioned DML. This type of transaction is used to execute
+//      a single Partitioned DML statement. Partitioned DML partitions
+//      the key space and runs the DML statement over each partition
+//      in parallel using separate, internal transactions that commit
+//      independently. Partitioned DML transactions do not need to be
+//      committed.
+//
 // For transactions that only read, snapshot read-only transactions
 // provide simpler semantics and are almost always faster. In
 // particular, read-only transactions do not take locks, so they do
@@ -78,11 +85,8 @@ option php_namespace = "Google\\Cloud\\Spanner\\V1";
 // inactivity at the client may cause Cloud Spanner to release a
 // transaction's locks and abort it.
 //
-// Reads performed within a transaction acquire locks on the data
-// being read. Writes can only be done at commit time, after all reads
-// have been completed.
 // Conceptually, a read-write transaction consists of zero or more
-// reads or SQL queries followed by
+// reads or SQL statements followed by
 // [Commit][google.spanner.v1.Spanner.Commit]. At any time before
 // [Commit][google.spanner.v1.Spanner.Commit], the client can send a
 // [Rollback][google.spanner.v1.Spanner.Rollback] request to abort the
@@ -245,6 +249,62 @@ option php_namespace = "Google\\Cloud\\Spanner\\V1";
 // restriction also applies to in-progress reads and/or SQL queries whose
 // timestamp become too old while executing. Reads and SQL queries with
 // too-old read timestamps fail with the error `FAILED_PRECONDITION`.
+//
+// ## Partitioned DML Transactions
+//
+// Partitioned DML transactions are used to execute DML statements with a
+// different execution strategy that provides different, and often better,
+// scalability properties for large, table-wide operations than DML in a
+// ReadWrite transaction. Smaller scoped statements, such as an OLTP workload,
+// should prefer using ReadWrite transactions.
+//
+// Partitioned DML partitions the keyspace and runs the DML statement on each
+// partition in separate, internal transactions. These transactions commit
+// automatically when complete, and run independently from one another.
+//
+// To reduce lock contention, this execution strategy only acquires read locks
+// on rows that match the WHERE clause of the statement. Additionally, the
+// smaller per-partition transactions hold locks for less time.
+//
+// That said, Partitioned DML is not a drop-in replacement for standard DML used
+// in ReadWrite transactions.
+//
+//  - The DML statement must be fully-partitionable. Specifically, the statement
+//    must be expressible as the union of many statements which each access only
+//    a single row of the table.
+//
+//  - The statement is not applied atomically to all rows of the table. Rather,
+//    the statement is applied atomically to partitions of the table, in
+//    independent transactions. Secondary index rows are updated atomically
+//    with the base table rows.
+//
+//  - Partitioned DML does not guarantee exactly-once execution semantics
+//    against a partition. The statement will be applied at least once to each
+//    partition. It is strongly recommended that the DML statement should be
+//    idempotent to avoid unexpected results. For instance, it is potentially
+//    dangerous to run a statement such as
+//    `UPDATE table SET column = column + 1` as it could be run multiple times
+//    against some rows.
+//
+//  - The partitions are committed automatically - there is no support for
+//    Commit or Rollback. If the call returns an error, or if the client issuing
+//    the ExecuteSql call dies, it is possible that some rows had the statement
+//    executed on them successfully. It is also possible that statement was
+//    never executed against other rows.
+//
+//  - Partitioned DML transactions may only contain the execution of a single
+//    DML statement via ExecuteSql or ExecuteStreamingSql.
+//
+//  - If any error is encountered during the execution of the partitioned DML
+//    operation (for instance, a UNIQUE INDEX violation, division by zero, or a
+//    value that cannot be stored due to schema constraints), then the
+//    operation is stopped at that point and an error is returned. It is
+//    possible that at this point, some partitions have been committed (or even
+//    committed multiple times), and other partitions have not been run at all.
+//
+// Given the above, Partitioned DML is good fit for large, database-wide,
+// operations that are idempotent, such as deleting old rows from a very large
+// table.
 message TransactionOptions {
   // Message type to initiate a read-write transaction. Currently this
   // transaction type has no options.
@@ -252,6 +312,11 @@ message TransactionOptions {
 
   }
 
+  // Message type to initiate a Partitioned DML transaction.
+  message PartitionedDml {
+
+  }
+
   // Message type to initiate a read-only transaction.
   message ReadOnly {
     // How to choose the timestamp for the read-only transaction.
@@ -329,6 +394,13 @@ message TransactionOptions {
     // on the `session` resource.
     ReadWrite read_write = 1;
 
+    // Partitioned DML transaction.
+    //
+    // Authorization to begin a Partitioned DML transaction requires
+    // `spanner.databases.beginPartitionedDmlTransaction` permission
+    // on the `session` resource.
+    PartitionedDml partitioned_dml = 3;
+
     // Transaction will not write.
     //
     // Authorization to begin a read-only transaction requires
diff --git a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto
index 048cc0b076ec..de5203dd5f9f 100644
--- a/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto
+++ b/google-api-grpc/proto-google-cloud-spanner-v1/src/main/proto/google/spanner/v1/type.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google Inc.
+// Copyright 2018 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java
index 844f33a1f9e3..652a428be167 100644
--- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java
+++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java
@@ -636,7 +636,7 @@ private static Builder initDefaults(Builder builder) {
 
       builder
           .deleteInstanceSettings()
-          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
@@ -661,7 +661,7 @@ private static Builder initDefaults(Builder builder) {
 
       builder
           .deleteClusterSettings()
-          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java
index 3ce8c07eb061..ad6034d6c922 100644
--- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java
+++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java
@@ -484,28 +484,6 @@ public static class Builder
               .setTotalTimeout(Duration.ofMillis(600000L))
               .build();
       definitions.put("default", settings);
-      settings =
-          RetrySettings.newBuilder()
-              .setInitialRetryDelay(Duration.ofMillis(100L))
-              .setRetryDelayMultiplier(1.3)
-              .setMaxRetryDelay(Duration.ofMillis(60000L))
-              .setInitialRpcTimeout(Duration.ofMillis(130000L))
-              .setRpcTimeoutMultiplier(1.0)
-              .setMaxRpcTimeout(Duration.ofMillis(130000L))
-              .setTotalTimeout(Duration.ofMillis(3600000L))
-              .build();
-      definitions.put("create_table", settings);
-      settings =
-          RetrySettings.newBuilder()
-              .setInitialRetryDelay(Duration.ofMillis(100L))
-              .setRetryDelayMultiplier(1.3)
-              .setMaxRetryDelay(Duration.ofMillis(60000L))
-              .setInitialRpcTimeout(Duration.ofMillis(900000L))
-              .setRpcTimeoutMultiplier(1.0)
-              .setMaxRpcTimeout(Duration.ofMillis(900000L))
-              .setTotalTimeout(Duration.ofMillis(3600000L))
-              .build();
-      definitions.put("drop_row_range", settings);
       RETRY_PARAM_DEFINITIONS = definitions.build();
     }
 
@@ -579,7 +557,7 @@ private static Builder initDefaults(Builder builder) {
       builder
           .createTableSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
-          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("create_table"));
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
           .createTableFromSnapshotSettings()
@@ -598,7 +576,7 @@ private static Builder initDefaults(Builder builder) {
 
       builder
           .deleteTableSettings()
-          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
@@ -609,7 +587,7 @@ private static Builder initDefaults(Builder builder) {
       builder
           .dropRowRangeSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
-          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("drop_row_range"));
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
       builder
           .generateConsistencyTokenSettings()
diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java
index 9289801b5444..5a2a03039fb3 100644
--- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java
+++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java
@@ -309,11 +309,26 @@ private static Builder createDefault() {
 
     private static Builder initDefaults(Builder builder) {
 
+      builder
+          .readRowsSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("streaming"));
+
+      builder
+          .sampleRowKeysSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
       builder
           .mutateRowSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
 
+      builder
+          .mutateRowsSettings()
+          .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
+          .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
+
       builder
           .checkAndMutateRowSettings()
           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceClient.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceClient.java
new file mode 100644
index 000000000000..f07fa8298d50
--- /dev/null
+++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceClient.java
@@ -0,0 +1,347 @@
+/*
+ * Copyright 2018 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.cloud.asset.v1beta1;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.longrunning.OperationFuture;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.asset.v1beta1.stub.AssetServiceStub;
+import com.google.cloud.asset.v1beta1.stub.AssetServiceStubSettings;
+import com.google.longrunning.Operation;
+import com.google.longrunning.OperationsClient;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND SERVICE
+/**
+ * Service Description: Asset service definition.
+ *
+ * 

This class provides the ability to make remote calls to the backing service through method + * calls that map to API methods. Sample code to get started: + * + *

+ * 
+ * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+ *   ProjectName parent = ProjectName.of("[PROJECT]");
+ *   ContentType contentType = ContentType.CONTENT_TYPE_UNSPECIFIED;
+ *   TimeWindow readTimeWindow = TimeWindow.newBuilder().build();
+ *   BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder()
+ *     .setParent(parent.toString())
+ *     .setContentType(contentType)
+ *     .setReadTimeWindow(readTimeWindow)
+ *     .build();
+ *   BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
+ * }
+ * 
+ * 
+ * + *

Note: close() needs to be called on the assetServiceClient object to clean up resources such + * as threads. In the example above, try-with-resources is used, which automatically calls close(). + * + *

The surface of this class includes several types of Java methods for each of the API's + * methods: + * + *

    + *
  1. A "flattened" method. With this type of method, the fields of the request type have been + * converted into function parameters. It may be the case that not all fields are available as + * parameters, and not every API method will have a flattened method entry point. + *
  2. A "request object" method. This type of method only takes one parameter, a request object, + * which must be constructed before the call. Not every API method will have a request object + * method. + *
  3. A "callable" method. This type of method takes no parameters and returns an immutable API + * callable object, which can be used to initiate calls to the service. + *
+ * + *

See the individual methods for example code. + * + *

Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *

This class can be customized by passing in a custom instance of AssetServiceSettings to + * create(). For example: + * + *

To customize credentials: + * + *

+ * 
+ * AssetServiceSettings assetServiceSettings =
+ *     AssetServiceSettings.newBuilder()
+ *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ *         .build();
+ * AssetServiceClient assetServiceClient =
+ *     AssetServiceClient.create(assetServiceSettings);
+ * 
+ * 
+ * + * To customize the endpoint: + * + *
+ * 
+ * AssetServiceSettings assetServiceSettings =
+ *     AssetServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * AssetServiceClient assetServiceClient =
+ *     AssetServiceClient.create(assetServiceSettings);
+ * 
+ * 
+ */ +@Generated("by gapic-generator") +@BetaApi +public class AssetServiceClient implements BackgroundResource { + private final AssetServiceSettings settings; + private final AssetServiceStub stub; + private final OperationsClient operationsClient; + + /** Constructs an instance of AssetServiceClient with default settings. */ + public static final AssetServiceClient create() throws IOException { + return create(AssetServiceSettings.newBuilder().build()); + } + + /** + * Constructs an instance of AssetServiceClient, using the given settings. The channels are + * created based on the settings passed in, or defaults for any settings that are not set. + */ + public static final AssetServiceClient create(AssetServiceSettings settings) throws IOException { + return new AssetServiceClient(settings); + } + + /** + * Constructs an instance of AssetServiceClient, using the given stub for making calls. This is + * for advanced usage - prefer to use AssetServiceSettings}. + */ + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public static final AssetServiceClient create(AssetServiceStub stub) { + return new AssetServiceClient(stub); + } + + /** + * Constructs an instance of AssetServiceClient, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected AssetServiceClient(AssetServiceSettings settings) throws IOException { + this.settings = settings; + this.stub = ((AssetServiceStubSettings) settings.getStubSettings()).createStub(); + this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + protected AssetServiceClient(AssetServiceStub stub) { + this.settings = null; + this.stub = stub; + this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); + } + + public final AssetServiceSettings getSettings() { + return settings; + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public AssetServiceStub getStub() { + return stub; + } + + /** + * Returns the OperationsClient that can be used to query the status of a long-running operation + * returned by another API method call. + */ + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationsClient getOperationsClient() { + return operationsClient; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Exports assets with time and resource types to a given Google Cloud Storage location. The + * output format is newline-delimited JSON. This API implements the + * [google.longrunning.Operation][google.longrunning.Operation] API allowing users to keep track + * of the export. + * + *

Sample code: + * + *


+   * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   OutputConfig outputConfig = OutputConfig.newBuilder().build();
+   *   ExportAssetsRequest request = ExportAssetsRequest.newBuilder()
+   *     .setParent(parent.toString())
+   *     .setOutputConfig(outputConfig)
+   *     .build();
+   *   ExportAssetsResponse response = assetServiceClient.exportAssetsAsync(request).get();
+   * }
+   * 
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public final OperationFuture exportAssetsAsync( + ExportAssetsRequest request) { + return exportAssetsOperationCallable().futureCall(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Exports assets with time and resource types to a given Google Cloud Storage location. The + * output format is newline-delimited JSON. This API implements the + * [google.longrunning.Operation][google.longrunning.Operation] API allowing users to keep track + * of the export. + * + *

Sample code: + * + *


+   * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   OutputConfig outputConfig = OutputConfig.newBuilder().build();
+   *   ExportAssetsRequest request = ExportAssetsRequest.newBuilder()
+   *     .setParent(parent.toString())
+   *     .setOutputConfig(outputConfig)
+   *     .build();
+   *   OperationFuture<Operation> future = assetServiceClient.exportAssetsOperationCallable().futureCall(request);
+   *   // Do something
+   *   ExportAssetsResponse response = future.get();
+   * }
+   * 
+ */ + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public final OperationCallable + exportAssetsOperationCallable() { + return stub.exportAssetsOperationCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Exports assets with time and resource types to a given Google Cloud Storage location. The + * output format is newline-delimited JSON. This API implements the + * [google.longrunning.Operation][google.longrunning.Operation] API allowing users to keep track + * of the export. + * + *

Sample code: + * + *


+   * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   OutputConfig outputConfig = OutputConfig.newBuilder().build();
+   *   ExportAssetsRequest request = ExportAssetsRequest.newBuilder()
+   *     .setParent(parent.toString())
+   *     .setOutputConfig(outputConfig)
+   *     .build();
+   *   ApiFuture<Operation> future = assetServiceClient.exportAssetsCallable().futureCall(request);
+   *   // Do something
+   *   Operation response = future.get();
+   * }
+   * 
+ */ + public final UnaryCallable exportAssetsCallable() { + return stub.exportAssetsCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Batch gets assets update history that overlaps a time window. For RESOURCE content, this API + * outputs history with asset in both non-delete or deleted status. For IAM_POLICY content, this + * API only outputs history when asset and its attached IAM POLICY both exist. So there may be + * gaps in the output history. + * + *

Sample code: + * + *


+   * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   ContentType contentType = ContentType.CONTENT_TYPE_UNSPECIFIED;
+   *   TimeWindow readTimeWindow = TimeWindow.newBuilder().build();
+   *   BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder()
+   *     .setParent(parent.toString())
+   *     .setContentType(contentType)
+   *     .setReadTimeWindow(readTimeWindow)
+   *     .build();
+   *   BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
+   * }
+   * 
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final BatchGetAssetsHistoryResponse batchGetAssetsHistory( + BatchGetAssetsHistoryRequest request) { + return batchGetAssetsHistoryCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Batch gets assets update history that overlaps a time window. For RESOURCE content, this API + * outputs history with asset in both non-delete or deleted status. For IAM_POLICY content, this + * API only outputs history when asset and its attached IAM POLICY both exist. So there may be + * gaps in the output history. + * + *

Sample code: + * + *


+   * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   ContentType contentType = ContentType.CONTENT_TYPE_UNSPECIFIED;
+   *   TimeWindow readTimeWindow = TimeWindow.newBuilder().build();
+   *   BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder()
+   *     .setParent(parent.toString())
+   *     .setContentType(contentType)
+   *     .setReadTimeWindow(readTimeWindow)
+   *     .build();
+   *   ApiFuture<BatchGetAssetsHistoryResponse> future = assetServiceClient.batchGetAssetsHistoryCallable().futureCall(request);
+   *   // Do something
+   *   BatchGetAssetsHistoryResponse response = future.get();
+   * }
+   * 
+ */ + public final UnaryCallable + batchGetAssetsHistoryCallable() { + return stub.batchGetAssetsHistoryCallable(); + } + + @Override + public final void close() { + stub.close(); + } + + @Override + public void shutdown() { + stub.shutdown(); + } + + @Override + public boolean isShutdown() { + return stub.isShutdown(); + } + + @Override + public boolean isTerminated() { + return stub.isTerminated(); + } + + @Override + public void shutdownNow() { + stub.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return stub.awaitTermination(duration, unit); + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceSettings.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceSettings.java new file mode 100644 index 000000000000..6f14f233dcf7 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/AssetServiceSettings.java @@ -0,0 +1,205 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1; + +import com.google.api.core.ApiFunction; +import com.google.api.core.BetaApi; +import com.google.api.gax.core.GoogleCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ClientSettings; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.cloud.asset.v1beta1.stub.AssetServiceStubSettings; +import com.google.longrunning.Operation; +import java.io.IOException; +import java.util.List; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS +/** + * Settings class to configure an instance of {@link AssetServiceClient}. + * + *

The default instance has everything set to sensible defaults: + * + *

    + *
  • The default service address (cloudasset.googleapis.com) and default port (443) are used. + *
  • Credentials are acquired automatically through Application Default Credentials. + *
  • Retries are configured for idempotent methods but not for non-idempotent methods. + *
+ * + *

The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. For + * example, to set the total timeout of batchGetAssetsHistory to 30 seconds: + * + *

+ * 
+ * AssetServiceSettings.Builder assetServiceSettingsBuilder =
+ *     AssetServiceSettings.newBuilder();
+ * assetServiceSettingsBuilder.batchGetAssetsHistorySettings().getRetrySettings().toBuilder()
+ *     .setTotalTimeout(Duration.ofSeconds(30));
+ * AssetServiceSettings assetServiceSettings = assetServiceSettingsBuilder.build();
+ * 
+ * 
+ */ +@Generated("by gapic-generator") +@BetaApi +public class AssetServiceSettings extends ClientSettings { + /** Returns the object with the settings used for calls to exportAssets. */ + public UnaryCallSettings exportAssetsSettings() { + return ((AssetServiceStubSettings) getStubSettings()).exportAssetsSettings(); + } + + /** Returns the object with the settings used for calls to exportAssets. */ + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public OperationCallSettings + exportAssetsOperationSettings() { + return ((AssetServiceStubSettings) getStubSettings()).exportAssetsOperationSettings(); + } + + /** Returns the object with the settings used for calls to batchGetAssetsHistory. */ + public UnaryCallSettings + batchGetAssetsHistorySettings() { + return ((AssetServiceStubSettings) getStubSettings()).batchGetAssetsHistorySettings(); + } + + public static final AssetServiceSettings create(AssetServiceStubSettings stub) + throws IOException { + return new AssetServiceSettings.Builder(stub.toBuilder()).build(); + } + + /** Returns a builder for the default ExecutorProvider for this service. */ + public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { + return AssetServiceStubSettings.defaultExecutorProviderBuilder(); + } + + /** Returns the default service endpoint. */ + public static String getDefaultEndpoint() { + return AssetServiceStubSettings.getDefaultEndpoint(); + } + + /** Returns the default service scopes. */ + public static List getDefaultServiceScopes() { + return AssetServiceStubSettings.getDefaultServiceScopes(); + } + + /** Returns a builder for the default credentials for this service. */ + public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { + return AssetServiceStubSettings.defaultCredentialsProviderBuilder(); + } + + /** Returns a builder for the default ChannelProvider for this service. */ + public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { + return AssetServiceStubSettings.defaultGrpcTransportProviderBuilder(); + } + + public static TransportChannelProvider defaultTransportChannelProvider() { + return AssetServiceStubSettings.defaultTransportChannelProvider(); + } + + @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return AssetServiceStubSettings.defaultApiClientHeaderProviderBuilder(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder() { + return Builder.createDefault(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder(ClientContext clientContext) { + return new Builder(clientContext); + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + protected AssetServiceSettings(Builder settingsBuilder) throws IOException { + super(settingsBuilder); + } + + /** Builder for AssetServiceSettings. */ + public static class Builder extends ClientSettings.Builder { + protected Builder() throws IOException { + this((ClientContext) null); + } + + protected Builder(ClientContext clientContext) { + super(AssetServiceStubSettings.newBuilder(clientContext)); + } + + private static Builder createDefault() { + return new Builder(AssetServiceStubSettings.newBuilder()); + } + + protected Builder(AssetServiceSettings settings) { + super(settings.getStubSettings().toBuilder()); + } + + protected Builder(AssetServiceStubSettings.Builder stubSettings) { + super(stubSettings); + } + + public AssetServiceStubSettings.Builder getStubSettingsBuilder() { + return ((AssetServiceStubSettings.Builder) getStubSettings()); + } + + // NEXT_MAJOR_VER: remove 'throws Exception' + /** + * Applies the given settings updater function to all of the unary API methods in this service. + * + *

Note: This method does not support applying settings to streaming methods. + */ + public Builder applyToAllUnaryMethods( + ApiFunction, Void> settingsUpdater) throws Exception { + super.applyToAllUnaryMethods( + getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); + return this; + } + + /** Returns the builder for the settings used for calls to exportAssets. */ + public UnaryCallSettings.Builder exportAssetsSettings() { + return getStubSettingsBuilder().exportAssetsSettings(); + } + + /** Returns the builder for the settings used for calls to exportAssets. */ + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + public OperationCallSettings.Builder< + ExportAssetsRequest, ExportAssetsResponse, ExportAssetsRequest> + exportAssetsOperationSettings() { + return getStubSettingsBuilder().exportAssetsOperationSettings(); + } + + /** Returns the builder for the settings used for calls to batchGetAssetsHistory. */ + public UnaryCallSettings.Builder + batchGetAssetsHistorySettings() { + return getStubSettingsBuilder().batchGetAssetsHistorySettings(); + } + + @Override + public AssetServiceSettings build() throws IOException { + return new AssetServiceSettings(this); + } + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/package-info.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/package-info.java new file mode 100644 index 000000000000..702ff114f979 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/package-info.java @@ -0,0 +1,44 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * A client to Cloud Asset API. + * + *

The interfaces provided are listed below, along with usage samples. + * + *

================== AssetServiceClient ================== + * + *

Service Description: Asset service definition. + * + *

Sample for AssetServiceClient: + * + *

+ * 
+ * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+ *   ProjectName parent = ProjectName.of("[PROJECT]");
+ *   ContentType contentType = ContentType.CONTENT_TYPE_UNSPECIFIED;
+ *   TimeWindow readTimeWindow = TimeWindow.newBuilder().build();
+ *   BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder()
+ *     .setParent(parent.toString())
+ *     .setContentType(contentType)
+ *     .setReadTimeWindow(readTimeWindow)
+ *     .build();
+ *   BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
+ * }
+ * 
+ * 
+ */ +package com.google.cloud.asset.v1beta1; diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/AssetServiceStub.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/AssetServiceStub.java new file mode 100644 index 000000000000..4a89a94337ad --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/AssetServiceStub.java @@ -0,0 +1,62 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1.stub; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest; +import com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse; +import com.google.cloud.asset.v1beta1.ExportAssetsRequest; +import com.google.cloud.asset.v1beta1.ExportAssetsResponse; +import com.google.longrunning.Operation; +import com.google.longrunning.stub.OperationsStub; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS +/** + * Base stub class for Cloud Asset API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator") +@BetaApi("A restructuring of stub classes is planned, so this may break in the future") +public abstract class AssetServiceStub implements BackgroundResource { + + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationsStub getOperationsStub() { + throw new UnsupportedOperationException("Not implemented: getOperationsStub()"); + } + + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallable + exportAssetsOperationCallable() { + throw new UnsupportedOperationException("Not implemented: exportAssetsOperationCallable()"); + } + + public UnaryCallable exportAssetsCallable() { + throw new UnsupportedOperationException("Not implemented: exportAssetsCallable()"); + } + + public UnaryCallable + batchGetAssetsHistoryCallable() { + throw new UnsupportedOperationException("Not implemented: batchGetAssetsHistoryCallable()"); + } + + @Override + public abstract void close(); +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/AssetServiceStubSettings.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/AssetServiceStubSettings.java new file mode 100644 index 000000000000..72cdb5736e06 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/AssetServiceStubSettings.java @@ -0,0 +1,348 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1.stub; + +import com.google.api.core.ApiFunction; +import com.google.api.core.BetaApi; +import com.google.api.gax.core.GaxProperties; +import com.google.api.gax.core.GoogleCredentialsProvider; +import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.GaxGrpcProperties; +import com.google.api.gax.grpc.GrpcTransportChannel; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.grpc.ProtoOperationTransformers; +import com.google.api.gax.longrunning.OperationSnapshot; +import com.google.api.gax.longrunning.OperationTimedPollAlgorithm; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.StubSettings; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest; +import com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse; +import com.google.cloud.asset.v1beta1.ExportAssetsRequest; +import com.google.cloud.asset.v1beta1.ExportAssetsResponse; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; +import com.google.longrunning.Operation; +import java.io.IOException; +import java.util.List; +import javax.annotation.Generated; +import org.threeten.bp.Duration; + +// AUTO-GENERATED DOCUMENTATION AND CLASS +/** + * Settings class to configure an instance of {@link AssetServiceStub}. + * + *

The default instance has everything set to sensible defaults: + * + *

    + *
  • The default service address (cloudasset.googleapis.com) and default port (443) are used. + *
  • Credentials are acquired automatically through Application Default Credentials. + *
  • Retries are configured for idempotent methods but not for non-idempotent methods. + *
+ * + *

The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. For + * example, to set the total timeout of batchGetAssetsHistory to 30 seconds: + * + *

+ * 
+ * AssetServiceStubSettings.Builder assetServiceSettingsBuilder =
+ *     AssetServiceStubSettings.newBuilder();
+ * assetServiceSettingsBuilder.batchGetAssetsHistorySettings().getRetrySettings().toBuilder()
+ *     .setTotalTimeout(Duration.ofSeconds(30));
+ * AssetServiceStubSettings assetServiceSettings = assetServiceSettingsBuilder.build();
+ * 
+ * 
+ */ +@Generated("by gapic-generator") +@BetaApi +public class AssetServiceStubSettings extends StubSettings { + /** The default scopes of the service. */ + private static final ImmutableList DEFAULT_SERVICE_SCOPES = + ImmutableList.builder().add("https://www.googleapis.com/auth/cloud-platform").build(); + + private final UnaryCallSettings exportAssetsSettings; + private final OperationCallSettings< + ExportAssetsRequest, ExportAssetsResponse, ExportAssetsRequest> + exportAssetsOperationSettings; + private final UnaryCallSettings + batchGetAssetsHistorySettings; + + /** Returns the object with the settings used for calls to exportAssets. */ + public UnaryCallSettings exportAssetsSettings() { + return exportAssetsSettings; + } + + /** Returns the object with the settings used for calls to exportAssets. */ + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallSettings + exportAssetsOperationSettings() { + return exportAssetsOperationSettings; + } + + /** Returns the object with the settings used for calls to batchGetAssetsHistory. */ + public UnaryCallSettings + batchGetAssetsHistorySettings() { + return batchGetAssetsHistorySettings; + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public AssetServiceStub createStub() throws IOException { + if (getTransportChannelProvider() + .getTransportName() + .equals(GrpcTransportChannel.getGrpcTransportName())) { + return GrpcAssetServiceStub.create(this); + } else { + throw new UnsupportedOperationException( + "Transport not supported: " + getTransportChannelProvider().getTransportName()); + } + } + + /** Returns a builder for the default ExecutorProvider for this service. */ + public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { + return InstantiatingExecutorProvider.newBuilder(); + } + + /** Returns the default service endpoint. */ + public static String getDefaultEndpoint() { + return "cloudasset.googleapis.com:443"; + } + + /** Returns the default service scopes. */ + public static List getDefaultServiceScopes() { + return DEFAULT_SERVICE_SCOPES; + } + + /** Returns a builder for the default credentials for this service. */ + public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { + return GoogleCredentialsProvider.newBuilder().setScopesToApply(DEFAULT_SERVICE_SCOPES); + } + + /** Returns a builder for the default ChannelProvider for this service. */ + public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { + return InstantiatingGrpcChannelProvider.newBuilder(); + } + + public static TransportChannelProvider defaultTransportChannelProvider() { + return defaultGrpcTransportProviderBuilder().build(); + } + + @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken( + "gapic", GaxProperties.getLibraryVersion(AssetServiceStubSettings.class)) + .setTransportToken( + GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder() { + return Builder.createDefault(); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder(ClientContext clientContext) { + return new Builder(clientContext); + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + protected AssetServiceStubSettings(Builder settingsBuilder) throws IOException { + super(settingsBuilder); + + exportAssetsSettings = settingsBuilder.exportAssetsSettings().build(); + exportAssetsOperationSettings = settingsBuilder.exportAssetsOperationSettings().build(); + batchGetAssetsHistorySettings = settingsBuilder.batchGetAssetsHistorySettings().build(); + } + + /** Builder for AssetServiceStubSettings. */ + public static class Builder extends StubSettings.Builder { + private final ImmutableList> unaryMethodSettingsBuilders; + + private final UnaryCallSettings.Builder exportAssetsSettings; + private final OperationCallSettings.Builder< + ExportAssetsRequest, ExportAssetsResponse, ExportAssetsRequest> + exportAssetsOperationSettings; + private final UnaryCallSettings.Builder< + BatchGetAssetsHistoryRequest, BatchGetAssetsHistoryResponse> + batchGetAssetsHistorySettings; + + private static final ImmutableMap> + RETRYABLE_CODE_DEFINITIONS; + + static { + ImmutableMap.Builder> definitions = + ImmutableMap.builder(); + definitions.put( + "idempotent", + ImmutableSet.copyOf( + Lists.newArrayList( + StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); + RETRYABLE_CODE_DEFINITIONS = definitions.build(); + } + + private static final ImmutableMap RETRY_PARAM_DEFINITIONS; + + static { + ImmutableMap.Builder definitions = ImmutableMap.builder(); + RetrySettings settings = null; + settings = + RetrySettings.newBuilder() + .setInitialRetryDelay(Duration.ofMillis(100L)) + .setRetryDelayMultiplier(1.3) + .setMaxRetryDelay(Duration.ofMillis(60000L)) + .setInitialRpcTimeout(Duration.ofMillis(20000L)) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeout(Duration.ofMillis(20000L)) + .setTotalTimeout(Duration.ofMillis(600000L)) + .build(); + definitions.put("default", settings); + RETRY_PARAM_DEFINITIONS = definitions.build(); + } + + protected Builder() { + this((ClientContext) null); + } + + protected Builder(ClientContext clientContext) { + super(clientContext); + + exportAssetsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + + exportAssetsOperationSettings = OperationCallSettings.newBuilder(); + + batchGetAssetsHistorySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of( + exportAssetsSettings, batchGetAssetsHistorySettings); + + initDefaults(this); + } + + private static Builder createDefault() { + Builder builder = new Builder((ClientContext) null); + builder.setTransportChannelProvider(defaultTransportChannelProvider()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); + builder.setEndpoint(getDefaultEndpoint()); + return initDefaults(builder); + } + + private static Builder initDefaults(Builder builder) { + + builder + .exportAssetsSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + + builder + .batchGetAssetsHistorySettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder + .exportAssetsOperationSettings() + .setInitialCallSettings( + UnaryCallSettings + .newUnaryCallSettingsBuilder() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")) + .build()) + .setResponseTransformer( + ProtoOperationTransformers.ResponseTransformer.create(ExportAssetsResponse.class)) + .setMetadataTransformer( + ProtoOperationTransformers.MetadataTransformer.create(ExportAssetsRequest.class)) + .setPollingAlgorithm( + OperationTimedPollAlgorithm.create( + RetrySettings.newBuilder() + .setInitialRetryDelay(Duration.ofMillis(500L)) + .setRetryDelayMultiplier(1.5) + .setMaxRetryDelay(Duration.ofMillis(5000L)) + .setInitialRpcTimeout(Duration.ZERO) // ignored + .setRpcTimeoutMultiplier(1.0) // ignored + .setMaxRpcTimeout(Duration.ZERO) // ignored + .setTotalTimeout(Duration.ofMillis(300000L)) + .build())); + + return builder; + } + + protected Builder(AssetServiceStubSettings settings) { + super(settings); + + exportAssetsSettings = settings.exportAssetsSettings.toBuilder(); + exportAssetsOperationSettings = settings.exportAssetsOperationSettings.toBuilder(); + batchGetAssetsHistorySettings = settings.batchGetAssetsHistorySettings.toBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of( + exportAssetsSettings, batchGetAssetsHistorySettings); + } + + // NEXT_MAJOR_VER: remove 'throws Exception' + /** + * Applies the given settings updater function to all of the unary API methods in this service. + * + *

Note: This method does not support applying settings to streaming methods. + */ + public Builder applyToAllUnaryMethods( + ApiFunction, Void> settingsUpdater) throws Exception { + super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); + return this; + } + + public ImmutableList> unaryMethodSettingsBuilders() { + return unaryMethodSettingsBuilders; + } + + /** Returns the builder for the settings used for calls to exportAssets. */ + public UnaryCallSettings.Builder exportAssetsSettings() { + return exportAssetsSettings; + } + + /** Returns the builder for the settings used for calls to exportAssets. */ + @BetaApi( + "The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallSettings.Builder< + ExportAssetsRequest, ExportAssetsResponse, ExportAssetsRequest> + exportAssetsOperationSettings() { + return exportAssetsOperationSettings; + } + + /** Returns the builder for the settings used for calls to batchGetAssetsHistory. */ + public UnaryCallSettings.Builder + batchGetAssetsHistorySettings() { + return batchGetAssetsHistorySettings; + } + + @Override + public AssetServiceStubSettings build() throws IOException { + return new AssetServiceStubSettings(this); + } + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/GrpcAssetServiceCallableFactory.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/GrpcAssetServiceCallableFactory.java new file mode 100644 index 000000000000..2125334ffed0 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/GrpcAssetServiceCallableFactory.java @@ -0,0 +1,116 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1.stub; + +import com.google.api.core.BetaApi; +import com.google.api.gax.grpc.GrpcCallSettings; +import com.google.api.gax.grpc.GrpcCallableFactory; +import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.BatchingCallSettings; +import com.google.api.gax.rpc.BidiStreamingCallable; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ClientStreamingCallable; +import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.ServerStreamingCallable; +import com.google.api.gax.rpc.StreamingCallSettings; +import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.longrunning.Operation; +import com.google.longrunning.stub.OperationsStub; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS +/** + * gRPC callable factory implementation for Cloud Asset API. + * + *

This class is for advanced usage. + */ +@Generated("by gapic-generator") +@BetaApi("The surface for use by generated code is not stable yet and may change in the future.") +public class GrpcAssetServiceCallableFactory implements GrpcStubCallableFactory { + @Override + public UnaryCallable createUnaryCallable( + GrpcCallSettings grpcCallSettings, + UnaryCallSettings callSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createUnaryCallable(grpcCallSettings, callSettings, clientContext); + } + + @Override + public + UnaryCallable createPagedCallable( + GrpcCallSettings grpcCallSettings, + PagedCallSettings pagedCallSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createPagedCallable( + grpcCallSettings, pagedCallSettings, clientContext); + } + + @Override + public UnaryCallable createBatchingCallable( + GrpcCallSettings grpcCallSettings, + BatchingCallSettings batchingCallSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createBatchingCallable( + grpcCallSettings, batchingCallSettings, clientContext); + } + + @BetaApi( + "The surface for long-running operations is not stable yet and may change in the future.") + @Override + public + OperationCallable createOperationCallable( + GrpcCallSettings grpcCallSettings, + OperationCallSettings operationCallSettings, + ClientContext clientContext, + OperationsStub operationsStub) { + return GrpcCallableFactory.createOperationCallable( + grpcCallSettings, operationCallSettings, clientContext, operationsStub); + } + + @Override + public + BidiStreamingCallable createBidiStreamingCallable( + GrpcCallSettings grpcCallSettings, + StreamingCallSettings streamingCallSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createBidiStreamingCallable( + grpcCallSettings, streamingCallSettings, clientContext); + } + + @Override + public + ServerStreamingCallable createServerStreamingCallable( + GrpcCallSettings grpcCallSettings, + ServerStreamingCallSettings streamingCallSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createServerStreamingCallable( + grpcCallSettings, streamingCallSettings, clientContext); + } + + @Override + public + ClientStreamingCallable createClientStreamingCallable( + GrpcCallSettings grpcCallSettings, + StreamingCallSettings streamingCallSettings, + ClientContext clientContext) { + return GrpcCallableFactory.createClientStreamingCallable( + grpcCallSettings, streamingCallSettings, clientContext); + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/GrpcAssetServiceStub.java b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/GrpcAssetServiceStub.java new file mode 100644 index 000000000000..e459d1062248 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/main/java/com/google/cloud/asset/v1beta1/stub/GrpcAssetServiceStub.java @@ -0,0 +1,194 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1.stub; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.grpc.GrpcCallSettings; +import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.OperationCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryRequest; +import com.google.cloud.asset.v1beta1.BatchGetAssetsHistoryResponse; +import com.google.cloud.asset.v1beta1.ExportAssetsRequest; +import com.google.cloud.asset.v1beta1.ExportAssetsResponse; +import com.google.longrunning.Operation; +import com.google.longrunning.stub.GrpcOperationsStub; +import io.grpc.MethodDescriptor; +import io.grpc.protobuf.ProtoUtils; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND CLASS +/** + * gRPC stub implementation for Cloud Asset API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@Generated("by gapic-generator") +@BetaApi("A restructuring of stub classes is planned, so this may break in the future") +public class GrpcAssetServiceStub extends AssetServiceStub { + + private static final MethodDescriptor + exportAssetsMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.asset.v1beta1.AssetService/ExportAssets") + .setRequestMarshaller(ProtoUtils.marshaller(ExportAssetsRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance())) + .build(); + private static final MethodDescriptor + batchGetAssetsHistoryMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.asset.v1beta1.AssetService/BatchGetAssetsHistory") + .setRequestMarshaller( + ProtoUtils.marshaller(BatchGetAssetsHistoryRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(BatchGetAssetsHistoryResponse.getDefaultInstance())) + .build(); + + private final BackgroundResource backgroundResources; + private final GrpcOperationsStub operationsStub; + + private final UnaryCallable exportAssetsCallable; + private final OperationCallable + exportAssetsOperationCallable; + private final UnaryCallable + batchGetAssetsHistoryCallable; + + private final GrpcStubCallableFactory callableFactory; + + public static final GrpcAssetServiceStub create(AssetServiceStubSettings settings) + throws IOException { + return new GrpcAssetServiceStub(settings, ClientContext.create(settings)); + } + + public static final GrpcAssetServiceStub create(ClientContext clientContext) throws IOException { + return new GrpcAssetServiceStub(AssetServiceStubSettings.newBuilder().build(), clientContext); + } + + public static final GrpcAssetServiceStub create( + ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException { + return new GrpcAssetServiceStub( + AssetServiceStubSettings.newBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of GrpcAssetServiceStub, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected GrpcAssetServiceStub(AssetServiceStubSettings settings, ClientContext clientContext) + throws IOException { + this(settings, clientContext, new GrpcAssetServiceCallableFactory()); + } + + /** + * Constructs an instance of GrpcAssetServiceStub, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected GrpcAssetServiceStub( + AssetServiceStubSettings settings, + ClientContext clientContext, + GrpcStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory); + + GrpcCallSettings exportAssetsTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(exportAssetsMethodDescriptor) + .build(); + GrpcCallSettings + batchGetAssetsHistoryTransportSettings = + GrpcCallSettings + .newBuilder() + .setMethodDescriptor(batchGetAssetsHistoryMethodDescriptor) + .build(); + + this.exportAssetsCallable = + callableFactory.createUnaryCallable( + exportAssetsTransportSettings, settings.exportAssetsSettings(), clientContext); + this.exportAssetsOperationCallable = + callableFactory.createOperationCallable( + exportAssetsTransportSettings, + settings.exportAssetsOperationSettings(), + clientContext, + this.operationsStub); + this.batchGetAssetsHistoryCallable = + callableFactory.createUnaryCallable( + batchGetAssetsHistoryTransportSettings, + settings.batchGetAssetsHistorySettings(), + clientContext); + + backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources()); + } + + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public GrpcOperationsStub getOperationsStub() { + return operationsStub; + } + + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public OperationCallable + exportAssetsOperationCallable() { + return exportAssetsOperationCallable; + } + + public UnaryCallable exportAssetsCallable() { + return exportAssetsCallable; + } + + public UnaryCallable + batchGetAssetsHistoryCallable() { + return batchGetAssetsHistoryCallable; + } + + @Override + public final void close() { + shutdown(); + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/AssetServiceClientTest.java b/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/AssetServiceClientTest.java new file mode 100644 index 000000000000..0b44b0f28d1a --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/AssetServiceClientTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1; + +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.api.gax.grpc.testing.LocalChannelProvider; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.api.gax.grpc.testing.MockServiceHelper; +import java.io.IOException; +import java.util.Arrays; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; + +@javax.annotation.Generated("by GAPIC") +public class AssetServiceClientTest { + private static MockAssetService mockAssetService; + private static MockServiceHelper serviceHelper; + private AssetServiceClient client; + private LocalChannelProvider channelProvider; + + @BeforeClass + public static void startStaticServer() { + mockAssetService = new MockAssetService(); + serviceHelper = + new MockServiceHelper("in-process-1", Arrays.asList(mockAssetService)); + serviceHelper.start(); + } + + @AfterClass + public static void stopServer() { + serviceHelper.stop(); + } + + @Before + public void setUp() throws IOException { + serviceHelper.reset(); + channelProvider = serviceHelper.createChannelProvider(); + AssetServiceSettings settings = + AssetServiceSettings.newBuilder() + .setTransportChannelProvider(channelProvider) + .setCredentialsProvider(NoCredentialsProvider.create()) + .build(); + client = AssetServiceClient.create(settings); + } + + @After + public void tearDown() throws Exception { + client.close(); + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/MockAssetService.java b/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/MockAssetService.java new file mode 100644 index 000000000000..40378803e631 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/MockAssetService.java @@ -0,0 +1,57 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1; + +import com.google.api.core.BetaApi; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.protobuf.GeneratedMessageV3; +import io.grpc.ServerServiceDefinition; +import java.util.List; + +@javax.annotation.Generated("by GAPIC") +@BetaApi +public class MockAssetService implements MockGrpcService { + private final MockAssetServiceImpl serviceImpl; + + public MockAssetService() { + serviceImpl = new MockAssetServiceImpl(); + } + + @Override + public List getRequests() { + return serviceImpl.getRequests(); + } + + @Override + public void addResponse(GeneratedMessageV3 response) { + serviceImpl.addResponse(response); + } + + @Override + public void addException(Exception exception) { + serviceImpl.addException(exception); + } + + @Override + public ServerServiceDefinition getServiceDefinition() { + return serviceImpl.bindService(); + } + + @Override + public void reset() { + serviceImpl.reset(); + } +} diff --git a/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/MockAssetServiceImpl.java b/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/MockAssetServiceImpl.java new file mode 100644 index 000000000000..0e8d5a260f63 --- /dev/null +++ b/google-cloud-clients/google-cloud-cloudasset/src/test/java/com/google/cloud/asset/v1beta1/MockAssetServiceImpl.java @@ -0,0 +1,90 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.asset.v1beta1; + +import com.google.api.core.BetaApi; +import com.google.cloud.asset.v1beta1.AssetServiceGrpc.AssetServiceImplBase; +import com.google.longrunning.Operation; +import com.google.protobuf.GeneratedMessageV3; +import io.grpc.stub.StreamObserver; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +@javax.annotation.Generated("by GAPIC") +@BetaApi +public class MockAssetServiceImpl extends AssetServiceImplBase { + private ArrayList requests; + private Queue responses; + + public MockAssetServiceImpl() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + public List getRequests() { + return requests; + } + + public void addResponse(GeneratedMessageV3 response) { + responses.add(response); + } + + public void setResponses(List responses) { + this.responses = new LinkedList(responses); + } + + public void addException(Exception exception) { + responses.add(exception); + } + + public void reset() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + @Override + public void exportAssets( + ExportAssetsRequest request, StreamObserver responseObserver) { + Object response = responses.remove(); + if (response instanceof Operation) { + requests.add(request); + responseObserver.onNext((Operation) response); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError((Exception) response); + } else { + responseObserver.onError(new IllegalArgumentException("Unrecognized response type")); + } + } + + @Override + public void batchGetAssetsHistory( + BatchGetAssetsHistoryRequest request, + StreamObserver responseObserver) { + Object response = responses.remove(); + if (response instanceof BatchGetAssetsHistoryResponse) { + requests.add(request); + responseObserver.onNext((BatchGetAssetsHistoryResponse) response); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError((Exception) response); + } else { + responseObserver.onError(new IllegalArgumentException("Unrecognized response type")); + } + } +} diff --git a/google-cloud-clients/google-cloud-containeranalysis/src/test/java/com/google/cloud/devtools/containeranalysis/v1beta1/GrafeasV1Beta1ClientTest.java b/google-cloud-clients/google-cloud-containeranalysis/src/test/java/com/google/cloud/devtools/containeranalysis/v1beta1/GrafeasV1Beta1ClientTest.java index e92c38e48c27..945030ecc747 100644 --- a/google-cloud-clients/google-cloud-containeranalysis/src/test/java/com/google/cloud/devtools/containeranalysis/v1beta1/GrafeasV1Beta1ClientTest.java +++ b/google-cloud-clients/google-cloud-containeranalysis/src/test/java/com/google/cloud/devtools/containeranalysis/v1beta1/GrafeasV1Beta1ClientTest.java @@ -115,12 +115,12 @@ public void tearDown() throws Exception { @Test @SuppressWarnings("all") public void getOccurrenceTest() { - OccurrenceName name2 = OccurrenceName.of("[PROJECT]", "[OCCURRENCE]"); + String name2 = "name2-1052831874"; String noteName = "noteName1780787896"; String remediation = "remediation779381797"; Occurrence expectedResponse = Occurrence.newBuilder() - .setName(name2.toString()) + .setName(name2) .setNoteName(noteName) .setRemediation(remediation) .build(); @@ -249,12 +249,12 @@ public void deleteOccurrenceExceptionTest() throws Exception { @Test @SuppressWarnings("all") public void createOccurrenceTest() { - OccurrenceName name = OccurrenceName.of("[PROJECT]", "[OCCURRENCE]"); + String name = "name3373707"; String noteName = "noteName1780787896"; String remediation = "remediation779381797"; Occurrence expectedResponse = Occurrence.newBuilder() - .setName(name.toString()) + .setName(name) .setNoteName(noteName) .setRemediation(remediation) .build(); @@ -342,12 +342,12 @@ public void batchCreateOccurrencesExceptionTest() throws Exception { @Test @SuppressWarnings("all") public void updateOccurrenceTest() { - OccurrenceName name2 = OccurrenceName.of("[PROJECT]", "[OCCURRENCE]"); + String name2 = "name2-1052831874"; String noteName = "noteName1780787896"; String remediation = "remediation779381797"; Occurrence expectedResponse = Occurrence.newBuilder() - .setName(name2.toString()) + .setName(name2) .setNoteName(noteName) .setRemediation(remediation) .build(); @@ -394,12 +394,12 @@ public void updateOccurrenceExceptionTest() throws Exception { @Test @SuppressWarnings("all") public void getOccurrenceNoteTest() { - NoteName name2 = NoteName.of("[PROJECT]", "[NOTE]"); + String name2 = "name2-1052831874"; String shortDescription = "shortDescription-235369287"; String longDescription = "longDescription-1747792199"; Note expectedResponse = Note.newBuilder() - .setName(name2.toString()) + .setName(name2) .setShortDescription(shortDescription) .setLongDescription(longDescription) .build(); @@ -440,12 +440,12 @@ public void getOccurrenceNoteExceptionTest() throws Exception { @Test @SuppressWarnings("all") public void getNoteTest() { - NoteName name2 = NoteName.of("[PROJECT]", "[NOTE]"); + String name2 = "name2-1052831874"; String shortDescription = "shortDescription-235369287"; String longDescription = "longDescription-1747792199"; Note expectedResponse = Note.newBuilder() - .setName(name2.toString()) + .setName(name2) .setShortDescription(shortDescription) .setLongDescription(longDescription) .build(); @@ -571,12 +571,12 @@ public void deleteNoteExceptionTest() throws Exception { @Test @SuppressWarnings("all") public void createNoteTest() { - NoteName name = NoteName.of("[PROJECT]", "[NOTE]"); + String name = "name3373707"; String shortDescription = "shortDescription-235369287"; String longDescription = "longDescription-1747792199"; Note expectedResponse = Note.newBuilder() - .setName(name.toString()) + .setName(name) .setShortDescription(shortDescription) .setLongDescription(longDescription) .build(); @@ -664,12 +664,12 @@ public void batchCreateNotesExceptionTest() throws Exception { @Test @SuppressWarnings("all") public void updateNoteTest() { - NoteName name2 = NoteName.of("[PROJECT]", "[NOTE]"); + String name2 = "name2-1052831874"; String shortDescription = "shortDescription-235369287"; String longDescription = "longDescription-1747792199"; Note expectedResponse = Note.newBuilder() - .setName(name2.toString()) + .setName(name2) .setShortDescription(shortDescription) .setLongDescription(longDescription) .build(); diff --git a/google-cloud-clients/google-cloud-dataproc/src/main/java/com/google/cloud/dataproc/v1beta2/stub/WorkflowTemplateServiceStubSettings.java b/google-cloud-clients/google-cloud-dataproc/src/main/java/com/google/cloud/dataproc/v1beta2/stub/WorkflowTemplateServiceStubSettings.java index d0915d036d6f..58b0ee6ce38a 100644 --- a/google-cloud-clients/google-cloud-dataproc/src/main/java/com/google/cloud/dataproc/v1beta2/stub/WorkflowTemplateServiceStubSettings.java +++ b/google-cloud-clients/google-cloud-dataproc/src/main/java/com/google/cloud/dataproc/v1beta2/stub/WorkflowTemplateServiceStubSettings.java @@ -332,6 +332,7 @@ public static class Builder ImmutableSet.copyOf( Lists.newArrayList( StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put("no_retry", ImmutableSet.copyOf(Lists.newArrayList())); definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } diff --git a/google-cloud-clients/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/stub/DlpServiceStubSettings.java b/google-cloud-clients/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/stub/DlpServiceStubSettings.java index 0b33f60049f8..45b90d837911 100644 --- a/google-cloud-clients/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/stub/DlpServiceStubSettings.java +++ b/google-cloud-clients/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/stub/DlpServiceStubSettings.java @@ -707,7 +707,13 @@ public static class Builder extends StubSettings.BuildernewArrayList( StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put( + "http_get", + ImmutableSet.copyOf( + Lists.newArrayList( + StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); + definitions.put("no_retry", ImmutableSet.copyOf(Lists.newArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } diff --git a/google-cloud-clients/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1beta1/stub/FirestoreStubSettings.java b/google-cloud-clients/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1beta1/stub/FirestoreStubSettings.java index fb324fff3426..36eac47a77c8 100644 --- a/google-cloud-clients/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1beta1/stub/FirestoreStubSettings.java +++ b/google-cloud-clients/google-cloud-firestore/src/main/java/com/google/cloud/firestore/v1beta1/stub/FirestoreStubSettings.java @@ -543,6 +543,11 @@ private static Builder initDefaults(Builder builder) { .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder + .batchGetDocumentsSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("streaming")); + builder .beginTransactionSettings() .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) @@ -558,6 +563,11 @@ private static Builder initDefaults(Builder builder) { .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder + .runQuerySettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder .listCollectionIdsSettings() .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) diff --git a/google-cloud-clients/google-cloud-monitoring/src/main/java/com/google/cloud/monitoring/v3/stub/NotificationChannelServiceStubSettings.java b/google-cloud-clients/google-cloud-monitoring/src/main/java/com/google/cloud/monitoring/v3/stub/NotificationChannelServiceStubSettings.java index 914373e0e70c..348aaf70ae22 100644 --- a/google-cloud-clients/google-cloud-monitoring/src/main/java/com/google/cloud/monitoring/v3/stub/NotificationChannelServiceStubSettings.java +++ b/google-cloud-clients/google-cloud-monitoring/src/main/java/com/google/cloud/monitoring/v3/stub/NotificationChannelServiceStubSettings.java @@ -424,6 +424,7 @@ public static class Builder ImmutableSet.copyOf( Lists.newArrayList( StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put("no_retry", ImmutableSet.copyOf(Lists.newArrayList())); definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } diff --git a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java index 28fc83d29f3d..287fbf8a8864 100644 --- a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java +++ b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/PublisherStubSettings.java @@ -471,6 +471,12 @@ public static class Builder extends StubSettings.BuildernewArrayList( StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put( + "http_get", + ImmutableSet.copyOf( + Lists.newArrayList( + StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); definitions.put( "one_plus_delivery", ImmutableSet.copyOf( @@ -482,7 +488,6 @@ public static class Builder extends StubSettings.BuildernewArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } diff --git a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/SubscriberStubSettings.java b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/SubscriberStubSettings.java index 3819052d18c8..a53c9a141dd0 100644 --- a/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/SubscriberStubSettings.java +++ b/google-cloud-clients/google-cloud-pubsub/src/main/java/com/google/cloud/pubsub/v1/stub/SubscriberStubSettings.java @@ -475,7 +475,6 @@ public static class Builder extends StubSettings.BuildernewArrayList( StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); - definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); definitions.put( "pull", ImmutableSet.copyOf( @@ -485,6 +484,12 @@ public static class Builder extends StubSettings.BuildernewArrayList( + StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); + definitions.put("non_idempotent", ImmutableSet.copyOf(Lists.newArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } diff --git a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java index f34dbc7f4805..960cafdc6969 100644 --- a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java +++ b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/SpannerClient.java @@ -616,11 +616,11 @@ public final UnaryCallable deleteSessionCallable() // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Executes an SQL query, returning all rows in a single reply. This method cannot be used to - * return a result set larger than 10 MiB; if the query yields more data than that, the query + * Executes an SQL statement, returning all results in a single reply. This method cannot be used + * to return a result set larger than 10 MiB; if the query yields more data than that, the query * fails with a `FAILED_PRECONDITION` error. * - *

Queries inside read-write transactions might return `ABORTED`. If this occurs, the + *

Operations inside read-write transactions might return `ABORTED`. If this occurs, the * application should restart the transaction from the beginning. See * [Transaction][google.spanner.v1.Transaction] for more details. * @@ -650,11 +650,11 @@ public final ResultSet executeSql(ExecuteSqlRequest request) { // AUTO-GENERATED DOCUMENTATION AND METHOD /** - * Executes an SQL query, returning all rows in a single reply. This method cannot be used to - * return a result set larger than 10 MiB; if the query yields more data than that, the query + * Executes an SQL statement, returning all results in a single reply. This method cannot be used + * to return a result set larger than 10 MiB; if the query yields more data than that, the query * fails with a `FAILED_PRECONDITION` error. * - *

Queries inside read-write transactions might return `ABORTED`. If this occurs, the + *

Operations inside read-write transactions might return `ABORTED`. If this occurs, the * application should restart the transaction from the beginning. See * [Transaction][google.spanner.v1.Transaction] for more details. * @@ -1293,8 +1293,11 @@ public final UnaryCallable rollbackCallable() { * [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] to specify a subset of the * query result to read. The same session and read-only transaction must be used by the * PartitionQueryRequest used to create the partition tokens and the ExecuteSqlRequests that use - * the partition tokens. Partition tokens become invalid when the session used to create them is - * deleted or begins a new transaction. + * the partition tokens. + * + *

Partition tokens become invalid when the session used to create them is deleted, is idle for + * too long, begins a new transaction, or becomes too old. When any of these happen, it is not + * possible to resume the query, and the whole operation must be restarted from the beginning. * *

Sample code: * @@ -1324,8 +1327,11 @@ public final PartitionResponse partitionQuery(PartitionQueryRequest request) { * [ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql] to specify a subset of the * query result to read. The same session and read-only transaction must be used by the * PartitionQueryRequest used to create the partition tokens and the ExecuteSqlRequests that use - * the partition tokens. Partition tokens become invalid when the session used to create them is - * deleted or begins a new transaction. + * the partition tokens. + * + *

Partition tokens become invalid when the session used to create them is deleted, is idle for + * too long, begins a new transaction, or becomes too old. When any of these happen, it is not + * possible to resume the query, and the whole operation must be restarted from the beginning. * *

Sample code: * @@ -1353,9 +1359,13 @@ public final UnaryCallable partitionQu * Each of the returned partition tokens can be used by * [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read result * to read. The same session and read-only transaction must be used by the PartitionReadRequest - * used to create the partition tokens and the ReadRequests that use the partition tokens. - * Partition tokens become invalid when the session used to create them is deleted or begins a new - * transaction. + * used to create the partition tokens and the ReadRequests that use the partition tokens. There + * are no ordering guarantees on rows returned among the returned partition tokens, or even within + * each individual StreamingRead call issued with a partition_token. + * + *

Partition tokens become invalid when the session used to create them is deleted, is idle for + * too long, begins a new transaction, or becomes too old. When any of these happen, it is not + * possible to resume the read, and the whole operation must be restarted from the beginning. * *

Sample code: * @@ -1386,9 +1396,13 @@ public final PartitionResponse partitionRead(PartitionReadRequest request) { * Each of the returned partition tokens can be used by * [StreamingRead][google.spanner.v1.Spanner.StreamingRead] to specify a subset of the read result * to read. The same session and read-only transaction must be used by the PartitionReadRequest - * used to create the partition tokens and the ReadRequests that use the partition tokens. - * Partition tokens become invalid when the session used to create them is deleted or begins a new - * transaction. + * used to create the partition tokens and the ReadRequests that use the partition tokens. There + * are no ordering guarantees on rows returned among the returned partition tokens, or even within + * each individual StreamingRead call issued with a partition_token. + * + *

Partition tokens become invalid when the session used to create them is deleted, is idle for + * too long, begins a new transaction, or becomes too old. When any of these happen, it is not + * possible to resume the read, and the whole operation must be restarted from the beginning. * *

Sample code: * diff --git a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java index 901b5971a468..6cf3c210e11f 100644 --- a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java +++ b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/v1/stub/SpannerStubSettings.java @@ -480,11 +480,21 @@ private static Builder initDefaults(Builder builder) { .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder + .executeStreamingSqlSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder .readSettings() .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder + .streamingReadSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default")); + builder .beginTransactionSettings() .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent")) diff --git a/utilities/generate_api.py b/utilities/generate_api.py index fd3a54e6e3dc..870f40ec491d 100644 --- a/utilities/generate_api.py +++ b/utilities/generate_api.py @@ -50,8 +50,8 @@ def get_git_repo_version(path): if changes: suffix = " ({})".format(changes.splitlines()[-1]) - - return ''.join([commit, suffix]) + print([commit,suffix]) + return ''.join([commit.decode('UTF-8'), suffix]) def dump_versions(googleapis=None, discovery_repo=None):