From 09b31bd9032dc36071cb8d32fc5cb6d4d85878e1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Aug 2021 10:06:09 -0700 Subject: [PATCH] feat: publish new fields to support cluster group routing (#958) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/795b11d4-0f7a-417c-9125-5c8d74383ee1/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) PiperOrigin-RevId: 391576441 Source-Link: https://github.com/googleapis/googleapis/commit/5f761138c64054797b7e25164798d573ff4c1c62 PiperOrigin-RevId: 391407209 Source-Link: https://github.com/googleapis/googleapis/commit/e1738ee972b49fd0c4d4718b035444495142b781 --- .../BigtableInstanceAdminStubSettings.java | 4 +- .../stub/BigtableTableAdminStubSettings.java | 4 +- .../data/v2/stub/BigtableStubSettings.java | 4 +- .../google/bigtable/admin/v2/AppProfile.java | 354 +++++++++++++++++- .../bigtable/admin/v2/InstanceProto.java | 40 +- .../google/bigtable/admin/v2/instance.proto | 6 +- synth.metadata | 6 +- 7 files changed, 390 insertions(+), 28 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java index 2fb0778ed..908c56585 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java @@ -388,7 +388,9 @@ public static List getDefaultServiceScopes() { /** Returns a builder for the default credentials for this service. */ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { - return GoogleCredentialsProvider.newBuilder().setScopesToApply(DEFAULT_SERVICE_SCOPES); + return GoogleCredentialsProvider.newBuilder() + .setScopesToApply(DEFAULT_SERVICE_SCOPES) + .setUseJwtAccessWithScope(true); } /** Returns a builder for the default ChannelProvider for this service. */ diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java index f495e2b74..9a342b066 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java @@ -514,7 +514,9 @@ public static List getDefaultServiceScopes() { /** Returns a builder for the default credentials for this service. */ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { - return GoogleCredentialsProvider.newBuilder().setScopesToApply(DEFAULT_SERVICE_SCOPES); + return GoogleCredentialsProvider.newBuilder() + .setScopesToApply(DEFAULT_SERVICE_SCOPES) + .setUseJwtAccessWithScope(true); } /** Returns a builder for the default ChannelProvider for this service. */ diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java index 3865a89e2..0ec95f148 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java @@ -148,7 +148,9 @@ public static List getDefaultServiceScopes() { /** Returns a builder for the default credentials for this service. */ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { - return GoogleCredentialsProvider.newBuilder().setScopesToApply(DEFAULT_SERVICE_SCOPES); + return GoogleCredentialsProvider.newBuilder() + .setScopesToApply(DEFAULT_SERVICE_SCOPES) + .setUseJwtAccessWithScope(true); } /** Returns a builder for the default ChannelProvider for this service. */ diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java index 10fbb9ef5..0101dfd6b 100644 --- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java +++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/AppProfile.java @@ -175,7 +175,63 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { public interface MultiClusterRoutingUseAnyOrBuilder extends // @@protoc_insertion_point(interface_extends:google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny) - com.google.protobuf.MessageOrBuilder {} + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @return A list containing the clusterIds. + */ + java.util.List getClusterIdsList(); + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @return The count of clusterIds. + */ + int getClusterIdsCount(); + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index of the element to return. + * @return The clusterIds at the given index. + */ + java.lang.String getClusterIds(int index); + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index of the value to return. + * @return The bytes of the clusterIds at the given index. + */ + com.google.protobuf.ByteString getClusterIdsBytes(int index); + } /** * * @@ -199,7 +255,9 @@ private MultiClusterRoutingUseAny(com.google.protobuf.GeneratedMessageV3.Builder super(builder); } - private MultiClusterRoutingUseAny() {} + private MultiClusterRoutingUseAny() { + clusterIds_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } @java.lang.Override @SuppressWarnings({"unused"}) @@ -220,6 +278,7 @@ private MultiClusterRoutingUseAny( if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } + int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { @@ -230,6 +289,16 @@ private MultiClusterRoutingUseAny( case 0: done = true; break; + case 10: + { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + clusterIds_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000001; + } + clusterIds_.add(s); + break; + } default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { @@ -244,6 +313,9 @@ private MultiClusterRoutingUseAny( } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + clusterIds_ = clusterIds_.getUnmodifiableView(); + } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -264,6 +336,71 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny.Builder.class); } + public static final int CLUSTER_IDS_FIELD_NUMBER = 1; + private com.google.protobuf.LazyStringList clusterIds_; + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @return A list containing the clusterIds. + */ + public com.google.protobuf.ProtocolStringList getClusterIdsList() { + return clusterIds_; + } + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @return The count of clusterIds. + */ + public int getClusterIdsCount() { + return clusterIds_.size(); + } + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index of the element to return. + * @return The clusterIds at the given index. + */ + public java.lang.String getClusterIds(int index) { + return clusterIds_.get(index); + } + /** + * + * + *
+     * The set of clusters to route to. The order is ignored; clusters will be
+     * tried in order of distance. If left empty, all clusters are eligible.
+     * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index of the value to return. + * @return The bytes of the clusterIds at the given index. + */ + public com.google.protobuf.ByteString getClusterIdsBytes(int index) { + return clusterIds_.getByteString(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -278,6 +415,9 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + for (int i = 0; i < clusterIds_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clusterIds_.getRaw(i)); + } unknownFields.writeTo(output); } @@ -287,6 +427,14 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; + { + int dataSize = 0; + for (int i = 0; i < clusterIds_.size(); i++) { + dataSize += computeStringSizeNoTag(clusterIds_.getRaw(i)); + } + size += dataSize; + size += 1 * getClusterIdsList().size(); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -303,6 +451,7 @@ public boolean equals(final java.lang.Object obj) { com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny other = (com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny) obj; + if (!getClusterIdsList().equals(other.getClusterIdsList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -314,6 +463,10 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); + if (getClusterIdsCount() > 0) { + hash = (37 * hash) + CLUSTER_IDS_FIELD_NUMBER; + hash = (53 * hash) + getClusterIdsList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -468,6 +621,8 @@ private void maybeForceBuilderInitialization() { @java.lang.Override public Builder clear() { super.clear(); + clusterIds_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -497,6 +652,12 @@ public com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny build() public com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny buildPartial() { com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny result = new com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + clusterIds_ = clusterIds_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.clusterIds_ = clusterIds_; onBuilt(); return result; } @@ -552,6 +713,16 @@ public Builder mergeFrom( if (other == com.google.bigtable.admin.v2.AppProfile.MultiClusterRoutingUseAny .getDefaultInstance()) return this; + if (!other.clusterIds_.isEmpty()) { + if (clusterIds_.isEmpty()) { + clusterIds_ = other.clusterIds_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureClusterIdsIsMutable(); + clusterIds_.addAll(other.clusterIds_); + } + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -583,6 +754,185 @@ public Builder mergeFrom( return this; } + private int bitField0_; + + private com.google.protobuf.LazyStringList clusterIds_ = + com.google.protobuf.LazyStringArrayList.EMPTY; + + private void ensureClusterIdsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + clusterIds_ = new com.google.protobuf.LazyStringArrayList(clusterIds_); + bitField0_ |= 0x00000001; + } + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @return A list containing the clusterIds. + */ + public com.google.protobuf.ProtocolStringList getClusterIdsList() { + return clusterIds_.getUnmodifiableView(); + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @return The count of clusterIds. + */ + public int getClusterIdsCount() { + return clusterIds_.size(); + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index of the element to return. + * @return The clusterIds at the given index. + */ + public java.lang.String getClusterIds(int index) { + return clusterIds_.get(index); + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index of the value to return. + * @return The bytes of the clusterIds at the given index. + */ + public com.google.protobuf.ByteString getClusterIdsBytes(int index) { + return clusterIds_.getByteString(index); + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @param index The index to set the value at. + * @param value The clusterIds to set. + * @return This builder for chaining. + */ + public Builder setClusterIds(int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureClusterIdsIsMutable(); + clusterIds_.set(index, value); + onChanged(); + return this; + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @param value The clusterIds to add. + * @return This builder for chaining. + */ + public Builder addClusterIds(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureClusterIdsIsMutable(); + clusterIds_.add(value); + onChanged(); + return this; + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @param values The clusterIds to add. + * @return This builder for chaining. + */ + public Builder addAllClusterIds(java.lang.Iterable values) { + ensureClusterIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, clusterIds_); + onChanged(); + return this; + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @return This builder for chaining. + */ + public Builder clearClusterIds() { + clusterIds_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * + * + *
+       * The set of clusters to route to. The order is ignored; clusters will be
+       * tried in order of distance. If left empty, all clusters are eligible.
+       * 
+ * + * repeated string cluster_ids = 1; + * + * @param value The bytes of the clusterIds to add. + * @return This builder for chaining. + */ + public Builder addClusterIdsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureClusterIdsIsMutable(); + clusterIds_.add(value); + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java index 38b3642a6..85f87a8ec 100644 --- a/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java +++ b/proto-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/InstanceProto.java @@ -94,29 +94,29 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "KNOWN\020\000\022\t\n\005READY\020\001\022\014\n\010CREATING\020\002\022\014\n\010RESI" + "ZING\020\003\022\014\n\010DISABLED\020\004:`\352A]\n\037bigtable.goog" + "leapis.com/Cluster\022:projects/{project}/i" - + "nstances/{instance}/clusters/{cluster}\"\356" - + "\003\n\nAppProfile\022\014\n\004name\030\001 \001(\t\022\014\n\004etag\030\002 \001(" + + "nstances/{instance}/clusters/{cluster}\"\203" + + "\004\n\nAppProfile\022\014\n\004name\030\001 \001(\t\022\014\n\004etag\030\002 \001(" + "\t\022\023\n\013description\030\003 \001(\t\022g\n\035multi_cluster_" + "routing_use_any\030\005 \001(\0132>.google.bigtable." + "admin.v2.AppProfile.MultiClusterRoutingU" + "seAnyH\000\022[\n\026single_cluster_routing\030\006 \001(\0132" + "9.google.bigtable.admin.v2.AppProfile.Si" - + "ngleClusterRoutingH\000\032\033\n\031MultiClusterRout" - + "ingUseAny\032N\n\024SingleClusterRouting\022\022\n\nclu" - + "ster_id\030\001 \001(\t\022\"\n\032allow_transactional_wri" - + "tes\030\002 \001(\010:j\352Ag\n\"bigtable.googleapis.com/" - + "AppProfile\022Aprojects/{project}/instances" - + "/{instance}/appProfiles/{app_profile}B\020\n" - + "\016routing_policyB\320\002\n\034com.google.bigtable." - + "admin.v2B\rInstanceProtoP\001Z=google.golang" - + ".org/genproto/googleapis/bigtable/admin/" - + "v2;admin\252\002\036Google.Cloud.Bigtable.Admin.V" - + "2\312\002\036Google\\Cloud\\Bigtable\\Admin\\V2\352\002\"Goo" - + "gle::Cloud::Bigtable::Admin::V2\352Ax\n!clou" - + "dkms.googleapis.com/CryptoKey\022Sprojects/" - + "{project}/locations/{location}/keyRings/" - + "{key_ring}/cryptoKeys/{crypto_key}b\006prot" - + "o3" + + "ngleClusterRoutingH\000\0320\n\031MultiClusterRout" + + "ingUseAny\022\023\n\013cluster_ids\030\001 \003(\t\032N\n\024Single" + + "ClusterRouting\022\022\n\ncluster_id\030\001 \001(\t\022\"\n\032al" + + "low_transactional_writes\030\002 \001(\010:j\352Ag\n\"big" + + "table.googleapis.com/AppProfile\022Aproject" + + "s/{project}/instances/{instance}/appProf" + + "iles/{app_profile}B\020\n\016routing_policyB\320\002\n" + + "\034com.google.bigtable.admin.v2B\rInstanceP" + + "rotoP\001Z=google.golang.org/genproto/googl" + + "eapis/bigtable/admin/v2;admin\252\002\036Google.C" + + "loud.Bigtable.Admin.V2\312\002\036Google\\Cloud\\Bi" + + "gtable\\Admin\\V2\352\002\"Google::Cloud::Bigtabl" + + "e::Admin::V2\352Ax\n!cloudkms.googleapis.com" + + "/CryptoKey\022Sprojects/{project}/locations" + + "/{location}/keyRings/{key_ring}/cryptoKe" + + "ys/{crypto_key}b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -176,7 +176,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { internal_static_google_bigtable_admin_v2_AppProfile_MultiClusterRoutingUseAny_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_admin_v2_AppProfile_MultiClusterRoutingUseAny_descriptor, - new java.lang.String[] {}); + new java.lang.String[] { + "ClusterIds", + }); internal_static_google_bigtable_admin_v2_AppProfile_SingleClusterRouting_descriptor = internal_static_google_bigtable_admin_v2_AppProfile_descriptor.getNestedTypes().get(1); internal_static_google_bigtable_admin_v2_AppProfile_SingleClusterRouting_fieldAccessorTable = diff --git a/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/instance.proto b/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/instance.proto index d590788b2..aecf7ee53 100644 --- a/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/instance.proto +++ b/proto-google-cloud-bigtable-admin-v2/src/main/proto/google/bigtable/admin/v2/instance.proto @@ -200,7 +200,11 @@ message AppProfile { // transient errors or delays. Clusters in a region are considered // equidistant. Choosing this option sacrifices read-your-writes consistency // to improve availability. - message MultiClusterRoutingUseAny {} + message MultiClusterRoutingUseAny { + // The set of clusters to route to. The order is ignored; clusters will be + // tried in order of distance. If left empty, all clusters are eligible. + repeated string cluster_ids = 1; + } // Unconditionally routes all read/write requests to a specific cluster. // This option preserves read-your-writes consistency but does not improve diff --git a/synth.metadata b/synth.metadata index ce83dec04..1102bfd73 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigtable.git", - "sha": "99ea57b8767b5afea8ef609f73c3d0a769e34028" + "sha": "fbe8494bfabe2de3f0437291aac6a1c5d5acba6d" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "a739464cacb3aa6d375683aefe16b79c21da1bb0", - "internalRef": "389657692" + "sha": "5f761138c64054797b7e25164798d573ff4c1c62", + "internalRef": "391576441" } }, {