code: @BetaApi
    public final Operation updateRouter(
        ProjectRegionRouterName router, Router routerResource, List<String> fieldMask) {
  
      UpdateRouterHttpRequest request =
          UpdateRouterHttpRequest.newBuilder()
              .setRouter(router == null ? null : router.toString())
              .setRouterResource(routerResource)
              .addAllFieldMask(fieldMask)
              .build();
      return updateRouter(request);
    }
docs: Updates the specified Router resource with the data included in the request.
  
  <p>Sample code:
  
  <pre><code>
  try (RouterClient routerClient = RouterClient.create()) {
  ProjectRegionRouterName router = ProjectRegionRouterName.of("[PROJECT]", "[REGION]", "[ROUTER]");
  Router routerResource = Router.newBuilder().build();
  List&lt;String&gt; fieldMask = new ArrayList&lt;&gt;();
  Operation response = routerClient.updateRouter(router, routerResource, fieldMask);
  }
  </code></pre>
  
  @param router Name of the Router resource to update.
  @param routerResource Router resource.
  @param fieldMask The fields that should be serialized (even if they have empty values). If the
  containing message object has a non-null fieldmask, then all the fields in the field mask
  (and only those fields in the field mask) will be serialized. If the containing object does
  not have a fieldmask, then only non-empty fields will be serialized.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails