36
36
import com .google .protobuf .TypeRegistry ;
37
37
import com .google .spanner .v1 .BatchCreateSessionsRequest ;
38
38
import com .google .spanner .v1 .BatchCreateSessionsResponse ;
39
+ import com .google .spanner .v1 .BatchWriteRequest ;
40
+ import com .google .spanner .v1 .BatchWriteResponse ;
39
41
import com .google .spanner .v1 .BeginTransactionRequest ;
40
42
import com .google .spanner .v1 .CommitRequest ;
41
43
import com .google .spanner .v1 .CommitResponse ;
@@ -618,6 +620,43 @@ public class HttpJsonSpannerStub extends SpannerStub {
618
620
.build ())
619
621
.build ();
620
622
623
+ private static final ApiMethodDescriptor <BatchWriteRequest , BatchWriteResponse >
624
+ batchWriteMethodDescriptor =
625
+ ApiMethodDescriptor .<BatchWriteRequest , BatchWriteResponse >newBuilder ()
626
+ .setFullMethodName ("google.spanner.v1.Spanner/BatchWrite" )
627
+ .setHttpMethod ("POST" )
628
+ .setType (ApiMethodDescriptor .MethodType .SERVER_STREAMING )
629
+ .setRequestFormatter (
630
+ ProtoMessageRequestFormatter .<BatchWriteRequest >newBuilder ()
631
+ .setPath (
632
+ "/v1/{session=projects/*/instances/*/databases/*/sessions/*}:batchWrite" ,
633
+ request -> {
634
+ Map <String , String > fields = new HashMap <>();
635
+ ProtoRestSerializer <BatchWriteRequest > serializer =
636
+ ProtoRestSerializer .create ();
637
+ serializer .putPathParam (fields , "session" , request .getSession ());
638
+ return fields ;
639
+ })
640
+ .setQueryParamsExtractor (
641
+ request -> {
642
+ Map <String , List <String >> fields = new HashMap <>();
643
+ ProtoRestSerializer <BatchWriteRequest > serializer =
644
+ ProtoRestSerializer .create ();
645
+ serializer .putQueryParam (fields , "$alt" , "json;enum-encoding=int" );
646
+ return fields ;
647
+ })
648
+ .setRequestBodyExtractor (
649
+ request ->
650
+ ProtoRestSerializer .create ()
651
+ .toBody ("*" , request .toBuilder ().clearSession ().build (), true ))
652
+ .build ())
653
+ .setResponseParser (
654
+ ProtoMessageResponseParser .<BatchWriteResponse >newBuilder ()
655
+ .setDefaultInstance (BatchWriteResponse .getDefaultInstance ())
656
+ .setDefaultTypeRegistry (typeRegistry )
657
+ .build ())
658
+ .build ();
659
+
621
660
private final UnaryCallable <CreateSessionRequest , Session > createSessionCallable ;
622
661
private final UnaryCallable <BatchCreateSessionsRequest , BatchCreateSessionsResponse >
623
662
batchCreateSessionsCallable ;
@@ -638,6 +677,7 @@ public class HttpJsonSpannerStub extends SpannerStub {
638
677
private final UnaryCallable <RollbackRequest , Empty > rollbackCallable ;
639
678
private final UnaryCallable <PartitionQueryRequest , PartitionResponse > partitionQueryCallable ;
640
679
private final UnaryCallable <PartitionReadRequest , PartitionResponse > partitionReadCallable ;
680
+ private final ServerStreamingCallable <BatchWriteRequest , BatchWriteResponse > batchWriteCallable ;
641
681
642
682
private final BackgroundResource backgroundResources ;
643
683
private final HttpJsonStubCallableFactory callableFactory ;
@@ -846,6 +886,17 @@ protected HttpJsonSpannerStub(
846
886
return builder .build ();
847
887
})
848
888
.build ();
889
+ HttpJsonCallSettings <BatchWriteRequest , BatchWriteResponse > batchWriteTransportSettings =
890
+ HttpJsonCallSettings .<BatchWriteRequest , BatchWriteResponse >newBuilder ()
891
+ .setMethodDescriptor (batchWriteMethodDescriptor )
892
+ .setTypeRegistry (typeRegistry )
893
+ .setParamsExtractor (
894
+ request -> {
895
+ RequestParamsBuilder builder = RequestParamsBuilder .create ();
896
+ builder .add ("session" , String .valueOf (request .getSession ()));
897
+ return builder .build ();
898
+ })
899
+ .build ();
849
900
850
901
this .createSessionCallable =
851
902
callableFactory .createUnaryCallable (
@@ -899,6 +950,9 @@ protected HttpJsonSpannerStub(
899
950
this .partitionReadCallable =
900
951
callableFactory .createUnaryCallable (
901
952
partitionReadTransportSettings , settings .partitionReadSettings (), clientContext );
953
+ this .batchWriteCallable =
954
+ callableFactory .createServerStreamingCallable (
955
+ batchWriteTransportSettings , settings .batchWriteSettings (), clientContext );
902
956
903
957
this .backgroundResources =
904
958
new BackgroundResourceAggregation (clientContext .getBackgroundResources ());
@@ -922,6 +976,7 @@ public static List<ApiMethodDescriptor> getMethodDescriptors() {
922
976
methodDescriptors .add (rollbackMethodDescriptor );
923
977
methodDescriptors .add (partitionQueryMethodDescriptor );
924
978
methodDescriptors .add (partitionReadMethodDescriptor );
979
+ methodDescriptors .add (batchWriteMethodDescriptor );
925
980
return methodDescriptors ;
926
981
}
927
982
@@ -1007,6 +1062,11 @@ public UnaryCallable<PartitionReadRequest, PartitionResponse> partitionReadCalla
1007
1062
return partitionReadCallable ;
1008
1063
}
1009
1064
1065
+ @ Override
1066
+ public ServerStreamingCallable <BatchWriteRequest , BatchWriteResponse > batchWriteCallable () {
1067
+ return batchWriteCallable ;
1068
+ }
1069
+
1010
1070
@ Override
1011
1071
public final void close () {
1012
1072
try {
0 commit comments