feat: [common-protos] add audit_context.proto Bazel targets (#1493)

* feat: added overrides_by_request_protocol to backend.proto
feat: added field proto_reference_documentation_uri to proto reference documentation.
feat: added SERVICE_NOT_VISIBLE and GCP_SUSPENDED into error reason

PiperOrigin-RevId: 517437454

Source-Link: https://github.com/googleapis/googleapis/commit/ecb1cf0a0021267dd452289fc71c75674ae29fe3

Source-Link: https://github.com/googleapis/googleapis-gen/commit/8731b8fd2044a93c32309d633dfc2e836bf13cbf
Copy-Tag: eyJwIjoiamF2YS1jb21tb24tcHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiI4NzMxYjhmZDIwNDRhOTNjMzIzMDlkNjMzZGZjMmU4MzZiZjEzY2JmIn0=

chore: regenerate API index

Source-Link: https://github.com/googleapis/googleapis/commit/40a03de111ea6b1d9a3aef0ed1127ffdb01d0601

Source-Link: https://github.com/googleapis/googleapis-gen/commit/6c17328e9e1c2b58e9600722e8fc8cbe84600d7f
Copy-Tag: eyJwIjoiamF2YS1jb21tb24tcHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiI2YzE3MzI4ZTllMWMyYjU4ZTk2MDA3MjJlOGZjOGNiZTg0NjAwZDdmIn0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* feat: add audit_context.proto Bazel targets

PiperOrigin-RevId: 519036970

Source-Link: https://github.com/googleapis/googleapis/commit/c454580348d04e2a02c7ebc61737e3b3d47fbac5

Source-Link: https://github.com/googleapis/googleapis-gen/commit/2fc6ba766b36975078e79155038c79196acb4a3f
Copy-Tag: eyJwIjoiamF2YS1jb21tb24tcHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiIyZmM2YmE3NjZiMzY5NzUwNzhlNzkxNTUwMzhjNzkxOTZhY2I0YTNmIn0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRule.java
index e0edb2a..15ab9eb 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRule.java
@@ -81,7 +81,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -105,7 +106,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -732,7 +734,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -755,7 +758,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -778,7 +782,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -800,7 +805,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -818,7 +824,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRuleOrBuilder.java
index 6b307c2..ca38fc6 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/AuthenticationRuleOrBuilder.java
@@ -28,7 +28,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -41,7 +42,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java
index 2c755af..3cc5ae6 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendProto.java
@@ -35,6 +35,10 @@
       internal_static_google_api_BackendRule_descriptor;
   static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_google_api_BackendRule_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+      internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_fieldAccessorTable;
 
   public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
     return descriptor;
@@ -46,19 +50,24 @@
     java.lang.String[] descriptorData = {
       "\n\030google/api/backend.proto\022\ngoogle.api\"1"
           + "\n\007Backend\022&\n\005rules\030\001 \003(\0132\027.google.api.Ba"
-          + "ckendRule\"\366\002\n\013BackendRule\022\020\n\010selector\030\001 "
+          + "ckendRule\"\262\004\n\013BackendRule\022\020\n\010selector\030\001 "
           + "\001(\t\022\017\n\007address\030\002 \001(\t\022\020\n\010deadline\030\003 \001(\001\022\030"
           + "\n\014min_deadline\030\004 \001(\001B\002\030\001\022\032\n\022operation_de"
           + "adline\030\005 \001(\001\022A\n\020path_translation\030\006 \001(\0162\'"
           + ".google.api.BackendRule.PathTranslation\022"
           + "\026\n\014jwt_audience\030\007 \001(\tH\000\022\026\n\014disable_auth\030"
-          + "\010 \001(\010H\000\022\020\n\010protocol\030\t \001(\t\"e\n\017PathTransla"
-          + "tion\022 \n\034PATH_TRANSLATION_UNSPECIFIED\020\000\022\024"
-          + "\n\020CONSTANT_ADDRESS\020\001\022\032\n\026APPEND_PATH_TO_A"
-          + "DDRESS\020\002B\020\n\016authenticationBn\n\016com.google"
-          + ".apiB\014BackendProtoP\001ZEgoogle.golang.org/"
-          + "genproto/googleapis/api/serviceconfig;se"
-          + "rviceconfig\242\002\004GAPIb\006proto3"
+          + "\010 \001(\010H\000\022\020\n\010protocol\030\t \001(\t\022^\n\035overrides_b"
+          + "y_request_protocol\030\n \003(\01327.google.api.Ba"
+          + "ckendRule.OverridesByRequestProtocolEntr"
+          + "y\032Z\n\037OverridesByRequestProtocolEntry\022\013\n\003"
+          + "key\030\001 \001(\t\022&\n\005value\030\002 \001(\0132\027.google.api.Ba"
+          + "ckendRule:\0028\001\"e\n\017PathTranslation\022 \n\034PATH"
+          + "_TRANSLATION_UNSPECIFIED\020\000\022\024\n\020CONSTANT_A"
+          + "DDRESS\020\001\022\032\n\026APPEND_PATH_TO_ADDRESS\020\002B\020\n\016"
+          + "authenticationBn\n\016com.google.apiB\014Backen"
+          + "dProtoP\001ZEgoogle.golang.org/genproto/goo"
+          + "gleapis/api/serviceconfig;serviceconfig\242"
+          + "\002\004GAPIb\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -84,8 +93,17 @@
               "JwtAudience",
               "DisableAuth",
               "Protocol",
+              "OverridesByRequestProtocol",
               "Authentication",
             });
+    internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_descriptor =
+        internal_static_google_api_BackendRule_descriptor.getNestedTypes().get(0);
+    internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_descriptor,
+            new java.lang.String[] {
+              "Key", "Value",
+            });
   }
 
   // @@protoc_insertion_point(outer_class_scope)
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java
index 3b25610..8eb90a0 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRule.java
@@ -59,6 +59,17 @@
     return com.google.api.BackendProto.internal_static_google_api_BackendRule_descriptor;
   }
 
+  @SuppressWarnings({"rawtypes"})
+  @java.lang.Override
+  protected com.google.protobuf.MapField internalGetMapField(int number) {
+    switch (number) {
+      case 10:
+        return internalGetOverridesByRequestProtocol();
+      default:
+        throw new RuntimeException("Invalid map field number: " + number);
+    }
+  }
+
   @java.lang.Override
   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internalGetFieldAccessorTable() {
@@ -327,7 +338,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -351,7 +363,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -481,7 +494,7 @@
    * <code>double min_deadline = 4 [deprecated = true];</code>
    *
    * @deprecated google.api.BackendRule.min_deadline is deprecated. See
-   *     google/api/backend.proto;l=123
+   *     google/api/backend.proto;l=124
    * @return The minDeadline.
    */
   @java.lang.Override
@@ -730,6 +743,117 @@
     }
   }
 
+  public static final int OVERRIDES_BY_REQUEST_PROTOCOL_FIELD_NUMBER = 10;
+
+  private static final class OverridesByRequestProtocolDefaultEntryHolder {
+    static final com.google.protobuf.MapEntry<java.lang.String, com.google.api.BackendRule>
+        defaultEntry =
+            com.google.protobuf.MapEntry
+                .<java.lang.String, com.google.api.BackendRule>newDefaultInstance(
+                    com.google.api.BackendProto
+                        .internal_static_google_api_BackendRule_OverridesByRequestProtocolEntry_descriptor,
+                    com.google.protobuf.WireFormat.FieldType.STRING,
+                    "",
+                    com.google.protobuf.WireFormat.FieldType.MESSAGE,
+                    com.google.api.BackendRule.getDefaultInstance());
+  }
+
+  @SuppressWarnings("serial")
+  private com.google.protobuf.MapField<java.lang.String, com.google.api.BackendRule>
+      overridesByRequestProtocol_;
+
+  private com.google.protobuf.MapField<java.lang.String, com.google.api.BackendRule>
+      internalGetOverridesByRequestProtocol() {
+    if (overridesByRequestProtocol_ == null) {
+      return com.google.protobuf.MapField.emptyMapField(
+          OverridesByRequestProtocolDefaultEntryHolder.defaultEntry);
+    }
+    return overridesByRequestProtocol_;
+  }
+
+  public int getOverridesByRequestProtocolCount() {
+    return internalGetOverridesByRequestProtocol().getMap().size();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  @java.lang.Override
+  public boolean containsOverridesByRequestProtocol(java.lang.String key) {
+    if (key == null) {
+      throw new NullPointerException("map key");
+    }
+    return internalGetOverridesByRequestProtocol().getMap().containsKey(key);
+  }
+  /** Use {@link #getOverridesByRequestProtocolMap()} instead. */
+  @java.lang.Override
+  @java.lang.Deprecated
+  public java.util.Map<java.lang.String, com.google.api.BackendRule>
+      getOverridesByRequestProtocol() {
+    return getOverridesByRequestProtocolMap();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  @java.lang.Override
+  public java.util.Map<java.lang.String, com.google.api.BackendRule>
+      getOverridesByRequestProtocolMap() {
+    return internalGetOverridesByRequestProtocol().getMap();
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  @java.lang.Override
+  public /* nullable */ com.google.api.BackendRule getOverridesByRequestProtocolOrDefault(
+      java.lang.String key,
+      /* nullable */
+      com.google.api.BackendRule defaultValue) {
+    if (key == null) {
+      throw new NullPointerException("map key");
+    }
+    java.util.Map<java.lang.String, com.google.api.BackendRule> map =
+        internalGetOverridesByRequestProtocol().getMap();
+    return map.containsKey(key) ? map.get(key) : defaultValue;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  @java.lang.Override
+  public com.google.api.BackendRule getOverridesByRequestProtocolOrThrow(java.lang.String key) {
+    if (key == null) {
+      throw new NullPointerException("map key");
+    }
+    java.util.Map<java.lang.String, com.google.api.BackendRule> map =
+        internalGetOverridesByRequestProtocol().getMap();
+    if (!map.containsKey(key)) {
+      throw new java.lang.IllegalArgumentException();
+    }
+    return map.get(key);
+  }
+
   private byte memoizedIsInitialized = -1;
 
   @java.lang.Override
@@ -772,6 +896,11 @@
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(protocol_)) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 9, protocol_);
     }
+    com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
+        output,
+        internalGetOverridesByRequestProtocol(),
+        OverridesByRequestProtocolDefaultEntryHolder.defaultEntry,
+        10);
     getUnknownFields().writeTo(output);
   }
 
@@ -811,6 +940,19 @@
     if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(protocol_)) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, protocol_);
     }
+    for (java.util.Map.Entry<java.lang.String, com.google.api.BackendRule> entry :
+        internalGetOverridesByRequestProtocol().getMap().entrySet()) {
+      com.google.protobuf.MapEntry<java.lang.String, com.google.api.BackendRule>
+          overridesByRequestProtocol__ =
+              OverridesByRequestProtocolDefaultEntryHolder.defaultEntry
+                  .newBuilderForType()
+                  .setKey(entry.getKey())
+                  .setValue(entry.getValue())
+                  .build();
+      size +=
+          com.google.protobuf.CodedOutputStream.computeMessageSize(
+              10, overridesByRequestProtocol__);
+    }
     size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
@@ -836,6 +978,8 @@
         != java.lang.Double.doubleToLongBits(other.getOperationDeadline())) return false;
     if (pathTranslation_ != other.pathTranslation_) return false;
     if (!getProtocol().equals(other.getProtocol())) return false;
+    if (!internalGetOverridesByRequestProtocol()
+        .equals(other.internalGetOverridesByRequestProtocol())) return false;
     if (!getAuthenticationCase().equals(other.getAuthenticationCase())) return false;
     switch (authenticationCase_) {
       case 7:
@@ -881,6 +1025,10 @@
     hash = (53 * hash) + pathTranslation_;
     hash = (37 * hash) + PROTOCOL_FIELD_NUMBER;
     hash = (53 * hash) + getProtocol().hashCode();
+    if (!internalGetOverridesByRequestProtocol().getMap().isEmpty()) {
+      hash = (37 * hash) + OVERRIDES_BY_REQUEST_PROTOCOL_FIELD_NUMBER;
+      hash = (53 * hash) + internalGetOverridesByRequestProtocol().hashCode();
+    }
     switch (authenticationCase_) {
       case 7:
         hash = (37 * hash) + JWT_AUDIENCE_FIELD_NUMBER;
@@ -1009,6 +1157,26 @@
       return com.google.api.BackendProto.internal_static_google_api_BackendRule_descriptor;
     }
 
+    @SuppressWarnings({"rawtypes"})
+    protected com.google.protobuf.MapField internalGetMapField(int number) {
+      switch (number) {
+        case 10:
+          return internalGetOverridesByRequestProtocol();
+        default:
+          throw new RuntimeException("Invalid map field number: " + number);
+      }
+    }
+
+    @SuppressWarnings({"rawtypes"})
+    protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
+      switch (number) {
+        case 10:
+          return internalGetMutableOverridesByRequestProtocol();
+        default:
+          throw new RuntimeException("Invalid map field number: " + number);
+      }
+    }
+
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
         internalGetFieldAccessorTable() {
@@ -1035,6 +1203,7 @@
       operationDeadline_ = 0D;
       pathTranslation_ = 0;
       protocol_ = "";
+      internalGetMutableOverridesByRequestProtocol().clear();
       authenticationCase_ = 0;
       authentication_ = null;
       return this;
@@ -1093,6 +1262,10 @@
       if (((from_bitField0_ & 0x00000100) != 0)) {
         result.protocol_ = protocol_;
       }
+      if (((from_bitField0_ & 0x00000200) != 0)) {
+        result.overridesByRequestProtocol_ = internalGetOverridesByRequestProtocol();
+        result.overridesByRequestProtocol_.makeImmutable();
+      }
     }
 
     private void buildPartialOneofs(com.google.api.BackendRule result) {
@@ -1172,6 +1345,9 @@
         bitField0_ |= 0x00000100;
         onChanged();
       }
+      internalGetMutableOverridesByRequestProtocol()
+          .mergeFrom(other.internalGetOverridesByRequestProtocol());
+      bitField0_ |= 0x00000200;
       switch (other.getAuthenticationCase()) {
         case JWT_AUDIENCE:
           {
@@ -1271,6 +1447,22 @@
                 bitField0_ |= 0x00000100;
                 break;
               } // case 74
+            case 82:
+              {
+                com.google.protobuf.MapEntry<java.lang.String, com.google.api.BackendRule>
+                    overridesByRequestProtocol__ =
+                        input.readMessage(
+                            OverridesByRequestProtocolDefaultEntryHolder.defaultEntry
+                                .getParserForType(),
+                            extensionRegistry);
+                internalGetMutableOverridesByRequestProtocol()
+                    .getMutableMap()
+                    .put(
+                        overridesByRequestProtocol__.getKey(),
+                        overridesByRequestProtocol__.getValue());
+                bitField0_ |= 0x00000200;
+                break;
+              } // case 82
             default:
               {
                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -1310,7 +1502,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1333,7 +1526,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1356,7 +1550,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1378,7 +1573,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1396,7 +1592,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1658,7 +1855,7 @@
      * <code>double min_deadline = 4 [deprecated = true];</code>
      *
      * @deprecated google.api.BackendRule.min_deadline is deprecated. See
-     *     google/api/backend.proto;l=123
+     *     google/api/backend.proto;l=124
      * @return The minDeadline.
      */
     @java.lang.Override
@@ -1676,7 +1873,7 @@
      * <code>double min_deadline = 4 [deprecated = true];</code>
      *
      * @deprecated google.api.BackendRule.min_deadline is deprecated. See
-     *     google/api/backend.proto;l=123
+     *     google/api/backend.proto;l=124
      * @param value The minDeadline to set.
      * @return This builder for chaining.
      */
@@ -1698,7 +1895,7 @@
      * <code>double min_deadline = 4 [deprecated = true];</code>
      *
      * @deprecated google.api.BackendRule.min_deadline is deprecated. See
-     *     google/api/backend.proto;l=123
+     *     google/api/backend.proto;l=124
      * @return This builder for chaining.
      */
     @java.lang.Deprecated
@@ -2234,6 +2431,181 @@
       return this;
     }
 
+    private com.google.protobuf.MapField<java.lang.String, com.google.api.BackendRule>
+        overridesByRequestProtocol_;
+
+    private com.google.protobuf.MapField<java.lang.String, com.google.api.BackendRule>
+        internalGetOverridesByRequestProtocol() {
+      if (overridesByRequestProtocol_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            OverridesByRequestProtocolDefaultEntryHolder.defaultEntry);
+      }
+      return overridesByRequestProtocol_;
+    }
+
+    private com.google.protobuf.MapField<java.lang.String, com.google.api.BackendRule>
+        internalGetMutableOverridesByRequestProtocol() {
+      if (overridesByRequestProtocol_ == null) {
+        overridesByRequestProtocol_ =
+            com.google.protobuf.MapField.newMapField(
+                OverridesByRequestProtocolDefaultEntryHolder.defaultEntry);
+      }
+      if (!overridesByRequestProtocol_.isMutable()) {
+        overridesByRequestProtocol_ = overridesByRequestProtocol_.copy();
+      }
+      bitField0_ |= 0x00000200;
+      onChanged();
+      return overridesByRequestProtocol_;
+    }
+
+    public int getOverridesByRequestProtocolCount() {
+      return internalGetOverridesByRequestProtocol().getMap().size();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    @java.lang.Override
+    public boolean containsOverridesByRequestProtocol(java.lang.String key) {
+      if (key == null) {
+        throw new NullPointerException("map key");
+      }
+      return internalGetOverridesByRequestProtocol().getMap().containsKey(key);
+    }
+    /** Use {@link #getOverridesByRequestProtocolMap()} instead. */
+    @java.lang.Override
+    @java.lang.Deprecated
+    public java.util.Map<java.lang.String, com.google.api.BackendRule>
+        getOverridesByRequestProtocol() {
+      return getOverridesByRequestProtocolMap();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    @java.lang.Override
+    public java.util.Map<java.lang.String, com.google.api.BackendRule>
+        getOverridesByRequestProtocolMap() {
+      return internalGetOverridesByRequestProtocol().getMap();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    @java.lang.Override
+    public /* nullable */ com.google.api.BackendRule getOverridesByRequestProtocolOrDefault(
+        java.lang.String key,
+        /* nullable */
+        com.google.api.BackendRule defaultValue) {
+      if (key == null) {
+        throw new NullPointerException("map key");
+      }
+      java.util.Map<java.lang.String, com.google.api.BackendRule> map =
+          internalGetOverridesByRequestProtocol().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    @java.lang.Override
+    public com.google.api.BackendRule getOverridesByRequestProtocolOrThrow(java.lang.String key) {
+      if (key == null) {
+        throw new NullPointerException("map key");
+      }
+      java.util.Map<java.lang.String, com.google.api.BackendRule> map =
+          internalGetOverridesByRequestProtocol().getMap();
+      if (!map.containsKey(key)) {
+        throw new java.lang.IllegalArgumentException();
+      }
+      return map.get(key);
+    }
+
+    public Builder clearOverridesByRequestProtocol() {
+      bitField0_ = (bitField0_ & ~0x00000200);
+      internalGetMutableOverridesByRequestProtocol().getMutableMap().clear();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    public Builder removeOverridesByRequestProtocol(java.lang.String key) {
+      if (key == null) {
+        throw new NullPointerException("map key");
+      }
+      internalGetMutableOverridesByRequestProtocol().getMutableMap().remove(key);
+      return this;
+    }
+    /** Use alternate mutation accessors instead. */
+    @java.lang.Deprecated
+    public java.util.Map<java.lang.String, com.google.api.BackendRule>
+        getMutableOverridesByRequestProtocol() {
+      bitField0_ |= 0x00000200;
+      return internalGetMutableOverridesByRequestProtocol().getMutableMap();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    public Builder putOverridesByRequestProtocol(
+        java.lang.String key, com.google.api.BackendRule value) {
+      if (key == null) {
+        throw new NullPointerException("map key");
+      }
+      if (value == null) {
+        throw new NullPointerException("map value");
+      }
+      internalGetMutableOverridesByRequestProtocol().getMutableMap().put(key, value);
+      bitField0_ |= 0x00000200;
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * The map between request protocol and the backend address.
+     * </pre>
+     *
+     * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+     */
+    public Builder putAllOverridesByRequestProtocol(
+        java.util.Map<java.lang.String, com.google.api.BackendRule> values) {
+      internalGetMutableOverridesByRequestProtocol().getMutableMap().putAll(values);
+      bitField0_ |= 0x00000200;
+      return this;
+    }
+
     @java.lang.Override
     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
       return super.setUnknownFields(unknownFields);
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java
index a76b090..e4d7664 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/BackendRuleOrBuilder.java
@@ -28,7 +28,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -41,7 +42,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -127,7 +129,7 @@
    * <code>double min_deadline = 4 [deprecated = true];</code>
    *
    * @deprecated google.api.BackendRule.min_deadline is deprecated. See
-   *     google/api/backend.proto;l=123
+   *     google/api/backend.proto;l=124
    * @return The minDeadline.
    */
   @java.lang.Deprecated
@@ -289,5 +291,63 @@
    */
   com.google.protobuf.ByteString getProtocolBytes();
 
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  int getOverridesByRequestProtocolCount();
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  boolean containsOverridesByRequestProtocol(java.lang.String key);
+  /** Use {@link #getOverridesByRequestProtocolMap()} instead. */
+  @java.lang.Deprecated
+  java.util.Map<java.lang.String, com.google.api.BackendRule> getOverridesByRequestProtocol();
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  java.util.Map<java.lang.String, com.google.api.BackendRule> getOverridesByRequestProtocolMap();
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  /* nullable */
+  com.google.api.BackendRule getOverridesByRequestProtocolOrDefault(
+      java.lang.String key,
+      /* nullable */
+      com.google.api.BackendRule defaultValue);
+  /**
+   *
+   *
+   * <pre>
+   * The map between request protocol and the backend address.
+   * </pre>
+   *
+   * <code>map&lt;string, .google.api.BackendRule&gt; overrides_by_request_protocol = 10;</code>
+   */
+  com.google.api.BackendRule getOverridesByRequestProtocolOrThrow(java.lang.String key);
+
   public com.google.api.BackendRule.AuthenticationCase getAuthenticationCase();
 }
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Billing.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Billing.java
index 27c25db..081f409 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Billing.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Billing.java
@@ -102,7 +102,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -115,7 +116,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -129,7 +131,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -142,7 +145,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -155,7 +159,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -169,7 +174,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -239,7 +245,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -263,7 +270,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -292,7 +300,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -307,7 +316,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -322,7 +332,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -338,7 +349,8 @@
      *
      * <pre>
      * Names of the metrics to report to this billing destination.
-     * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each name must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -746,7 +758,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -769,7 +782,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -792,7 +806,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -814,7 +829,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -832,7 +848,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -865,7 +882,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -880,7 +898,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -895,7 +914,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -911,7 +931,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -927,7 +948,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -950,7 +972,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -972,7 +995,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -991,7 +1015,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -1009,7 +1034,8 @@
        *
        * <pre>
        * Names of the metrics to report to this billing destination.
-       * Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each name must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettings.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettings.java
index 69164db..22e1d6a 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettings.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettings.java
@@ -75,7 +75,9 @@
    *
    *
    * <pre>
-   * Version of the API to apply these settings to.
+   * Version of the API to apply these settings to. This is the full protobuf
+   * package for the API, ending in the version element.
+   * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
    * </pre>
    *
    * <code>string version = 1;</code>
@@ -98,7 +100,9 @@
    *
    *
    * <pre>
-   * Version of the API to apply these settings to.
+   * Version of the API to apply these settings to. This is the full protobuf
+   * package for the API, ending in the version element.
+   * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
    * </pre>
    *
    * <code>string version = 1;</code>
@@ -1187,7 +1191,9 @@
      *
      *
      * <pre>
-     * Version of the API to apply these settings to.
+     * Version of the API to apply these settings to. This is the full protobuf
+     * package for the API, ending in the version element.
+     * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
      * </pre>
      *
      * <code>string version = 1;</code>
@@ -1209,7 +1215,9 @@
      *
      *
      * <pre>
-     * Version of the API to apply these settings to.
+     * Version of the API to apply these settings to. This is the full protobuf
+     * package for the API, ending in the version element.
+     * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
      * </pre>
      *
      * <code>string version = 1;</code>
@@ -1231,7 +1239,9 @@
      *
      *
      * <pre>
-     * Version of the API to apply these settings to.
+     * Version of the API to apply these settings to. This is the full protobuf
+     * package for the API, ending in the version element.
+     * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
      * </pre>
      *
      * <code>string version = 1;</code>
@@ -1252,7 +1262,9 @@
      *
      *
      * <pre>
-     * Version of the API to apply these settings to.
+     * Version of the API to apply these settings to. This is the full protobuf
+     * package for the API, ending in the version element.
+     * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
      * </pre>
      *
      * <code>string version = 1;</code>
@@ -1269,7 +1281,9 @@
      *
      *
      * <pre>
-     * Version of the API to apply these settings to.
+     * Version of the API to apply these settings to. This is the full protobuf
+     * package for the API, ending in the version element.
+     * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
      * </pre>
      *
      * <code>string version = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettingsOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettingsOrBuilder.java
index e4a965b..e44a81f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettingsOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientLibrarySettingsOrBuilder.java
@@ -27,7 +27,9 @@
    *
    *
    * <pre>
-   * Version of the API to apply these settings to.
+   * Version of the API to apply these settings to. This is the full protobuf
+   * package for the API, ending in the version element.
+   * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
    * </pre>
    *
    * <code>string version = 1;</code>
@@ -39,7 +41,9 @@
    *
    *
    * <pre>
-   * Version of the API to apply these settings to.
+   * Version of the API to apply these settings to. This is the full protobuf
+   * package for the API, ending in the version element.
+   * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
    * </pre>
    *
    * <code>string version = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java
index d140259..2b57d89 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ClientProto.java
@@ -209,7 +209,7 @@
           + "2\032.google.api.DotnetSettings\022/\n\rruby_set"
           + "tings\030\033 \001(\0132\030.google.api.RubySettings\022+\n"
           + "\013go_settings\030\034 \001(\0132\026.google.api.GoSettin"
-          + "gs\"\323\002\n\nPublishing\0223\n\017method_settings\030\002 \003"
+          + "gs\"\376\002\n\nPublishing\0223\n\017method_settings\030\002 \003"
           + "(\0132\032.google.api.MethodSettings\022\025\n\rnew_is"
           + "sue_uri\030e \001(\t\022\031\n\021documentation_uri\030f \001(\t"
           + "\022\026\n\016api_short_name\030g \001(\t\022\024\n\014github_label"
@@ -217,45 +217,46 @@
           + "\n\016doc_tag_prefix\030j \001(\t\022;\n\014organization\030k"
           + " \001(\0162%.google.api.ClientLibraryOrganizat"
           + "ion\022;\n\020library_settings\030m \003(\0132!.google.a"
-          + "pi.ClientLibrarySettings\"\343\001\n\014JavaSetting"
-          + "s\022\027\n\017library_package\030\001 \001(\t\022L\n\023service_cl"
-          + "ass_names\030\002 \003(\0132/.google.api.JavaSetting"
-          + "s.ServiceClassNamesEntry\0222\n\006common\030\003 \001(\013"
-          + "2\".google.api.CommonLanguageSettings\0328\n\026"
-          + "ServiceClassNamesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005v"
-          + "alue\030\002 \001(\t:\0028\001\"A\n\013CppSettings\0222\n\006common\030"
-          + "\001 \001(\0132\".google.api.CommonLanguageSetting"
-          + "s\"A\n\013PhpSettings\0222\n\006common\030\001 \001(\0132\".googl"
-          + "e.api.CommonLanguageSettings\"D\n\016PythonSe"
-          + "ttings\0222\n\006common\030\001 \001(\0132\".google.api.Comm"
-          + "onLanguageSettings\"B\n\014NodeSettings\0222\n\006co"
-          + "mmon\030\001 \001(\0132\".google.api.CommonLanguageSe"
-          + "ttings\"D\n\016DotnetSettings\0222\n\006common\030\001 \001(\013"
-          + "2\".google.api.CommonLanguageSettings\"B\n\014"
-          + "RubySettings\0222\n\006common\030\001 \001(\0132\".google.ap"
-          + "i.CommonLanguageSettings\"@\n\nGoSettings\0222"
-          + "\n\006common\030\001 \001(\0132\".google.api.CommonLangua"
-          + "geSettings\"\260\002\n\016MethodSettings\022\020\n\010selecto"
-          + "r\030\001 \001(\t\022<\n\014long_running\030\002 \001(\0132&.google.a"
-          + "pi.MethodSettings.LongRunning\032\315\001\n\013LongRu"
-          + "nning\0225\n\022initial_poll_delay\030\001 \001(\0132\031.goog"
-          + "le.protobuf.Duration\022\035\n\025poll_delay_multi"
-          + "plier\030\002 \001(\002\0221\n\016max_poll_delay\030\003 \001(\0132\031.go"
-          + "ogle.protobuf.Duration\0225\n\022total_poll_tim"
-          + "eout\030\004 \001(\0132\031.google.protobuf.Duration*y\n"
-          + "\031ClientLibraryOrganization\022+\n\'CLIENT_LIB"
-          + "RARY_ORGANIZATION_UNSPECIFIED\020\000\022\t\n\005CLOUD"
-          + "\020\001\022\007\n\003ADS\020\002\022\n\n\006PHOTOS\020\003\022\017\n\013STREET_VIEW\020\004"
-          + "*g\n\030ClientLibraryDestination\022*\n&CLIENT_L"
-          + "IBRARY_DESTINATION_UNSPECIFIED\020\000\022\n\n\006GITH"
-          + "UB\020\n\022\023\n\017PACKAGE_MANAGER\020\024:9\n\020method_sign"
-          + "ature\022\036.google.protobuf.MethodOptions\030\233\010"
-          + " \003(\t:6\n\014default_host\022\037.google.protobuf.S"
-          + "erviceOptions\030\231\010 \001(\t:6\n\014oauth_scopes\022\037.g"
-          + "oogle.protobuf.ServiceOptions\030\232\010 \001(\tBi\n\016"
-          + "com.google.apiB\013ClientProtoP\001ZAgoogle.go"
-          + "lang.org/genproto/googleapis/api/annotat"
-          + "ions;annotations\242\002\004GAPIb\006proto3"
+          + "pi.ClientLibrarySettings\022)\n!proto_refere"
+          + "nce_documentation_uri\030n \001(\t\"\343\001\n\014JavaSett"
+          + "ings\022\027\n\017library_package\030\001 \001(\t\022L\n\023service"
+          + "_class_names\030\002 \003(\0132/.google.api.JavaSett"
+          + "ings.ServiceClassNamesEntry\0222\n\006common\030\003 "
+          + "\001(\0132\".google.api.CommonLanguageSettings\032"
+          + "8\n\026ServiceClassNamesEntry\022\013\n\003key\030\001 \001(\t\022\r"
+          + "\n\005value\030\002 \001(\t:\0028\001\"A\n\013CppSettings\0222\n\006comm"
+          + "on\030\001 \001(\0132\".google.api.CommonLanguageSett"
+          + "ings\"A\n\013PhpSettings\0222\n\006common\030\001 \001(\0132\".go"
+          + "ogle.api.CommonLanguageSettings\"D\n\016Pytho"
+          + "nSettings\0222\n\006common\030\001 \001(\0132\".google.api.C"
+          + "ommonLanguageSettings\"B\n\014NodeSettings\0222\n"
+          + "\006common\030\001 \001(\0132\".google.api.CommonLanguag"
+          + "eSettings\"D\n\016DotnetSettings\0222\n\006common\030\001 "
+          + "\001(\0132\".google.api.CommonLanguageSettings\""
+          + "B\n\014RubySettings\0222\n\006common\030\001 \001(\0132\".google"
+          + ".api.CommonLanguageSettings\"@\n\nGoSetting"
+          + "s\0222\n\006common\030\001 \001(\0132\".google.api.CommonLan"
+          + "guageSettings\"\260\002\n\016MethodSettings\022\020\n\010sele"
+          + "ctor\030\001 \001(\t\022<\n\014long_running\030\002 \001(\0132&.googl"
+          + "e.api.MethodSettings.LongRunning\032\315\001\n\013Lon"
+          + "gRunning\0225\n\022initial_poll_delay\030\001 \001(\0132\031.g"
+          + "oogle.protobuf.Duration\022\035\n\025poll_delay_mu"
+          + "ltiplier\030\002 \001(\002\0221\n\016max_poll_delay\030\003 \001(\0132\031"
+          + ".google.protobuf.Duration\0225\n\022total_poll_"
+          + "timeout\030\004 \001(\0132\031.google.protobuf.Duration"
+          + "*y\n\031ClientLibraryOrganization\022+\n\'CLIENT_"
+          + "LIBRARY_ORGANIZATION_UNSPECIFIED\020\000\022\t\n\005CL"
+          + "OUD\020\001\022\007\n\003ADS\020\002\022\n\n\006PHOTOS\020\003\022\017\n\013STREET_VIE"
+          + "W\020\004*g\n\030ClientLibraryDestination\022*\n&CLIEN"
+          + "T_LIBRARY_DESTINATION_UNSPECIFIED\020\000\022\n\n\006G"
+          + "ITHUB\020\n\022\023\n\017PACKAGE_MANAGER\020\024:9\n\020method_s"
+          + "ignature\022\036.google.protobuf.MethodOptions"
+          + "\030\233\010 \003(\t:6\n\014default_host\022\037.google.protobu"
+          + "f.ServiceOptions\030\231\010 \001(\t:6\n\014oauth_scopes\022"
+          + "\037.google.protobuf.ServiceOptions\030\232\010 \001(\tB"
+          + "i\n\016com.google.apiB\013ClientProtoP\001ZAgoogle"
+          + ".golang.org/genproto/googleapis/api/anno"
+          + "tations;annotations\242\002\004GAPIb\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -305,6 +306,7 @@
               "DocTagPrefix",
               "Organization",
               "LibrarySettings",
+              "ProtoReferenceDocumentationUri",
             });
     internal_static_google_api_JavaSettings_descriptor = getDescriptor().getMessageTypes().get(3);
     internal_static_google_api_JavaSettings_fieldAccessorTable =
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRule.java
index 1cc6e06..de05105 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRule.java
@@ -78,7 +78,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -102,7 +103,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -891,7 +893,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -914,7 +917,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -937,7 +941,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -959,7 +964,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -977,7 +983,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRuleOrBuilder.java
index a0df126..d6c720c 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ContextRuleOrBuilder.java
@@ -28,7 +28,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -41,7 +42,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java
index 63903e4..68f6de9 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReason.java
@@ -669,6 +669,48 @@
    * <code>ORG_RESTRICTION_HEADER_INVALID = 28;</code>
    */
   ORG_RESTRICTION_HEADER_INVALID(28),
+  /**
+   *
+   *
+   * <pre>
+   * Unimplemented. Do not use.
+   * The request is calling a service that is not visible to the consumer.
+   * Example of an ErrorInfo when the consumer "projects/123" contacting
+   *  "pubsub.googleapis.com" service which is not visible to the consumer.
+   *     { "reason": "SERVICE_NOT_VISIBLE",
+   *       "domain": "googleapis.com",
+   *       "metadata": {
+   *         "consumer": "projects/123",
+   *         "service": "pubsub.googleapis.com"
+   *       }
+   *     }
+   * This response indicates the "pubsub.googleapis.com" is not visible to
+   * "projects/123" (or it may not exist).
+   * </pre>
+   *
+   * <code>SERVICE_NOT_VISIBLE = 29;</code>
+   */
+  SERVICE_NOT_VISIBLE(29),
+  /**
+   *
+   *
+   * <pre>
+   * The request is related to a project for which GCP access is suspended.
+   * Example of an ErrorInfo when the consumer "projects/123" fails to contact
+   * "pubsub.googleapis.com" service because GCP access is suspended:
+   *     { "reason": "GCP_SUSPENDED",
+   *       "domain": "googleapis.com",
+   *       "metadata": {
+   *         "consumer": "projects/123",
+   *         "service": "pubsub.googleapis.com"
+   *       }
+   *     }
+   * This response indicates the associated GCP account has been suspended.
+   * </pre>
+   *
+   * <code>GCP_SUSPENDED = 30;</code>
+   */
+  GCP_SUSPENDED(30),
   UNRECOGNIZED(-1),
   ;
 
@@ -1304,6 +1346,48 @@
    * <code>ORG_RESTRICTION_HEADER_INVALID = 28;</code>
    */
   public static final int ORG_RESTRICTION_HEADER_INVALID_VALUE = 28;
+  /**
+   *
+   *
+   * <pre>
+   * Unimplemented. Do not use.
+   * The request is calling a service that is not visible to the consumer.
+   * Example of an ErrorInfo when the consumer "projects/123" contacting
+   *  "pubsub.googleapis.com" service which is not visible to the consumer.
+   *     { "reason": "SERVICE_NOT_VISIBLE",
+   *       "domain": "googleapis.com",
+   *       "metadata": {
+   *         "consumer": "projects/123",
+   *         "service": "pubsub.googleapis.com"
+   *       }
+   *     }
+   * This response indicates the "pubsub.googleapis.com" is not visible to
+   * "projects/123" (or it may not exist).
+   * </pre>
+   *
+   * <code>SERVICE_NOT_VISIBLE = 29;</code>
+   */
+  public static final int SERVICE_NOT_VISIBLE_VALUE = 29;
+  /**
+   *
+   *
+   * <pre>
+   * The request is related to a project for which GCP access is suspended.
+   * Example of an ErrorInfo when the consumer "projects/123" fails to contact
+   * "pubsub.googleapis.com" service because GCP access is suspended:
+   *     { "reason": "GCP_SUSPENDED",
+   *       "domain": "googleapis.com",
+   *       "metadata": {
+   *         "consumer": "projects/123",
+   *         "service": "pubsub.googleapis.com"
+   *       }
+   *     }
+   * This response indicates the associated GCP account has been suspended.
+   * </pre>
+   *
+   * <code>GCP_SUSPENDED = 30;</code>
+   */
+  public static final int GCP_SUSPENDED_VALUE = 30;
 
   public final int getNumber() {
     if (this == UNRECOGNIZED) {
@@ -1385,6 +1469,10 @@
         return ORG_RESTRICTION_VIOLATION;
       case 28:
         return ORG_RESTRICTION_HEADER_INVALID;
+      case 29:
+        return SERVICE_NOT_VISIBLE;
+      case 30:
+        return GCP_SUSPENDED;
       default:
         return null;
     }
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java
index 406d7c3..6642221 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ErrorReasonProto.java
@@ -36,7 +36,7 @@
   static {
     java.lang.String[] descriptorData = {
       "\n\035google/api/error_reason.proto\022\ngoogle."
-          + "api*\300\006\n\013ErrorReason\022\034\n\030ERROR_REASON_UNSP"
+          + "api*\354\006\n\013ErrorReason\022\034\n\030ERROR_REASON_UNSP"
           + "ECIFIED\020\000\022\024\n\020SERVICE_DISABLED\020\001\022\024\n\020BILLI"
           + "NG_DISABLED\020\002\022\023\n\017API_KEY_INVALID\020\003\022\033\n\027AP"
           + "I_KEY_SERVICE_BLOCKED\020\004\022!\n\035API_KEY_HTTP_"
@@ -56,10 +56,12 @@
           + "OCKED_BY_ADMIN\020\030\022\'\n#RESOURCE_USAGE_RESTR"
           + "ICTION_VIOLATED\020\031\022 \n\034SYSTEM_PARAMETER_UN"
           + "SUPPORTED\020\032\022\035\n\031ORG_RESTRICTION_VIOLATION"
-          + "\020\033\022\"\n\036ORG_RESTRICTION_HEADER_INVALID\020\034Bp"
-          + "\n\016com.google.apiB\020ErrorReasonProtoP\001ZCgo"
-          + "ogle.golang.org/genproto/googleapis/api/"
-          + "error_reason;error_reason\242\002\004GAPIb\006proto3"
+          + "\020\033\022\"\n\036ORG_RESTRICTION_HEADER_INVALID\020\034\022\027"
+          + "\n\023SERVICE_NOT_VISIBLE\020\035\022\021\n\rGCP_SUSPENDED"
+          + "\020\036Bp\n\016com.google.apiB\020ErrorReasonProtoP\001"
+          + "ZCgoogle.golang.org/genproto/googleapis/"
+          + "api/error_reason;error_reason\242\002\004GAPIb\006pr"
+          + "oto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRule.java
index 8560ac5..03212bb 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRule.java
@@ -163,15 +163,18 @@
  * 1. Leaf request fields (recursive expansion nested messages in the request
  *    message) are classified into three categories:
  *    - Fields referred by the path template. They are passed via the URL path.
- *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
+ *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
+ *    are passed via the HTTP
  *      request body.
  *    - All other fields are passed via the URL query parameters, and the
  *      parameter name is the field path in the request message. A repeated
  *      field can be represented as multiple query parameters under the same
  *      name.
- *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
+ *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
+ *  query parameter, all fields
  *     are passed via URL path and HTTP request body.
- *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
+ *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
+ *  request body, all
  *     fields are passed via URL path and URL query parameters.
  * ### Path template syntax
  *     Template = "/" Segments [ Verb ] ;
@@ -356,7 +359,8 @@
    *
    * <pre>
    * Selects a method to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -380,7 +384,8 @@
    *
    * <pre>
    * Selects a method to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -1433,15 +1438,18 @@
    * 1. Leaf request fields (recursive expansion nested messages in the request
    *    message) are classified into three categories:
    *    - Fields referred by the path template. They are passed via the URL path.
-   *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
+   *    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
+   *    are passed via the HTTP
    *      request body.
    *    - All other fields are passed via the URL query parameters, and the
    *      parameter name is the field path in the request message. A repeated
    *      field can be represented as multiple query parameters under the same
    *      name.
-   *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
+   *  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
+   *  query parameter, all fields
    *     are passed via URL path and HTTP request body.
-   *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
+   *  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
+   *  request body, all
    *     fields are passed via URL path and URL query parameters.
    * ### Path template syntax
    *     Template = "/" Segments [ Verb ] ;
@@ -1896,7 +1904,8 @@
      *
      * <pre>
      * Selects a method to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1919,7 +1928,8 @@
      *
      * <pre>
      * Selects a method to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1942,7 +1952,8 @@
      *
      * <pre>
      * Selects a method to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1964,7 +1975,8 @@
      *
      * <pre>
      * Selects a method to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -1982,7 +1994,8 @@
      *
      * <pre>
      * Selects a method to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRuleOrBuilder.java
index 85b2a1e..31d5173 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/HttpRuleOrBuilder.java
@@ -28,7 +28,8 @@
    *
    * <pre>
    * Selects a method to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -41,7 +42,8 @@
    *
    * <pre>
    * Selects a method to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Logging.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Logging.java
index 6fa5599..26cf4b4 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Logging.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Logging.java
@@ -101,7 +101,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in the
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 3;</code>
@@ -114,7 +115,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in the
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 3;</code>
@@ -128,9 +130,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -143,9 +145,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -158,9 +160,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -174,9 +176,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -246,7 +248,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in the
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 3;</code>
@@ -270,7 +273,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in the
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 3;</code>
@@ -299,9 +303,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -316,9 +320,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -333,9 +337,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -351,9 +355,9 @@
      *
      * <pre>
      * Names of the logs to be sent to this destination. Each name must
-     * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-     * not a domain scoped name, it will be automatically prefixed with
-     * the service name followed by "/".
+     * be defined in the [Service.logs][google.api.Service.logs] section. If the
+     * log name is not a domain scoped name, it will be automatically prefixed
+     * with the service name followed by "/".
      * </pre>
      *
      * <code>repeated string logs = 1;</code>
@@ -761,7 +765,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in the
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 3;</code>
@@ -784,7 +789,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in the
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 3;</code>
@@ -807,7 +813,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in the
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 3;</code>
@@ -829,7 +836,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in the
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 3;</code>
@@ -847,7 +855,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in the
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 3;</code>
@@ -880,9 +889,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -897,9 +906,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -914,9 +923,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -932,9 +941,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -950,9 +959,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -975,9 +984,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -999,9 +1008,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -1020,9 +1029,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
@@ -1040,9 +1049,9 @@
        *
        * <pre>
        * Names of the logs to be sent to this destination. Each name must
-       * be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-       * not a domain scoped name, it will be automatically prefixed with
-       * the service name followed by "/".
+       * be defined in the [Service.logs][google.api.Service.logs] section. If the
+       * log name is not a domain scoped name, it will be automatically prefixed
+       * with the service name followed by "/".
        * </pre>
        *
        * <code>repeated string logs = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettings.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettings.java
index 5abe3a3..40b1242 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettings.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettings.java
@@ -1641,8 +1641,8 @@
    * google/longrunning/operations.proto.
    * Example of a YAML configuration::
    *  publishing:
-   *    method_behavior:
-   *      - selector: CreateAdDomain
+   *    method_settings:
+   *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
    *        long_running:
    *          initial_poll_delay:
    *            seconds: 60 # 1 minute
@@ -1670,8 +1670,8 @@
    * google/longrunning/operations.proto.
    * Example of a YAML configuration::
    *  publishing:
-   *    method_behavior:
-   *      - selector: CreateAdDomain
+   *    method_settings:
+   *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
    *        long_running:
    *          initial_poll_delay:
    *            seconds: 60 # 1 minute
@@ -1701,8 +1701,8 @@
    * google/longrunning/operations.proto.
    * Example of a YAML configuration::
    *  publishing:
-   *    method_behavior:
-   *      - selector: CreateAdDomain
+   *    method_settings:
+   *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
    *        long_running:
    *          initial_poll_delay:
    *            seconds: 60 # 1 minute
@@ -2214,8 +2214,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2242,8 +2242,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2276,8 +2276,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2312,8 +2312,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2346,8 +2346,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2385,8 +2385,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2418,8 +2418,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2446,8 +2446,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
@@ -2478,8 +2478,8 @@
      * google/longrunning/operations.proto.
      * Example of a YAML configuration::
      *  publishing:
-     *    method_behavior:
-     *      - selector: CreateAdDomain
+     *    method_settings:
+     *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
      *        long_running:
      *          initial_poll_delay:
      *            seconds: 60 # 1 minute
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java
index bd5c5ea..9bc4f14 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MethodSettingsOrBuilder.java
@@ -59,8 +59,8 @@
    * google/longrunning/operations.proto.
    * Example of a YAML configuration::
    *  publishing:
-   *    method_behavior:
-   *      - selector: CreateAdDomain
+   *    method_settings:
+   *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
    *        long_running:
    *          initial_poll_delay:
    *            seconds: 60 # 1 minute
@@ -85,8 +85,8 @@
    * google/longrunning/operations.proto.
    * Example of a YAML configuration::
    *  publishing:
-   *    method_behavior:
-   *      - selector: CreateAdDomain
+   *    method_settings:
+   *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
    *        long_running:
    *          initial_poll_delay:
    *            seconds: 60 # 1 minute
@@ -111,8 +111,8 @@
    * google/longrunning/operations.proto.
    * Example of a YAML configuration::
    *  publishing:
-   *    method_behavior:
-   *      - selector: CreateAdDomain
+   *    method_settings:
+   *      - selector: google.cloud.speech.v2.Speech.BatchRecognize
    *        long_running:
    *          initial_poll_delay:
    *            seconds: 60 # 1 minute
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Metric.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Metric.java
index 17651f7..95d806a 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Metric.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Metric.java
@@ -84,8 +84,9 @@
    *
    *
    * <pre>
-   * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-   * For example, `custom.googleapis.com/invoice/paid/amount`.
+   * An existing metric type, see
+   * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+   * `custom.googleapis.com/invoice/paid/amount`.
    * </pre>
    *
    * <code>string type = 3;</code>
@@ -108,8 +109,9 @@
    *
    *
    * <pre>
-   * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-   * For example, `custom.googleapis.com/invoice/paid/amount`.
+   * An existing metric type, see
+   * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+   * `custom.googleapis.com/invoice/paid/amount`.
    * </pre>
    *
    * <code>string type = 3;</code>
@@ -630,8 +632,9 @@
      *
      *
      * <pre>
-     * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-     * For example, `custom.googleapis.com/invoice/paid/amount`.
+     * An existing metric type, see
+     * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+     * `custom.googleapis.com/invoice/paid/amount`.
      * </pre>
      *
      * <code>string type = 3;</code>
@@ -653,8 +656,9 @@
      *
      *
      * <pre>
-     * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-     * For example, `custom.googleapis.com/invoice/paid/amount`.
+     * An existing metric type, see
+     * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+     * `custom.googleapis.com/invoice/paid/amount`.
      * </pre>
      *
      * <code>string type = 3;</code>
@@ -676,8 +680,9 @@
      *
      *
      * <pre>
-     * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-     * For example, `custom.googleapis.com/invoice/paid/amount`.
+     * An existing metric type, see
+     * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+     * `custom.googleapis.com/invoice/paid/amount`.
      * </pre>
      *
      * <code>string type = 3;</code>
@@ -698,8 +703,9 @@
      *
      *
      * <pre>
-     * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-     * For example, `custom.googleapis.com/invoice/paid/amount`.
+     * An existing metric type, see
+     * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+     * `custom.googleapis.com/invoice/paid/amount`.
      * </pre>
      *
      * <code>string type = 3;</code>
@@ -716,8 +722,9 @@
      *
      *
      * <pre>
-     * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-     * For example, `custom.googleapis.com/invoice/paid/amount`.
+     * An existing metric type, see
+     * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+     * `custom.googleapis.com/invoice/paid/amount`.
      * </pre>
      *
      * <code>string type = 3;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptor.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptor.java
index 1161062..f39ceed 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptor.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptor.java
@@ -522,13 +522,15 @@
      *
      *
      * <pre>
-     * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+     * Deprecated. Must use the
+     * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+     * instead.
      * </pre>
      *
      * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
      *
      * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is deprecated.
-     *     See google/api/metric.proto;l=83
+     *     See google/api/metric.proto;l=85
      * @return The enum numeric value on the wire for launchStage.
      */
     @java.lang.Deprecated
@@ -537,13 +539,15 @@
      *
      *
      * <pre>
-     * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+     * Deprecated. Must use the
+     * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+     * instead.
      * </pre>
      *
      * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
      *
      * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is deprecated.
-     *     See google/api/metric.proto;l=83
+     *     See google/api/metric.proto;l=85
      * @return The launchStage.
      */
     @java.lang.Deprecated
@@ -689,13 +693,15 @@
      *
      *
      * <pre>
-     * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+     * Deprecated. Must use the
+     * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+     * instead.
      * </pre>
      *
      * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
      *
      * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is deprecated.
-     *     See google/api/metric.proto;l=83
+     *     See google/api/metric.proto;l=85
      * @return The enum numeric value on the wire for launchStage.
      */
     @java.lang.Override
@@ -707,13 +713,15 @@
      *
      *
      * <pre>
-     * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+     * Deprecated. Must use the
+     * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+     * instead.
      * </pre>
      *
      * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
      *
      * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is deprecated.
-     *     See google/api/metric.proto;l=83
+     *     See google/api/metric.proto;l=85
      * @return The launchStage.
      */
     @java.lang.Override
@@ -1252,13 +1260,15 @@
        *
        *
        * <pre>
-       * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+       * Deprecated. Must use the
+       * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+       * instead.
        * </pre>
        *
        * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
        *
        * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is
-       *     deprecated. See google/api/metric.proto;l=83
+       *     deprecated. See google/api/metric.proto;l=85
        * @return The enum numeric value on the wire for launchStage.
        */
       @java.lang.Override
@@ -1270,13 +1280,15 @@
        *
        *
        * <pre>
-       * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+       * Deprecated. Must use the
+       * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+       * instead.
        * </pre>
        *
        * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
        *
        * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is
-       *     deprecated. See google/api/metric.proto;l=83
+       *     deprecated. See google/api/metric.proto;l=85
        * @param value The enum numeric value on the wire for launchStage to set.
        * @return This builder for chaining.
        */
@@ -1291,13 +1303,15 @@
        *
        *
        * <pre>
-       * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+       * Deprecated. Must use the
+       * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+       * instead.
        * </pre>
        *
        * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
        *
        * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is
-       *     deprecated. See google/api/metric.proto;l=83
+       *     deprecated. See google/api/metric.proto;l=85
        * @return The launchStage.
        */
       @java.lang.Override
@@ -1310,13 +1324,15 @@
        *
        *
        * <pre>
-       * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+       * Deprecated. Must use the
+       * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+       * instead.
        * </pre>
        *
        * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
        *
        * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is
-       *     deprecated. See google/api/metric.proto;l=83
+       *     deprecated. See google/api/metric.proto;l=85
        * @param value The launchStage to set.
        * @return This builder for chaining.
        */
@@ -1334,13 +1350,15 @@
        *
        *
        * <pre>
-       * Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+       * Deprecated. Must use the
+       * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+       * instead.
        * </pre>
        *
        * <code>.google.api.LaunchStage launch_stage = 1 [deprecated = true];</code>
        *
        * @deprecated google.api.MetricDescriptor.MetricDescriptorMetadata.launch_stage is
-       *     deprecated. See google/api/metric.proto;l=83
+       *     deprecated. See google/api/metric.proto;l=85
        * @return This builder for chaining.
        */
       @java.lang.Deprecated
@@ -2527,9 +2545,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -2545,9 +2564,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -2563,9 +2583,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -2582,9 +2603,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -5144,9 +5166,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5162,9 +5185,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5180,9 +5204,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5199,9 +5224,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5218,9 +5244,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5244,9 +5271,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5269,9 +5297,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5291,9 +5320,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
@@ -5312,9 +5342,10 @@
      * <pre>
      * Read-only. If present, then a [time
      * series][google.monitoring.v3.TimeSeries], which is identified partially by
-     * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-     * with this metric type can only be associated with one of the monitored
-     * resource types listed here.
+     * a metric type and a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+     * is associated with this metric type can only be associated with one of the
+     * monitored resource types listed here.
      * </pre>
      *
      * <code>repeated string monitored_resource_types = 13;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptorOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptorOrBuilder.java
index c2a244e..e50bfaa 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptorOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricDescriptorOrBuilder.java
@@ -526,9 +526,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -542,9 +543,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -558,9 +560,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
@@ -575,9 +578,10 @@
    * <pre>
    * Read-only. If present, then a [time
    * series][google.monitoring.v3.TimeSeries], which is identified partially by
-   * a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-   * with this metric type can only be associated with one of the monitored
-   * resource types listed here.
+   * a metric type and a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+   * is associated with this metric type can only be associated with one of the
+   * monitored resource types listed here.
    * </pre>
    *
    * <code>repeated string monitored_resource_types = 13;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricOrBuilder.java
index 74d4aa6..a5756a7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricOrBuilder.java
@@ -27,8 +27,9 @@
    *
    *
    * <pre>
-   * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-   * For example, `custom.googleapis.com/invoice/paid/amount`.
+   * An existing metric type, see
+   * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+   * `custom.googleapis.com/invoice/paid/amount`.
    * </pre>
    *
    * <code>string type = 3;</code>
@@ -40,8 +41,9 @@
    *
    *
    * <pre>
-   * An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-   * For example, `custom.googleapis.com/invoice/paid/amount`.
+   * An existing metric type, see
+   * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+   * `custom.googleapis.com/invoice/paid/amount`.
    * </pre>
    *
    * <code>string type = 3;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRule.java
index 5e616d4..1d858e3 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRule.java
@@ -85,7 +85,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -109,7 +110,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -641,7 +643,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -664,7 +667,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -687,7 +691,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -709,7 +714,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -727,7 +733,8 @@
      *
      * <pre>
      * Selects the methods to which this rule applies.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRuleOrBuilder.java
index 8f47345..4827435 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MetricRuleOrBuilder.java
@@ -28,7 +28,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -41,7 +42,8 @@
    *
    * <pre>
    * Selects the methods to which this rule applies.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResource.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResource.java
index affc3f4..7798d6f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResource.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResource.java
@@ -25,11 +25,13 @@
  * An object representing a resource that can be used for monitoring, logging,
  * billing, or other purposes. Examples include virtual machine instances,
  * databases, and storage devices such as disks. The `type` field identifies a
- * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
- * schema. Information in the `labels` field identifies the actual resource and
- * its attributes according to the schema. For example, a particular Compute
- * Engine VM instance could be represented by the following object, because the
- * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
+ * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object
+ * that describes the resource's schema. Information in the `labels` field
+ * identifies the actual resource and its attributes according to the schema.
+ * For example, a particular Compute Engine VM instance could be represented by
+ * the following object, because the
+ * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for
+ * `"gce_instance"` has labels
  * `"project_id"`, `"instance_id"` and `"zone"`:
  *     { "type": "gce_instance",
  *       "labels": { "project_id": "my-project",
@@ -98,10 +100,12 @@
    *
    * <pre>
    * Required. The monitored resource type. This field must match
-   * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-   * example, the type of a Compute Engine VM instance is `gce_instance`.
-   * Some descriptors include the service name in the type; for example,
-   * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+   * the `type` field of a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+   * object. For example, the type of a Compute Engine VM instance is
+   * `gce_instance`. Some descriptors include the service name in the type; for
+   * example, the type of a Datastream stream is
+   * `datastream.googleapis.com/Stream`.
    * </pre>
    *
    * <code>string type = 1;</code>
@@ -125,10 +129,12 @@
    *
    * <pre>
    * Required. The monitored resource type. This field must match
-   * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-   * example, the type of a Compute Engine VM instance is `gce_instance`.
-   * Some descriptors include the service name in the type; for example,
-   * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+   * the `type` field of a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+   * object. For example, the type of a Compute Engine VM instance is
+   * `gce_instance`. Some descriptors include the service name in the type; for
+   * example, the type of a Datastream stream is
+   * `datastream.googleapis.com/Stream`.
    * </pre>
    *
    * <code>string type = 1;</code>
@@ -439,11 +445,13 @@
    * An object representing a resource that can be used for monitoring, logging,
    * billing, or other purposes. Examples include virtual machine instances,
    * databases, and storage devices such as disks. The `type` field identifies a
-   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
-   * schema. Information in the `labels` field identifies the actual resource and
-   * its attributes according to the schema. For example, a particular Compute
-   * Engine VM instance could be represented by the following object, because the
-   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object
+   * that describes the resource's schema. Information in the `labels` field
+   * identifies the actual resource and its attributes according to the schema.
+   * For example, a particular Compute Engine VM instance could be represented by
+   * the following object, because the
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for
+   * `"gce_instance"` has labels
    * `"project_id"`, `"instance_id"` and `"zone"`:
    *     { "type": "gce_instance",
    *       "labels": { "project_id": "my-project",
@@ -670,10 +678,12 @@
      *
      * <pre>
      * Required. The monitored resource type. This field must match
-     * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-     * example, the type of a Compute Engine VM instance is `gce_instance`.
-     * Some descriptors include the service name in the type; for example,
-     * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+     * the `type` field of a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+     * object. For example, the type of a Compute Engine VM instance is
+     * `gce_instance`. Some descriptors include the service name in the type; for
+     * example, the type of a Datastream stream is
+     * `datastream.googleapis.com/Stream`.
      * </pre>
      *
      * <code>string type = 1;</code>
@@ -696,10 +706,12 @@
      *
      * <pre>
      * Required. The monitored resource type. This field must match
-     * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-     * example, the type of a Compute Engine VM instance is `gce_instance`.
-     * Some descriptors include the service name in the type; for example,
-     * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+     * the `type` field of a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+     * object. For example, the type of a Compute Engine VM instance is
+     * `gce_instance`. Some descriptors include the service name in the type; for
+     * example, the type of a Datastream stream is
+     * `datastream.googleapis.com/Stream`.
      * </pre>
      *
      * <code>string type = 1;</code>
@@ -722,10 +734,12 @@
      *
      * <pre>
      * Required. The monitored resource type. This field must match
-     * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-     * example, the type of a Compute Engine VM instance is `gce_instance`.
-     * Some descriptors include the service name in the type; for example,
-     * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+     * the `type` field of a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+     * object. For example, the type of a Compute Engine VM instance is
+     * `gce_instance`. Some descriptors include the service name in the type; for
+     * example, the type of a Datastream stream is
+     * `datastream.googleapis.com/Stream`.
      * </pre>
      *
      * <code>string type = 1;</code>
@@ -747,10 +761,12 @@
      *
      * <pre>
      * Required. The monitored resource type. This field must match
-     * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-     * example, the type of a Compute Engine VM instance is `gce_instance`.
-     * Some descriptors include the service name in the type; for example,
-     * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+     * the `type` field of a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+     * object. For example, the type of a Compute Engine VM instance is
+     * `gce_instance`. Some descriptors include the service name in the type; for
+     * example, the type of a Datastream stream is
+     * `datastream.googleapis.com/Stream`.
      * </pre>
      *
      * <code>string type = 1;</code>
@@ -768,10 +784,12 @@
      *
      * <pre>
      * Required. The monitored resource type. This field must match
-     * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-     * example, the type of a Compute Engine VM instance is `gce_instance`.
-     * Some descriptors include the service name in the type; for example,
-     * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+     * the `type` field of a
+     * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+     * object. For example, the type of a Compute Engine VM instance is
+     * `gce_instance`. Some descriptors include the service name in the type; for
+     * example, the type of a Datastream stream is
+     * `datastream.googleapis.com/Stream`.
      * </pre>
      *
      * <code>string type = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceDescriptor.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceDescriptor.java
index df72f28..3bb01b3 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceDescriptor.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceDescriptor.java
@@ -22,9 +22,10 @@
  *
  *
  * <pre>
- * An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
- * type name and a set of labels.  For example, the monitored resource
- * descriptor for Google Compute Engine VM instances has a type of
+ * An object that describes the schema of a
+ * [MonitoredResource][google.api.MonitoredResource] object using a type name
+ * and a set of labels.  For example, the monitored resource descriptor for
+ * Google Compute Engine VM instances has a type of
  * `"gce_instance"` and specifies the use of the labels `"instance_id"` and
  * `"zone"` to identify particular VM instances.
  * Different APIs can support different monitored resource types. APIs generally
@@ -636,9 +637,10 @@
    *
    *
    * <pre>
-   * An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
-   * type name and a set of labels.  For example, the monitored resource
-   * descriptor for Google Compute Engine VM instances has a type of
+   * An object that describes the schema of a
+   * [MonitoredResource][google.api.MonitoredResource] object using a type name
+   * and a set of labels.  For example, the monitored resource descriptor for
+   * Google Compute Engine VM instances has a type of
    * `"gce_instance"` and specifies the use of the labels `"instance_id"` and
    * `"zone"` to identify particular VM instances.
    * Different APIs can support different monitored resource types. APIs generally
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceMetadata.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceMetadata.java
index c30f8e7..a32f626 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceMetadata.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceMetadata.java
@@ -22,12 +22,12 @@
  *
  *
  * <pre>
- * Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource] object.
- * [MonitoredResource][google.api.MonitoredResource] objects contain the minimum set of information to
- * uniquely identify a monitored resource instance. There is some other useful
- * auxiliary metadata. Monitoring and Logging use an ingestion
- * pipeline to extract metadata for cloud resources of all types, and store
- * the metadata in this message.
+ * Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource]
+ * object. [MonitoredResource][google.api.MonitoredResource] objects contain the
+ * minimum set of information to uniquely identify a monitored resource
+ * instance. There is some other useful auxiliary metadata. Monitoring and
+ * Logging use an ingestion pipeline to extract metadata for cloud resources of
+ * all types, and store the metadata in this message.
  * </pre>
  *
  * Protobuf type {@code google.api.MonitoredResourceMetadata}
@@ -437,12 +437,12 @@
    *
    *
    * <pre>
-   * Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource] object.
-   * [MonitoredResource][google.api.MonitoredResource] objects contain the minimum set of information to
-   * uniquely identify a monitored resource instance. There is some other useful
-   * auxiliary metadata. Monitoring and Logging use an ingestion
-   * pipeline to extract metadata for cloud resources of all types, and store
-   * the metadata in this message.
+   * Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource]
+   * object. [MonitoredResource][google.api.MonitoredResource] objects contain the
+   * minimum set of information to uniquely identify a monitored resource
+   * instance. There is some other useful auxiliary metadata. Monitoring and
+   * Logging use an ingestion pipeline to extract metadata for cloud resources of
+   * all types, and store the metadata in this message.
    * </pre>
    *
    * Protobuf type {@code google.api.MonitoredResourceMetadata}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceOrBuilder.java
index e2ef700..1a2e1a7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/MonitoredResourceOrBuilder.java
@@ -28,10 +28,12 @@
    *
    * <pre>
    * Required. The monitored resource type. This field must match
-   * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-   * example, the type of a Compute Engine VM instance is `gce_instance`.
-   * Some descriptors include the service name in the type; for example,
-   * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+   * the `type` field of a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+   * object. For example, the type of a Compute Engine VM instance is
+   * `gce_instance`. Some descriptors include the service name in the type; for
+   * example, the type of a Datastream stream is
+   * `datastream.googleapis.com/Stream`.
    * </pre>
    *
    * <code>string type = 1;</code>
@@ -44,10 +46,12 @@
    *
    * <pre>
    * Required. The monitored resource type. This field must match
-   * the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-   * example, the type of a Compute Engine VM instance is `gce_instance`.
-   * Some descriptors include the service name in the type; for example,
-   * the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+   * the `type` field of a
+   * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+   * object. For example, the type of a Compute Engine VM instance is
+   * `gce_instance`. Some descriptors include the service name in the type; for
+   * example, the type of a Datastream stream is
+   * `datastream.googleapis.com/Stream`.
    * </pre>
    *
    * <code>string type = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Monitoring.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Monitoring.java
index 4d1b9f9..6f7d6a5 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Monitoring.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Monitoring.java
@@ -124,7 +124,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -137,7 +138,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -151,7 +153,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -164,7 +167,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -177,7 +181,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -191,7 +196,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -261,7 +267,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -285,7 +292,8 @@
      *
      * <pre>
      * The monitored resource type. The type must be defined in
-     * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+     * [Service.monitored_resources][google.api.Service.monitored_resources]
+     * section.
      * </pre>
      *
      * <code>string monitored_resource = 1;</code>
@@ -314,7 +322,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -329,7 +338,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -344,7 +354,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -360,7 +371,8 @@
      *
      * <pre>
      * Types of the metrics to report to this monitoring destination.
-     * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+     * Each type must be defined in
+     * [Service.metrics][google.api.Service.metrics] section.
      * </pre>
      *
      * <code>repeated string metrics = 2;</code>
@@ -770,7 +782,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -793,7 +806,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -816,7 +830,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -838,7 +853,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -856,7 +872,8 @@
        *
        * <pre>
        * The monitored resource type. The type must be defined in
-       * [Service.monitored_resources][google.api.Service.monitored_resources] section.
+       * [Service.monitored_resources][google.api.Service.monitored_resources]
+       * section.
        * </pre>
        *
        * <code>string monitored_resource = 1;</code>
@@ -889,7 +906,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -904,7 +922,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -919,7 +938,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -935,7 +955,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -951,7 +972,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -974,7 +996,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -996,7 +1019,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -1015,7 +1039,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
@@ -1033,7 +1058,8 @@
        *
        * <pre>
        * Types of the metrics to report to this monitoring destination.
-       * Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+       * Each type must be defined in
+       * [Service.metrics][google.api.Service.metrics] section.
        * </pre>
        *
        * <code>repeated string metrics = 2;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Publishing.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Publishing.java
index f2fa37b..7998891 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Publishing.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Publishing.java
@@ -49,6 +49,7 @@
     docTagPrefix_ = "";
     organization_ = 0;
     librarySettings_ = java.util.Collections.emptyList();
+    protoReferenceDocumentationUri_ = "";
   }
 
   @java.lang.Override
@@ -598,6 +599,59 @@
     return librarySettings_.get(index);
   }
 
+  public static final int PROTO_REFERENCE_DOCUMENTATION_URI_FIELD_NUMBER = 110;
+
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object protoReferenceDocumentationUri_ = "";
+  /**
+   *
+   *
+   * <pre>
+   * Optional link to proto reference documentation.  Example:
+   * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+   * </pre>
+   *
+   * <code>string proto_reference_documentation_uri = 110;</code>
+   *
+   * @return The protoReferenceDocumentationUri.
+   */
+  @java.lang.Override
+  public java.lang.String getProtoReferenceDocumentationUri() {
+    java.lang.Object ref = protoReferenceDocumentationUri_;
+    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();
+      protoReferenceDocumentationUri_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Optional link to proto reference documentation.  Example:
+   * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+   * </pre>
+   *
+   * <code>string proto_reference_documentation_uri = 110;</code>
+   *
+   * @return The bytes for protoReferenceDocumentationUri.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getProtoReferenceDocumentationUriBytes() {
+    java.lang.Object ref = protoReferenceDocumentationUri_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      protoReferenceDocumentationUri_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
   private byte memoizedIsInitialized = -1;
 
   @java.lang.Override
@@ -642,6 +696,10 @@
     for (int i = 0; i < librarySettings_.size(); i++) {
       output.writeMessage(109, librarySettings_.get(i));
     }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(protoReferenceDocumentationUri_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(
+          output, 110, protoReferenceDocumentationUri_);
+    }
     getUnknownFields().writeTo(output);
   }
 
@@ -686,6 +744,11 @@
       size +=
           com.google.protobuf.CodedOutputStream.computeMessageSize(109, librarySettings_.get(i));
     }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(protoReferenceDocumentationUri_)) {
+      size +=
+          com.google.protobuf.GeneratedMessageV3.computeStringSize(
+              110, protoReferenceDocumentationUri_);
+    }
     size += getUnknownFields().getSerializedSize();
     memoizedSize = size;
     return size;
@@ -710,6 +773,8 @@
     if (!getDocTagPrefix().equals(other.getDocTagPrefix())) return false;
     if (organization_ != other.organization_) return false;
     if (!getLibrarySettingsList().equals(other.getLibrarySettingsList())) return false;
+    if (!getProtoReferenceDocumentationUri().equals(other.getProtoReferenceDocumentationUri()))
+      return false;
     if (!getUnknownFields().equals(other.getUnknownFields())) return false;
     return true;
   }
@@ -745,6 +810,8 @@
       hash = (37 * hash) + LIBRARY_SETTINGS_FIELD_NUMBER;
       hash = (53 * hash) + getLibrarySettingsList().hashCode();
     }
+    hash = (37 * hash) + PROTO_REFERENCE_DOCUMENTATION_URI_FIELD_NUMBER;
+    hash = (53 * hash) + getProtoReferenceDocumentationUri().hashCode();
     hash = (29 * hash) + getUnknownFields().hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -904,6 +971,7 @@
         librarySettingsBuilder_.clear();
       }
       bitField0_ = (bitField0_ & ~0x00000100);
+      protoReferenceDocumentationUri_ = "";
       return this;
     }
 
@@ -983,6 +1051,9 @@
       if (((from_bitField0_ & 0x00000080) != 0)) {
         result.organization_ = organization_;
       }
+      if (((from_bitField0_ & 0x00000200) != 0)) {
+        result.protoReferenceDocumentationUri_ = protoReferenceDocumentationUri_;
+      }
     }
 
     @java.lang.Override
@@ -1122,6 +1193,11 @@
           }
         }
       }
+      if (!other.getProtoReferenceDocumentationUri().isEmpty()) {
+        protoReferenceDocumentationUri_ = other.protoReferenceDocumentationUri_;
+        bitField0_ |= 0x00000200;
+        onChanged();
+      }
       this.mergeUnknownFields(other.getUnknownFields());
       onChanged();
       return this;
@@ -1216,6 +1292,12 @@
                 }
                 break;
               } // case 874
+            case 882:
+              {
+                protoReferenceDocumentationUri_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000200;
+                break;
+              } // case 882
             default:
               {
                 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
@@ -2816,6 +2898,117 @@
       return librarySettingsBuilder_;
     }
 
+    private java.lang.Object protoReferenceDocumentationUri_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Optional link to proto reference documentation.  Example:
+     * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+     * </pre>
+     *
+     * <code>string proto_reference_documentation_uri = 110;</code>
+     *
+     * @return The protoReferenceDocumentationUri.
+     */
+    public java.lang.String getProtoReferenceDocumentationUri() {
+      java.lang.Object ref = protoReferenceDocumentationUri_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        protoReferenceDocumentationUri_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional link to proto reference documentation.  Example:
+     * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+     * </pre>
+     *
+     * <code>string proto_reference_documentation_uri = 110;</code>
+     *
+     * @return The bytes for protoReferenceDocumentationUri.
+     */
+    public com.google.protobuf.ByteString getProtoReferenceDocumentationUriBytes() {
+      java.lang.Object ref = protoReferenceDocumentationUri_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        protoReferenceDocumentationUri_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional link to proto reference documentation.  Example:
+     * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+     * </pre>
+     *
+     * <code>string proto_reference_documentation_uri = 110;</code>
+     *
+     * @param value The protoReferenceDocumentationUri to set.
+     * @return This builder for chaining.
+     */
+    public Builder setProtoReferenceDocumentationUri(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      protoReferenceDocumentationUri_ = value;
+      bitField0_ |= 0x00000200;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional link to proto reference documentation.  Example:
+     * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+     * </pre>
+     *
+     * <code>string proto_reference_documentation_uri = 110;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearProtoReferenceDocumentationUri() {
+      protoReferenceDocumentationUri_ = getDefaultInstance().getProtoReferenceDocumentationUri();
+      bitField0_ = (bitField0_ & ~0x00000200);
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Optional link to proto reference documentation.  Example:
+     * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+     * </pre>
+     *
+     * <code>string proto_reference_documentation_uri = 110;</code>
+     *
+     * @param value The bytes for protoReferenceDocumentationUri to set.
+     * @return This builder for chaining.
+     */
+    public Builder setProtoReferenceDocumentationUriBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+      protoReferenceDocumentationUri_ = value;
+      bitField0_ |= 0x00000200;
+      onChanged();
+      return this;
+    }
+
     @java.lang.Override
     public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
       return super.setUnknownFields(unknownFields);
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PublishingOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PublishingOrBuilder.java
index b6eee07..1021409 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PublishingOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/PublishingOrBuilder.java
@@ -355,4 +355,31 @@
    * <code>repeated .google.api.ClientLibrarySettings library_settings = 109;</code>
    */
   com.google.api.ClientLibrarySettingsOrBuilder getLibrarySettingsOrBuilder(int index);
+
+  /**
+   *
+   *
+   * <pre>
+   * Optional link to proto reference documentation.  Example:
+   * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+   * </pre>
+   *
+   * <code>string proto_reference_documentation_uri = 110;</code>
+   *
+   * @return The protoReferenceDocumentationUri.
+   */
+  java.lang.String getProtoReferenceDocumentationUri();
+  /**
+   *
+   *
+   * <pre>
+   * Optional link to proto reference documentation.  Example:
+   * https://cloud.google.com/pubsub/lite/docs/reference/rpc
+   * </pre>
+   *
+   * <code>string proto_reference_documentation_uri = 110;</code>
+   *
+   * @return The bytes for protoReferenceDocumentationUri.
+   */
+  com.google.protobuf.ByteString getProtoReferenceDocumentationUriBytes();
 }
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java
index b643533..fac5457 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/Service.java
@@ -329,10 +329,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -346,10 +346,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -363,10 +363,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -380,10 +380,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -397,10 +397,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -1211,7 +1211,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -1225,7 +1226,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -1240,7 +1242,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -1254,7 +1257,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -1268,7 +1272,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -3472,10 +3477,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3492,10 +3497,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3512,10 +3517,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3532,10 +3537,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3558,10 +3563,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3581,10 +3586,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3607,10 +3612,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3633,10 +3638,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3656,10 +3661,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3679,10 +3684,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3702,10 +3707,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3725,10 +3730,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3748,10 +3753,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3764,10 +3769,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3784,10 +3789,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3804,10 +3809,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3820,10 +3825,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -3836,10 +3841,10 @@
      *
      * <pre>
      * A list of API interfaces exported by this service. Only the `name` field
-     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-     * author, as the remaining fields will be derived from the IDL during the
-     * normalization process. It is an error to specify an API interface here
-     * which cannot be resolved against the associated IDL files.
+     * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+     * the configuration author, as the remaining fields will be derived from the
+     * IDL during the normalization process. It is an error to specify an API
+     * interface here which cannot be resolved against the associated IDL files.
      * </pre>
      *
      * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -7243,7 +7248,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7260,7 +7266,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7277,7 +7284,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7294,7 +7302,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7318,7 +7327,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7339,7 +7349,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7362,7 +7373,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7386,7 +7398,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7407,7 +7420,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7428,7 +7442,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7449,7 +7464,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7469,7 +7485,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7489,7 +7506,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7503,7 +7521,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7521,7 +7540,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7539,7 +7559,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7553,7 +7574,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -7568,7 +7590,8 @@
      *
      * <pre>
      * Defines the monitored resources used by this service. This is required
-     * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+     * by the [Service.monitoring][google.api.Service.monitoring] and
+     * [Service.logging][google.api.Service.logging] configurations.
      * </pre>
      *
      * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java
index ee3a9ca..4bf479b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/ServiceOrBuilder.java
@@ -142,10 +142,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -156,10 +156,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -170,10 +170,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -184,10 +184,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -198,10 +198,10 @@
    *
    * <pre>
    * A list of API interfaces exported by this service. Only the `name` field
-   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-   * author, as the remaining fields will be derived from the IDL during the
-   * normalization process. It is an error to specify an API interface here
-   * which cannot be resolved against the associated IDL files.
+   * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+   * the configuration author, as the remaining fields will be derived from the
+   * IDL during the normalization process. It is an error to specify an API
+   * interface here which cannot be resolved against the associated IDL files.
    * </pre>
    *
    * <code>repeated .google.protobuf.Api apis = 3;</code>
@@ -813,7 +813,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -824,7 +825,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -835,7 +837,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -846,7 +849,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
@@ -858,7 +862,8 @@
    *
    * <pre>
    * Defines the monitored resources used by this service. This is required
-   * by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+   * by the [Service.monitoring][google.api.Service.monitoring] and
+   * [Service.logging][google.api.Service.logging] configurations.
    * </pre>
    *
    * <code>repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRule.java
index dc2b8cb..ffdca92 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRule.java
@@ -79,7 +79,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -104,7 +105,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -631,7 +633,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -655,7 +658,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -679,7 +683,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -702,7 +707,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -721,7 +727,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRuleOrBuilder.java
index cfdbef7..da5cd58 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/SystemParameterRuleOrBuilder.java
@@ -29,7 +29,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -43,7 +44,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java
index ffd9c31..8cd6f28 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRule.java
@@ -91,7 +91,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -116,7 +117,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -578,7 +580,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -602,7 +605,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -626,7 +630,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -649,7 +654,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
@@ -668,7 +674,8 @@
      * <pre>
      * Selects the methods to which this rule applies. Use '*' to indicate all
      * methods in all APIs.
-     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+     * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+     * details.
      * </pre>
      *
      * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java
index f3c9487..c283341 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/api/UsageRuleOrBuilder.java
@@ -29,7 +29,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
@@ -43,7 +44,8 @@
    * <pre>
    * Selects the methods to which this rule applies. Use '*' to indicate all
    * methods in all APIs.
-   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+   * Refer to [selector][google.api.DocumentationRule.selector] for syntax
+   * details.
    * </pre>
    *
    * <code>string selector = 1;</code>
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/longrunning/OperationsProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/longrunning/OperationsProto.java
index 010227c..781db90 100644
--- a/java-common-protos/proto-google-common-protos/src/main/java/com/google/longrunning/OperationsProto.java
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/longrunning/OperationsProto.java
@@ -132,11 +132,11 @@
           + "ongrunning.Operation\"\000\032\035\312A\032longrunning.g"
           + "oogleapis.com:Z\n\016operation_info\022\036.google"
           + ".protobuf.MethodOptions\030\231\010 \001(\0132!.google."
-          + "longrunning.OperationInfoB\227\001\n\026com.google"
-          + ".longrunningB\017OperationsProtoP\001Z=google."
-          + "golang.org/genproto/googleapis/longrunni"
-          + "ng;longrunning\370\001\001\252\002\022Google.LongRunning\312\002"
-          + "\022Google\\LongRunningb\006proto3"
+          + "longrunning.OperationInfoB\235\001\n\026com.google"
+          + ".longrunningB\017OperationsProtoP\001ZCcloud.g"
+          + "oogle.com/go/longrunning/autogen/longrun"
+          + "ningpb;longrunningpb\370\001\001\252\002\022Google.LongRun"
+          + "ning\312\002\022Google\\LongRunningb\006proto3"
     };
     descriptor =
         com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContext.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContext.java
new file mode 100644
index 0000000..c1ad778
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContext.java
@@ -0,0 +1,1417 @@
+/*
+ * Copyright 2020 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.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/rpc/context/audit_context.proto
+
+package com.google.rpc.context;
+
+/**
+ *
+ *
+ * <pre>
+ * `AuditContext` provides information that is needed for audit logging.
+ * </pre>
+ *
+ * Protobuf type {@code google.rpc.context.AuditContext}
+ */
+public final class AuditContext extends com.google.protobuf.GeneratedMessageV3
+    implements
+    // @@protoc_insertion_point(message_implements:google.rpc.context.AuditContext)
+    AuditContextOrBuilder {
+  private static final long serialVersionUID = 0L;
+  // Use AuditContext.newBuilder() to construct.
+  private AuditContext(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+
+  private AuditContext() {
+    auditLog_ = com.google.protobuf.ByteString.EMPTY;
+    targetResource_ = "";
+  }
+
+  @java.lang.Override
+  @SuppressWarnings({"unused"})
+  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+    return new AuditContext();
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+    return this.unknownFields;
+  }
+
+  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+    return com.google.rpc.context.AuditContextProto
+        .internal_static_google_rpc_context_AuditContext_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.google.rpc.context.AuditContextProto
+        .internal_static_google_rpc_context_AuditContext_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.google.rpc.context.AuditContext.class,
+            com.google.rpc.context.AuditContext.Builder.class);
+  }
+
+  public static final int AUDIT_LOG_FIELD_NUMBER = 1;
+  private com.google.protobuf.ByteString auditLog_ = com.google.protobuf.ByteString.EMPTY;
+  /**
+   *
+   *
+   * <pre>
+   * Serialized audit log.
+   * </pre>
+   *
+   * <code>bytes audit_log = 1;</code>
+   *
+   * @return The auditLog.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getAuditLog() {
+    return auditLog_;
+  }
+
+  public static final int SCRUBBED_REQUEST_FIELD_NUMBER = 2;
+  private com.google.protobuf.Struct scrubbedRequest_;
+  /**
+   *
+   *
+   * <pre>
+   * An API request message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+   *
+   * @return Whether the scrubbedRequest field is set.
+   */
+  @java.lang.Override
+  public boolean hasScrubbedRequest() {
+    return scrubbedRequest_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * An API request message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+   *
+   * @return The scrubbedRequest.
+   */
+  @java.lang.Override
+  public com.google.protobuf.Struct getScrubbedRequest() {
+    return scrubbedRequest_ == null
+        ? com.google.protobuf.Struct.getDefaultInstance()
+        : scrubbedRequest_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * An API request message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+   */
+  @java.lang.Override
+  public com.google.protobuf.StructOrBuilder getScrubbedRequestOrBuilder() {
+    return scrubbedRequest_ == null
+        ? com.google.protobuf.Struct.getDefaultInstance()
+        : scrubbedRequest_;
+  }
+
+  public static final int SCRUBBED_RESPONSE_FIELD_NUMBER = 3;
+  private com.google.protobuf.Struct scrubbedResponse_;
+  /**
+   *
+   *
+   * <pre>
+   * An API response message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+   *
+   * @return Whether the scrubbedResponse field is set.
+   */
+  @java.lang.Override
+  public boolean hasScrubbedResponse() {
+    return scrubbedResponse_ != null;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * An API response message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+   *
+   * @return The scrubbedResponse.
+   */
+  @java.lang.Override
+  public com.google.protobuf.Struct getScrubbedResponse() {
+    return scrubbedResponse_ == null
+        ? com.google.protobuf.Struct.getDefaultInstance()
+        : scrubbedResponse_;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * An API response message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+   */
+  @java.lang.Override
+  public com.google.protobuf.StructOrBuilder getScrubbedResponseOrBuilder() {
+    return scrubbedResponse_ == null
+        ? com.google.protobuf.Struct.getDefaultInstance()
+        : scrubbedResponse_;
+  }
+
+  public static final int SCRUBBED_RESPONSE_ITEM_COUNT_FIELD_NUMBER = 4;
+  private int scrubbedResponseItemCount_ = 0;
+  /**
+   *
+   *
+   * <pre>
+   * Number of scrubbed response items.
+   * </pre>
+   *
+   * <code>int32 scrubbed_response_item_count = 4;</code>
+   *
+   * @return The scrubbedResponseItemCount.
+   */
+  @java.lang.Override
+  public int getScrubbedResponseItemCount() {
+    return scrubbedResponseItemCount_;
+  }
+
+  public static final int TARGET_RESOURCE_FIELD_NUMBER = 5;
+
+  @SuppressWarnings("serial")
+  private volatile java.lang.Object targetResource_ = "";
+  /**
+   *
+   *
+   * <pre>
+   * Audit resource name which is scrubbed.
+   * </pre>
+   *
+   * <code>string target_resource = 5;</code>
+   *
+   * @return The targetResource.
+   */
+  @java.lang.Override
+  public java.lang.String getTargetResource() {
+    java.lang.Object ref = targetResource_;
+    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();
+      targetResource_ = s;
+      return s;
+    }
+  }
+  /**
+   *
+   *
+   * <pre>
+   * Audit resource name which is scrubbed.
+   * </pre>
+   *
+   * <code>string target_resource = 5;</code>
+   *
+   * @return The bytes for targetResource.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString getTargetResourceBytes() {
+    java.lang.Object ref = targetResource_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b =
+          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+      targetResource_ = 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 (!auditLog_.isEmpty()) {
+      output.writeBytes(1, auditLog_);
+    }
+    if (scrubbedRequest_ != null) {
+      output.writeMessage(2, getScrubbedRequest());
+    }
+    if (scrubbedResponse_ != null) {
+      output.writeMessage(3, getScrubbedResponse());
+    }
+    if (scrubbedResponseItemCount_ != 0) {
+      output.writeInt32(4, scrubbedResponseItemCount_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetResource_)) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 5, targetResource_);
+    }
+    getUnknownFields().writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!auditLog_.isEmpty()) {
+      size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, auditLog_);
+    }
+    if (scrubbedRequest_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getScrubbedRequest());
+    }
+    if (scrubbedResponse_ != null) {
+      size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getScrubbedResponse());
+    }
+    if (scrubbedResponseItemCount_ != 0) {
+      size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, scrubbedResponseItemCount_);
+    }
+    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetResource_)) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, targetResource_);
+    }
+    size += getUnknownFields().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.rpc.context.AuditContext)) {
+      return super.equals(obj);
+    }
+    com.google.rpc.context.AuditContext other = (com.google.rpc.context.AuditContext) obj;
+
+    if (!getAuditLog().equals(other.getAuditLog())) return false;
+    if (hasScrubbedRequest() != other.hasScrubbedRequest()) return false;
+    if (hasScrubbedRequest()) {
+      if (!getScrubbedRequest().equals(other.getScrubbedRequest())) return false;
+    }
+    if (hasScrubbedResponse() != other.hasScrubbedResponse()) return false;
+    if (hasScrubbedResponse()) {
+      if (!getScrubbedResponse().equals(other.getScrubbedResponse())) return false;
+    }
+    if (getScrubbedResponseItemCount() != other.getScrubbedResponseItemCount()) return false;
+    if (!getTargetResource().equals(other.getTargetResource())) return false;
+    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+    return true;
+  }
+
+  @java.lang.Override
+  public int hashCode() {
+    if (memoizedHashCode != 0) {
+      return memoizedHashCode;
+    }
+    int hash = 41;
+    hash = (19 * hash) + getDescriptor().hashCode();
+    hash = (37 * hash) + AUDIT_LOG_FIELD_NUMBER;
+    hash = (53 * hash) + getAuditLog().hashCode();
+    if (hasScrubbedRequest()) {
+      hash = (37 * hash) + SCRUBBED_REQUEST_FIELD_NUMBER;
+      hash = (53 * hash) + getScrubbedRequest().hashCode();
+    }
+    if (hasScrubbedResponse()) {
+      hash = (37 * hash) + SCRUBBED_RESPONSE_FIELD_NUMBER;
+      hash = (53 * hash) + getScrubbedResponse().hashCode();
+    }
+    hash = (37 * hash) + SCRUBBED_RESPONSE_ITEM_COUNT_FIELD_NUMBER;
+    hash = (53 * hash) + getScrubbedResponseItemCount();
+    hash = (37 * hash) + TARGET_RESOURCE_FIELD_NUMBER;
+    hash = (53 * hash) + getTargetResource().hashCode();
+    hash = (29 * hash) + getUnknownFields().hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.google.rpc.context.AuditContext parseFrom(java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.rpc.context.AuditContext parseFrom(
+      java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.rpc.context.AuditContext parseFrom(com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.rpc.context.AuditContext 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.rpc.context.AuditContext parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+
+  public static com.google.rpc.context.AuditContext parseFrom(
+      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+
+  public static com.google.rpc.context.AuditContext parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.rpc.context.AuditContext 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.rpc.context.AuditContext parseDelimitedFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+  }
+
+  public static com.google.rpc.context.AuditContext 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.rpc.context.AuditContext parseFrom(
+      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+  }
+
+  public static com.google.rpc.context.AuditContext 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.rpc.context.AuditContext 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;
+  }
+  /**
+   *
+   *
+   * <pre>
+   * `AuditContext` provides information that is needed for audit logging.
+   * </pre>
+   *
+   * Protobuf type {@code google.rpc.context.AuditContext}
+   */
+  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
+      implements
+      // @@protoc_insertion_point(builder_implements:google.rpc.context.AuditContext)
+      com.google.rpc.context.AuditContextOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+      return com.google.rpc.context.AuditContextProto
+          .internal_static_google_rpc_context_AuditContext_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.google.rpc.context.AuditContextProto
+          .internal_static_google_rpc_context_AuditContext_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.google.rpc.context.AuditContext.class,
+              com.google.rpc.context.AuditContext.Builder.class);
+    }
+
+    // Construct using com.google.rpc.context.AuditContext.newBuilder()
+    private Builder() {}
+
+    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      super(parent);
+    }
+
+    @java.lang.Override
+    public Builder clear() {
+      super.clear();
+      bitField0_ = 0;
+      auditLog_ = com.google.protobuf.ByteString.EMPTY;
+      scrubbedRequest_ = null;
+      if (scrubbedRequestBuilder_ != null) {
+        scrubbedRequestBuilder_.dispose();
+        scrubbedRequestBuilder_ = null;
+      }
+      scrubbedResponse_ = null;
+      if (scrubbedResponseBuilder_ != null) {
+        scrubbedResponseBuilder_.dispose();
+        scrubbedResponseBuilder_ = null;
+      }
+      scrubbedResponseItemCount_ = 0;
+      targetResource_ = "";
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+      return com.google.rpc.context.AuditContextProto
+          .internal_static_google_rpc_context_AuditContext_descriptor;
+    }
+
+    @java.lang.Override
+    public com.google.rpc.context.AuditContext getDefaultInstanceForType() {
+      return com.google.rpc.context.AuditContext.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.google.rpc.context.AuditContext build() {
+      com.google.rpc.context.AuditContext result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.google.rpc.context.AuditContext buildPartial() {
+      com.google.rpc.context.AuditContext result = new com.google.rpc.context.AuditContext(this);
+      if (bitField0_ != 0) {
+        buildPartial0(result);
+      }
+      onBuilt();
+      return result;
+    }
+
+    private void buildPartial0(com.google.rpc.context.AuditContext result) {
+      int from_bitField0_ = bitField0_;
+      if (((from_bitField0_ & 0x00000001) != 0)) {
+        result.auditLog_ = auditLog_;
+      }
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        result.scrubbedRequest_ =
+            scrubbedRequestBuilder_ == null ? scrubbedRequest_ : scrubbedRequestBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000004) != 0)) {
+        result.scrubbedResponse_ =
+            scrubbedResponseBuilder_ == null ? scrubbedResponse_ : scrubbedResponseBuilder_.build();
+      }
+      if (((from_bitField0_ & 0x00000008) != 0)) {
+        result.scrubbedResponseItemCount_ = scrubbedResponseItemCount_;
+      }
+      if (((from_bitField0_ & 0x00000010) != 0)) {
+        result.targetResource_ = targetResource_;
+      }
+    }
+
+    @java.lang.Override
+    public Builder clone() {
+      return super.clone();
+    }
+
+    @java.lang.Override
+    public Builder setField(
+        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+      return super.setField(field, value);
+    }
+
+    @java.lang.Override
+    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+      return super.clearField(field);
+    }
+
+    @java.lang.Override
+    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+      return super.clearOneof(oneof);
+    }
+
+    @java.lang.Override
+    public Builder setRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
+      return super.setRepeatedField(field, index, value);
+    }
+
+    @java.lang.Override
+    public Builder addRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+      return super.addRepeatedField(field, value);
+    }
+
+    @java.lang.Override
+    public Builder mergeFrom(com.google.protobuf.Message other) {
+      if (other instanceof com.google.rpc.context.AuditContext) {
+        return mergeFrom((com.google.rpc.context.AuditContext) other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.google.rpc.context.AuditContext other) {
+      if (other == com.google.rpc.context.AuditContext.getDefaultInstance()) return this;
+      if (other.getAuditLog() != com.google.protobuf.ByteString.EMPTY) {
+        setAuditLog(other.getAuditLog());
+      }
+      if (other.hasScrubbedRequest()) {
+        mergeScrubbedRequest(other.getScrubbedRequest());
+      }
+      if (other.hasScrubbedResponse()) {
+        mergeScrubbedResponse(other.getScrubbedResponse());
+      }
+      if (other.getScrubbedResponseItemCount() != 0) {
+        setScrubbedResponseItemCount(other.getScrubbedResponseItemCount());
+      }
+      if (!other.getTargetResource().isEmpty()) {
+        targetResource_ = other.targetResource_;
+        bitField0_ |= 0x00000010;
+        onChanged();
+      }
+      this.mergeUnknownFields(other.getUnknownFields());
+      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 {
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10:
+              {
+                auditLog_ = input.readBytes();
+                bitField0_ |= 0x00000001;
+                break;
+              } // case 10
+            case 18:
+              {
+                input.readMessage(getScrubbedRequestFieldBuilder().getBuilder(), extensionRegistry);
+                bitField0_ |= 0x00000002;
+                break;
+              } // case 18
+            case 26:
+              {
+                input.readMessage(
+                    getScrubbedResponseFieldBuilder().getBuilder(), extensionRegistry);
+                bitField0_ |= 0x00000004;
+                break;
+              } // case 26
+            case 32:
+              {
+                scrubbedResponseItemCount_ = input.readInt32();
+                bitField0_ |= 0x00000008;
+                break;
+              } // case 32
+            case 42:
+              {
+                targetResource_ = input.readStringRequireUtf8();
+                bitField0_ |= 0x00000010;
+                break;
+              } // case 42
+            default:
+              {
+                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
+                  done = true; // was an endgroup tag
+                }
+                break;
+              } // default:
+          } // switch (tag)
+        } // while (!done)
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.unwrapIOException();
+      } finally {
+        onChanged();
+      } // finally
+      return this;
+    }
+
+    private int bitField0_;
+
+    private com.google.protobuf.ByteString auditLog_ = com.google.protobuf.ByteString.EMPTY;
+    /**
+     *
+     *
+     * <pre>
+     * Serialized audit log.
+     * </pre>
+     *
+     * <code>bytes audit_log = 1;</code>
+     *
+     * @return The auditLog.
+     */
+    @java.lang.Override
+    public com.google.protobuf.ByteString getAuditLog() {
+      return auditLog_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Serialized audit log.
+     * </pre>
+     *
+     * <code>bytes audit_log = 1;</code>
+     *
+     * @param value The auditLog to set.
+     * @return This builder for chaining.
+     */
+    public Builder setAuditLog(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      auditLog_ = value;
+      bitField0_ |= 0x00000001;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Serialized audit log.
+     * </pre>
+     *
+     * <code>bytes audit_log = 1;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearAuditLog() {
+      bitField0_ = (bitField0_ & ~0x00000001);
+      auditLog_ = getDefaultInstance().getAuditLog();
+      onChanged();
+      return this;
+    }
+
+    private com.google.protobuf.Struct scrubbedRequest_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Struct,
+            com.google.protobuf.Struct.Builder,
+            com.google.protobuf.StructOrBuilder>
+        scrubbedRequestBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     *
+     * @return Whether the scrubbedRequest field is set.
+     */
+    public boolean hasScrubbedRequest() {
+      return ((bitField0_ & 0x00000002) != 0);
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     *
+     * @return The scrubbedRequest.
+     */
+    public com.google.protobuf.Struct getScrubbedRequest() {
+      if (scrubbedRequestBuilder_ == null) {
+        return scrubbedRequest_ == null
+            ? com.google.protobuf.Struct.getDefaultInstance()
+            : scrubbedRequest_;
+      } else {
+        return scrubbedRequestBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    public Builder setScrubbedRequest(com.google.protobuf.Struct value) {
+      if (scrubbedRequestBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        scrubbedRequest_ = value;
+      } else {
+        scrubbedRequestBuilder_.setMessage(value);
+      }
+      bitField0_ |= 0x00000002;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    public Builder setScrubbedRequest(com.google.protobuf.Struct.Builder builderForValue) {
+      if (scrubbedRequestBuilder_ == null) {
+        scrubbedRequest_ = builderForValue.build();
+      } else {
+        scrubbedRequestBuilder_.setMessage(builderForValue.build());
+      }
+      bitField0_ |= 0x00000002;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    public Builder mergeScrubbedRequest(com.google.protobuf.Struct value) {
+      if (scrubbedRequestBuilder_ == null) {
+        if (((bitField0_ & 0x00000002) != 0)
+            && scrubbedRequest_ != null
+            && scrubbedRequest_ != com.google.protobuf.Struct.getDefaultInstance()) {
+          getScrubbedRequestBuilder().mergeFrom(value);
+        } else {
+          scrubbedRequest_ = value;
+        }
+      } else {
+        scrubbedRequestBuilder_.mergeFrom(value);
+      }
+      bitField0_ |= 0x00000002;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    public Builder clearScrubbedRequest() {
+      bitField0_ = (bitField0_ & ~0x00000002);
+      scrubbedRequest_ = null;
+      if (scrubbedRequestBuilder_ != null) {
+        scrubbedRequestBuilder_.dispose();
+        scrubbedRequestBuilder_ = null;
+      }
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    public com.google.protobuf.Struct.Builder getScrubbedRequestBuilder() {
+      bitField0_ |= 0x00000002;
+      onChanged();
+      return getScrubbedRequestFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    public com.google.protobuf.StructOrBuilder getScrubbedRequestOrBuilder() {
+      if (scrubbedRequestBuilder_ != null) {
+        return scrubbedRequestBuilder_.getMessageOrBuilder();
+      } else {
+        return scrubbedRequest_ == null
+            ? com.google.protobuf.Struct.getDefaultInstance()
+            : scrubbedRequest_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API request message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Struct,
+            com.google.protobuf.Struct.Builder,
+            com.google.protobuf.StructOrBuilder>
+        getScrubbedRequestFieldBuilder() {
+      if (scrubbedRequestBuilder_ == null) {
+        scrubbedRequestBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.protobuf.Struct,
+                com.google.protobuf.Struct.Builder,
+                com.google.protobuf.StructOrBuilder>(
+                getScrubbedRequest(), getParentForChildren(), isClean());
+        scrubbedRequest_ = null;
+      }
+      return scrubbedRequestBuilder_;
+    }
+
+    private com.google.protobuf.Struct scrubbedResponse_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Struct,
+            com.google.protobuf.Struct.Builder,
+            com.google.protobuf.StructOrBuilder>
+        scrubbedResponseBuilder_;
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     *
+     * @return Whether the scrubbedResponse field is set.
+     */
+    public boolean hasScrubbedResponse() {
+      return ((bitField0_ & 0x00000004) != 0);
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     *
+     * @return The scrubbedResponse.
+     */
+    public com.google.protobuf.Struct getScrubbedResponse() {
+      if (scrubbedResponseBuilder_ == null) {
+        return scrubbedResponse_ == null
+            ? com.google.protobuf.Struct.getDefaultInstance()
+            : scrubbedResponse_;
+      } else {
+        return scrubbedResponseBuilder_.getMessage();
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    public Builder setScrubbedResponse(com.google.protobuf.Struct value) {
+      if (scrubbedResponseBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        scrubbedResponse_ = value;
+      } else {
+        scrubbedResponseBuilder_.setMessage(value);
+      }
+      bitField0_ |= 0x00000004;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    public Builder setScrubbedResponse(com.google.protobuf.Struct.Builder builderForValue) {
+      if (scrubbedResponseBuilder_ == null) {
+        scrubbedResponse_ = builderForValue.build();
+      } else {
+        scrubbedResponseBuilder_.setMessage(builderForValue.build());
+      }
+      bitField0_ |= 0x00000004;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    public Builder mergeScrubbedResponse(com.google.protobuf.Struct value) {
+      if (scrubbedResponseBuilder_ == null) {
+        if (((bitField0_ & 0x00000004) != 0)
+            && scrubbedResponse_ != null
+            && scrubbedResponse_ != com.google.protobuf.Struct.getDefaultInstance()) {
+          getScrubbedResponseBuilder().mergeFrom(value);
+        } else {
+          scrubbedResponse_ = value;
+        }
+      } else {
+        scrubbedResponseBuilder_.mergeFrom(value);
+      }
+      bitField0_ |= 0x00000004;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    public Builder clearScrubbedResponse() {
+      bitField0_ = (bitField0_ & ~0x00000004);
+      scrubbedResponse_ = null;
+      if (scrubbedResponseBuilder_ != null) {
+        scrubbedResponseBuilder_.dispose();
+        scrubbedResponseBuilder_ = null;
+      }
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    public com.google.protobuf.Struct.Builder getScrubbedResponseBuilder() {
+      bitField0_ |= 0x00000004;
+      onChanged();
+      return getScrubbedResponseFieldBuilder().getBuilder();
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    public com.google.protobuf.StructOrBuilder getScrubbedResponseOrBuilder() {
+      if (scrubbedResponseBuilder_ != null) {
+        return scrubbedResponseBuilder_.getMessageOrBuilder();
+      } else {
+        return scrubbedResponse_ == null
+            ? com.google.protobuf.Struct.getDefaultInstance()
+            : scrubbedResponse_;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * An API response message that is scrubbed based on the method annotation.
+     * This field should only be filled if audit_log field is present.
+     * Service Control will use this to assemble a complete log for Cloud Audit
+     * Logs and Google internal audit logs.
+     * </pre>
+     *
+     * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Struct,
+            com.google.protobuf.Struct.Builder,
+            com.google.protobuf.StructOrBuilder>
+        getScrubbedResponseFieldBuilder() {
+      if (scrubbedResponseBuilder_ == null) {
+        scrubbedResponseBuilder_ =
+            new com.google.protobuf.SingleFieldBuilderV3<
+                com.google.protobuf.Struct,
+                com.google.protobuf.Struct.Builder,
+                com.google.protobuf.StructOrBuilder>(
+                getScrubbedResponse(), getParentForChildren(), isClean());
+        scrubbedResponse_ = null;
+      }
+      return scrubbedResponseBuilder_;
+    }
+
+    private int scrubbedResponseItemCount_;
+    /**
+     *
+     *
+     * <pre>
+     * Number of scrubbed response items.
+     * </pre>
+     *
+     * <code>int32 scrubbed_response_item_count = 4;</code>
+     *
+     * @return The scrubbedResponseItemCount.
+     */
+    @java.lang.Override
+    public int getScrubbedResponseItemCount() {
+      return scrubbedResponseItemCount_;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Number of scrubbed response items.
+     * </pre>
+     *
+     * <code>int32 scrubbed_response_item_count = 4;</code>
+     *
+     * @param value The scrubbedResponseItemCount to set.
+     * @return This builder for chaining.
+     */
+    public Builder setScrubbedResponseItemCount(int value) {
+
+      scrubbedResponseItemCount_ = value;
+      bitField0_ |= 0x00000008;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Number of scrubbed response items.
+     * </pre>
+     *
+     * <code>int32 scrubbed_response_item_count = 4;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearScrubbedResponseItemCount() {
+      bitField0_ = (bitField0_ & ~0x00000008);
+      scrubbedResponseItemCount_ = 0;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object targetResource_ = "";
+    /**
+     *
+     *
+     * <pre>
+     * Audit resource name which is scrubbed.
+     * </pre>
+     *
+     * <code>string target_resource = 5;</code>
+     *
+     * @return The targetResource.
+     */
+    public java.lang.String getTargetResource() {
+      java.lang.Object ref = targetResource_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        targetResource_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Audit resource name which is scrubbed.
+     * </pre>
+     *
+     * <code>string target_resource = 5;</code>
+     *
+     * @return The bytes for targetResource.
+     */
+    public com.google.protobuf.ByteString getTargetResourceBytes() {
+      java.lang.Object ref = targetResource_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b =
+            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
+        targetResource_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Audit resource name which is scrubbed.
+     * </pre>
+     *
+     * <code>string target_resource = 5;</code>
+     *
+     * @param value The targetResource to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTargetResource(java.lang.String value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      targetResource_ = value;
+      bitField0_ |= 0x00000010;
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Audit resource name which is scrubbed.
+     * </pre>
+     *
+     * <code>string target_resource = 5;</code>
+     *
+     * @return This builder for chaining.
+     */
+    public Builder clearTargetResource() {
+      targetResource_ = getDefaultInstance().getTargetResource();
+      bitField0_ = (bitField0_ & ~0x00000010);
+      onChanged();
+      return this;
+    }
+    /**
+     *
+     *
+     * <pre>
+     * Audit resource name which is scrubbed.
+     * </pre>
+     *
+     * <code>string target_resource = 5;</code>
+     *
+     * @param value The bytes for targetResource to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTargetResourceBytes(com.google.protobuf.ByteString value) {
+      if (value == null) {
+        throw new NullPointerException();
+      }
+      checkByteStringIsUtf8(value);
+      targetResource_ = value;
+      bitField0_ |= 0x00000010;
+      onChanged();
+      return this;
+    }
+
+    @java.lang.Override
+    public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.setUnknownFields(unknownFields);
+    }
+
+    @java.lang.Override
+    public final Builder mergeUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.mergeUnknownFields(unknownFields);
+    }
+
+    // @@protoc_insertion_point(builder_scope:google.rpc.context.AuditContext)
+  }
+
+  // @@protoc_insertion_point(class_scope:google.rpc.context.AuditContext)
+  private static final com.google.rpc.context.AuditContext DEFAULT_INSTANCE;
+
+  static {
+    DEFAULT_INSTANCE = new com.google.rpc.context.AuditContext();
+  }
+
+  public static com.google.rpc.context.AuditContext getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<AuditContext> PARSER =
+      new com.google.protobuf.AbstractParser<AuditContext>() {
+        @java.lang.Override
+        public AuditContext parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          Builder builder = newBuilder();
+          try {
+            builder.mergeFrom(input, extensionRegistry);
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            throw e.setUnfinishedMessage(builder.buildPartial());
+          } catch (com.google.protobuf.UninitializedMessageException e) {
+            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
+          } catch (java.io.IOException e) {
+            throw new com.google.protobuf.InvalidProtocolBufferException(e)
+                .setUnfinishedMessage(builder.buildPartial());
+          }
+          return builder.buildPartial();
+        }
+      };
+
+  public static com.google.protobuf.Parser<AuditContext> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<AuditContext> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.rpc.context.AuditContext getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContextOrBuilder.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContextOrBuilder.java
new file mode 100644
index 0000000..e92c0cd
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContextOrBuilder.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2020 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.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/rpc/context/audit_context.proto
+
+package com.google.rpc.context;
+
+public interface AuditContextOrBuilder
+    extends
+    // @@protoc_insertion_point(interface_extends:google.rpc.context.AuditContext)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   *
+   *
+   * <pre>
+   * Serialized audit log.
+   * </pre>
+   *
+   * <code>bytes audit_log = 1;</code>
+   *
+   * @return The auditLog.
+   */
+  com.google.protobuf.ByteString getAuditLog();
+
+  /**
+   *
+   *
+   * <pre>
+   * An API request message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+   *
+   * @return Whether the scrubbedRequest field is set.
+   */
+  boolean hasScrubbedRequest();
+  /**
+   *
+   *
+   * <pre>
+   * An API request message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+   *
+   * @return The scrubbedRequest.
+   */
+  com.google.protobuf.Struct getScrubbedRequest();
+  /**
+   *
+   *
+   * <pre>
+   * An API request message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_request = 2;</code>
+   */
+  com.google.protobuf.StructOrBuilder getScrubbedRequestOrBuilder();
+
+  /**
+   *
+   *
+   * <pre>
+   * An API response message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+   *
+   * @return Whether the scrubbedResponse field is set.
+   */
+  boolean hasScrubbedResponse();
+  /**
+   *
+   *
+   * <pre>
+   * An API response message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+   *
+   * @return The scrubbedResponse.
+   */
+  com.google.protobuf.Struct getScrubbedResponse();
+  /**
+   *
+   *
+   * <pre>
+   * An API response message that is scrubbed based on the method annotation.
+   * This field should only be filled if audit_log field is present.
+   * Service Control will use this to assemble a complete log for Cloud Audit
+   * Logs and Google internal audit logs.
+   * </pre>
+   *
+   * <code>.google.protobuf.Struct scrubbed_response = 3;</code>
+   */
+  com.google.protobuf.StructOrBuilder getScrubbedResponseOrBuilder();
+
+  /**
+   *
+   *
+   * <pre>
+   * Number of scrubbed response items.
+   * </pre>
+   *
+   * <code>int32 scrubbed_response_item_count = 4;</code>
+   *
+   * @return The scrubbedResponseItemCount.
+   */
+  int getScrubbedResponseItemCount();
+
+  /**
+   *
+   *
+   * <pre>
+   * Audit resource name which is scrubbed.
+   * </pre>
+   *
+   * <code>string target_resource = 5;</code>
+   *
+   * @return The targetResource.
+   */
+  java.lang.String getTargetResource();
+  /**
+   *
+   *
+   * <pre>
+   * Audit resource name which is scrubbed.
+   * </pre>
+   *
+   * <code>string target_resource = 5;</code>
+   *
+   * @return The bytes for targetResource.
+   */
+  com.google.protobuf.ByteString getTargetResourceBytes();
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContextProto.java b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContextProto.java
new file mode 100644
index 0000000..21195b3
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/java/com/google/rpc/context/AuditContextProto.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2020 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.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: google/rpc/context/audit_context.proto
+
+package com.google.rpc.context;
+
+public final class AuditContextProto {
+  private AuditContextProto() {}
+
+  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_rpc_context_AuditContext_descriptor;
+  static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_google_rpc_context_AuditContext_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/rpc/context/audit_context.proto"
+          + "\022\022google.rpc.context\032\034google/protobuf/st"
+          + "ruct.proto\"\307\001\n\014AuditContext\022\021\n\taudit_log"
+          + "\030\001 \001(\014\0221\n\020scrubbed_request\030\002 \001(\0132\027.googl"
+          + "e.protobuf.Struct\0222\n\021scrubbed_response\030\003"
+          + " \001(\0132\027.google.protobuf.Struct\022$\n\034scrubbe"
+          + "d_response_item_count\030\004 \001(\005\022\027\n\017target_re"
+          + "source\030\005 \001(\tBk\n\026com.google.rpc.contextB\021"
+          + "AuditContextProtoP\001Z9google.golang.org/g"
+          + "enproto/googleapis/rpc/context;context\370\001"
+          + "\001b\006proto3"
+    };
+    descriptor =
+        com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
+            descriptorData,
+            new com.google.protobuf.Descriptors.FileDescriptor[] {
+              com.google.protobuf.StructProto.getDescriptor(),
+            });
+    internal_static_google_rpc_context_AuditContext_descriptor =
+        getDescriptor().getMessageTypes().get(0);
+    internal_static_google_rpc_context_AuditContext_fieldAccessorTable =
+        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+            internal_static_google_rpc_context_AuditContext_descriptor,
+            new java.lang.String[] {
+              "AuditLog",
+              "ScrubbedRequest",
+              "ScrubbedResponse",
+              "ScrubbedResponseItemCount",
+              "TargetResource",
+            });
+    com.google.protobuf.StructProto.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto
index 21a8ce1..ca91bb1 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/auth.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -62,7 +62,8 @@
 message AuthenticationRule {
   // Selects the methods to which this rule applies.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // The requirements for OAuth credentials.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto
index 1a3b705..6ff6887 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/backend.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -91,7 +91,8 @@
 
   // Selects the methods to which this rule applies.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // The address of the API backend.
@@ -178,4 +179,7 @@
   // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
   // for more details on the supported values.
   string protocol = 9;
+
+  // The map between request protocol and the backend address.
+  map<string, BackendRule> overrides_by_request_protocol = 10;
 }
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto
index e94c2ec..8b75452 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/billing.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -59,11 +59,13 @@
   // bill against consumer project).
   message BillingDestination {
     // The monitored resource type. The type must be defined in
-    // [Service.monitored_resources][google.api.Service.monitored_resources] section.
+    // [Service.monitored_resources][google.api.Service.monitored_resources]
+    // section.
     string monitored_resource = 1;
 
     // Names of the metrics to report to this billing destination.
-    // Each name must be defined in [Service.metrics][google.api.Service.metrics] section.
+    // Each name must be defined in
+    // [Service.metrics][google.api.Service.metrics] section.
     repeated string metrics = 2;
   }
 
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto
index 227ccf3..ca25db4 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/client.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -112,7 +112,9 @@
 
 // Details about how and where to publish client libraries.
 message ClientLibrarySettings {
-  // Version of the API to apply these settings to.
+  // Version of the API to apply these settings to. This is the full protobuf
+  // package for the API, ending in the version element.
+  // Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
   string version = 1;
 
   // Launch stage of this version of the API.
@@ -186,6 +188,10 @@
   // times in this list, then the last one wins.  Settings from earlier
   // settings with the same version string are discarded.
   repeated ClientLibrarySettings library_settings = 109;
+
+  // Optional link to proto reference documentation.  Example:
+  // https://cloud.google.com/pubsub/lite/docs/reference/rpc
+  string proto_reference_documentation_uri = 110;
 }
 
 // Settings for Java client libraries.
@@ -302,8 +308,8 @@
   // Example of a YAML configuration::
   //
   //  publishing:
-  //    method_behavior:
-  //      - selector: CreateAdDomain
+  //    method_settings:
+  //      - selector: google.cloud.speech.v2.Speech.BatchRecognize
   //        long_running:
   //          initial_poll_delay:
   //            seconds: 60 # 1 minute
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto
index f1fcde4..1dc8044 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/config_change.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto
index 8e776ec..1b16517 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/context.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -70,7 +70,8 @@
 message ContextRule {
   // Selects the methods to which this rule applies.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // A list of full type names of requested contexts.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto
index 5e14dee..275e438 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/control.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto
index b079a43..0baf6af 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/distribution.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto
index d15562d..0dabdfc 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/documentation.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto
index 3b9f6a1..7f6dca7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/endpoint.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto
index 3b1d0e2..c0509be 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/error_reason.proto
@@ -1,4 +1,4 @@
-// Copyright 2020 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -532,4 +532,39 @@
   //   }
   // }
   ORG_RESTRICTION_HEADER_INVALID = 28;
+
+  // Unimplemented. Do not use.
+  //
+  // The request is calling a service that is not visible to the consumer.
+  //
+  // Example of an ErrorInfo when the consumer "projects/123" contacting
+  //  "pubsub.googleapis.com" service which is not visible to the consumer.
+  //
+  //     { "reason": "SERVICE_NOT_VISIBLE",
+  //       "domain": "googleapis.com",
+  //       "metadata": {
+  //         "consumer": "projects/123",
+  //         "service": "pubsub.googleapis.com"
+  //       }
+  //     }
+  //
+  // This response indicates the "pubsub.googleapis.com" is not visible to
+  // "projects/123" (or it may not exist).
+  SERVICE_NOT_VISIBLE = 29;
+
+  // The request is related to a project for which GCP access is suspended.
+  //
+  // Example of an ErrorInfo when the consumer "projects/123" fails to contact
+  // "pubsub.googleapis.com" service because GCP access is suspended:
+  //
+  //     { "reason": "GCP_SUSPENDED",
+  //       "domain": "googleapis.com",
+  //       "metadata": {
+  //         "consumer": "projects/123",
+  //         "service": "pubsub.googleapis.com"
+  //       }
+  //     }
+  //
+  // This response indicates the associated GCP account has been suspended.
+  GCP_SUSPENDED = 30;
 }
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto
index c4abe3b..1a3a2f2 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/field_behavior.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto
index 113fa93..31d867a 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/http.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -210,15 +210,18 @@
 // 1. Leaf request fields (recursive expansion nested messages in the request
 //    message) are classified into three categories:
 //    - Fields referred by the path template. They are passed via the URL path.
-//    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
+//    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
+//    are passed via the HTTP
 //      request body.
 //    - All other fields are passed via the URL query parameters, and the
 //      parameter name is the field path in the request message. A repeated
 //      field can be represented as multiple query parameters under the same
 //      name.
-//  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
+//  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
+//  query parameter, all fields
 //     are passed via URL path and HTTP request body.
-//  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
+//  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
+//  request body, all
 //     fields are passed via URL path and URL query parameters.
 //
 // ### Path template syntax
@@ -313,7 +316,8 @@
 message HttpRule {
   // Selects a method to which this rule applies.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // Determines the URL pattern is matched by this rules. This pattern can be
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto
index 00c80ab..7f1685e 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/httpbody.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto
index af294c9..698f6bd 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/label.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto
index 6524db5..9802de7 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/launch_stage.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto
index 22ee289..416c4f6 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/log.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto
index e60f77c..650786f 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/logging.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -56,13 +56,14 @@
   // or the consumer project).
   message LoggingDestination {
     // The monitored resource type. The type must be defined in the
-    // [Service.monitored_resources][google.api.Service.monitored_resources] section.
+    // [Service.monitored_resources][google.api.Service.monitored_resources]
+    // section.
     string monitored_resource = 3;
 
     // Names of the logs to be sent to this destination. Each name must
-    // be defined in the [Service.logs][google.api.Service.logs] section. If the log name is
-    // not a domain scoped name, it will be automatically prefixed with
-    // the service name followed by "/".
+    // be defined in the [Service.logs][google.api.Service.logs] section. If the
+    // log name is not a domain scoped name, it will be automatically prefixed
+    // with the service name followed by "/".
     repeated string logs = 1;
   }
 
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto
index c206666..9bf043c 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/metric.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -80,7 +80,9 @@
 
   // Additional annotations that can be used to guide the usage of a metric.
   message MetricDescriptorMetadata {
-    // Deprecated. Must use the [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] instead.
+    // Deprecated. Must use the
+    // [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage]
+    // instead.
     LaunchStage launch_stage = 1 [deprecated = true];
 
     // The sampling period of metric data points. For metrics which are written
@@ -245,17 +247,19 @@
 
   // Read-only. If present, then a [time
   // series][google.monitoring.v3.TimeSeries], which is identified partially by
-  // a metric type and a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that is associated
-  // with this metric type can only be associated with one of the monitored
-  // resource types listed here.
+  // a metric type and a
+  // [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that
+  // is associated with this metric type can only be associated with one of the
+  // monitored resource types listed here.
   repeated string monitored_resource_types = 13;
 }
 
 // A specific metric, identified by specifying values for all of the
 // labels of a [`MetricDescriptor`][google.api.MetricDescriptor].
 message Metric {
-  // An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor].
-  // For example, `custom.googleapis.com/invoice/paid/amount`.
+  // An existing metric type, see
+  // [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example,
+  // `custom.googleapis.com/invoice/paid/amount`.
   string type = 3;
 
   // The set of label values that uniquely identify this metric. All
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto
index 8b97baa..c6f9759 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitored_resource.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -27,9 +27,10 @@
 option java_package = "com.google.api";
 option objc_class_prefix = "GAPI";
 
-// An object that describes the schema of a [MonitoredResource][google.api.MonitoredResource] object using a
-// type name and a set of labels.  For example, the monitored resource
-// descriptor for Google Compute Engine VM instances has a type of
+// An object that describes the schema of a
+// [MonitoredResource][google.api.MonitoredResource] object using a type name
+// and a set of labels.  For example, the monitored resource descriptor for
+// Google Compute Engine VM instances has a type of
 // `"gce_instance"` and specifies the use of the labels `"instance_id"` and
 // `"zone"` to identify particular VM instances.
 //
@@ -76,11 +77,13 @@
 // An object representing a resource that can be used for monitoring, logging,
 // billing, or other purposes. Examples include virtual machine instances,
 // databases, and storage devices such as disks. The `type` field identifies a
-// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object that describes the resource's
-// schema. Information in the `labels` field identifies the actual resource and
-// its attributes according to the schema. For example, a particular Compute
-// Engine VM instance could be represented by the following object, because the
-// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for `"gce_instance"` has labels
+// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object
+// that describes the resource's schema. Information in the `labels` field
+// identifies the actual resource and its attributes according to the schema.
+// For example, a particular Compute Engine VM instance could be represented by
+// the following object, because the
+// [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] for
+// `"gce_instance"` has labels
 // `"project_id"`, `"instance_id"` and `"zone"`:
 //
 //     { "type": "gce_instance",
@@ -89,10 +92,12 @@
 //                   "zone": "us-central1-a" }}
 message MonitoredResource {
   // Required. The monitored resource type. This field must match
-  // the `type` field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For
-  // example, the type of a Compute Engine VM instance is `gce_instance`.
-  // Some descriptors include the service name in the type; for example,
-  // the type of a Datastream stream is `datastream.googleapis.com/Stream`.
+  // the `type` field of a
+  // [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor]
+  // object. For example, the type of a Compute Engine VM instance is
+  // `gce_instance`. Some descriptors include the service name in the type; for
+  // example, the type of a Datastream stream is
+  // `datastream.googleapis.com/Stream`.
   string type = 1;
 
   // Required. Values for all of the labels listed in the associated monitored
@@ -101,12 +106,12 @@
   map<string, string> labels = 2;
 }
 
-// Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource] object.
-// [MonitoredResource][google.api.MonitoredResource] objects contain the minimum set of information to
-// uniquely identify a monitored resource instance. There is some other useful
-// auxiliary metadata. Monitoring and Logging use an ingestion
-// pipeline to extract metadata for cloud resources of all types, and store
-// the metadata in this message.
+// Auxiliary metadata for a [MonitoredResource][google.api.MonitoredResource]
+// object. [MonitoredResource][google.api.MonitoredResource] objects contain the
+// minimum set of information to uniquely identify a monitored resource
+// instance. There is some other useful auxiliary metadata. Monitoring and
+// Logging use an ingestion pipeline to extract metadata for cloud resources of
+// all types, and store the metadata in this message.
 message MonitoredResourceMetadata {
   // Output only. Values for predefined system metadata labels.
   // System labels are a kind of metadata extracted by Google, including
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto
index 60770ec..753703e 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/monitoring.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -79,11 +79,13 @@
   // or the consumer project).
   message MonitoringDestination {
     // The monitored resource type. The type must be defined in
-    // [Service.monitored_resources][google.api.Service.monitored_resources] section.
+    // [Service.monitored_resources][google.api.Service.monitored_resources]
+    // section.
     string monitored_resource = 1;
 
     // Types of the metrics to report to this monitoring destination.
-    // Each type must be defined in [Service.metrics][google.api.Service.metrics] section.
+    // Each type must be defined in
+    // [Service.metrics][google.api.Service.metrics] section.
     repeated string metrics = 2;
   }
 
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto
index 3272cda..7ccc102 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/quota.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -87,7 +87,8 @@
 message MetricRule {
   // Selects the methods to which this rule applies.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // Metrics to update when the selected methods are called, and the associated
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto
index 0ce0344..bf0cbec 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/resource.proto
@@ -1,4 +1,4 @@
-// Copyright 2018 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto
index 0138283..b35289b 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/routing.proto
@@ -1,4 +1,4 @@
-// Copyright 2021 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto
index a901863..3de5b66 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/service.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -98,10 +98,10 @@
   string id = 33;
 
   // A list of API interfaces exported by this service. Only the `name` field
-  // of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration
-  // author, as the remaining fields will be derived from the IDL during the
-  // normalization process. It is an error to specify an API interface here
-  // which cannot be resolved against the associated IDL files.
+  // of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by
+  // the configuration author, as the remaining fields will be derived from the
+  // IDL during the normalization process. It is an error to specify an API
+  // interface here which cannot be resolved against the associated IDL files.
   repeated google.protobuf.Api apis = 3;
 
   // A list of all proto message types included in this API service.
@@ -159,7 +159,8 @@
   repeated MetricDescriptor metrics = 24;
 
   // Defines the monitored resources used by this service. This is required
-  // by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.
+  // by the [Service.monitoring][google.api.Service.monitoring] and
+  // [Service.logging][google.api.Service.logging] configurations.
   repeated MonitoredResourceDescriptor monitored_resources = 25;
 
   // Billing configuration.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto
index cbdd625..51fe279 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/source_info.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto
index 7d0b1d5..8d29057 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/system_parameter.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -67,7 +67,8 @@
   // Selects the methods to which this rule applies. Use '*' to indicate all
   // methods in all APIs.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // Define parameters. Multiple names may be defined for a parameter.
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto
index ad2764c..b9384b4 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/usage.proto
@@ -1,4 +1,4 @@
-// Copyright 2015 Google LLC
+// Copyright 2023 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -80,7 +80,8 @@
   // Selects the methods to which this rule applies. Use '*' to indicate all
   // methods in all APIs.
   //
-  // Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
+  // Refer to [selector][google.api.DocumentationRule.selector] for syntax
+  // details.
   string selector = 1;
 
   // If true, the selected method allows unregistered calls, e.g. calls
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto
index 0be4581..8b1f946 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/api/visibility.proto
@@ -1,4 +1,4 @@
-// Copyright 2021 Google LLC
+// Copyright 2023 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/java-common-protos/proto-google-common-protos/src/main/proto/google/longrunning/operations.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/longrunning/operations.proto
index c1fdc6f..c8fda20 100644
--- a/java-common-protos/proto-google-common-protos/src/main/proto/google/longrunning/operations.proto
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/longrunning/operations.proto
@@ -26,7 +26,7 @@
 
 option cc_enable_arenas = true;
 option csharp_namespace = "Google.LongRunning";
-option go_package = "google.golang.org/genproto/googleapis/longrunning;longrunning";
+option go_package = "cloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb";
 option java_multiple_files = true;
 option java_outer_classname = "OperationsProto";
 option java_package = "com.google.longrunning";
diff --git a/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto
new file mode 100644
index 0000000..7b8b705
--- /dev/null
+++ b/java-common-protos/proto-google-common-protos/src/main/proto/google/rpc/context/audit_context.proto
@@ -0,0 +1,49 @@
+// Copyright 2022 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.rpc.context;
+
+import "google/protobuf/struct.proto";
+
+option cc_enable_arenas = true;
+option go_package = "google.golang.org/genproto/googleapis/rpc/context;context";
+option java_multiple_files = true;
+option java_outer_classname = "AuditContextProto";
+option java_package = "com.google.rpc.context";
+
+// `AuditContext` provides information that is needed for audit logging.
+message AuditContext {
+  // Serialized audit log.
+  bytes audit_log = 1;
+
+  // An API request message that is scrubbed based on the method annotation.
+  // This field should only be filled if audit_log field is present.
+  // Service Control will use this to assemble a complete log for Cloud Audit
+  // Logs and Google internal audit logs.
+  google.protobuf.Struct scrubbed_request = 2;
+
+  // An API response message that is scrubbed based on the method annotation.
+  // This field should only be filled if audit_log field is present.
+  // Service Control will use this to assemble a complete log for Cloud Audit
+  // Logs and Google internal audit logs.
+  google.protobuf.Struct scrubbed_response = 3;
+
+  // Number of scrubbed response items.
+  int32 scrubbed_response_item_count = 4;
+
+  // Audit resource name which is scrubbed.
+  string target_resource = 5;
+}