diff --git a/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py b/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py
index 14f9f67814cf..9b397d9ce463 100644
--- a/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py
+++ b/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py
@@ -23,6 +23,7 @@
 import google.api_core.gapic_v1.client_info
 import google.api_core.gapic_v1.config
 import google.api_core.gapic_v1.method
+import google.api_core.gapic_v1.routing_header
 import google.api_core.grpc_helpers
 import google.api_core.operation
 import google.api_core.operations_v1
@@ -275,6 +276,19 @@ def list_databases(
         request = spanner_database_admin_pb2.ListDatabasesRequest(
             parent=parent, page_size=page_size
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("parent", parent)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         iterator = google.api_core.page_iterator.GRPCIterator(
             client=None,
             method=functools.partial(
@@ -375,6 +389,19 @@ def create_database(
             create_statement=create_statement,
             extra_statements=extra_statements,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("parent", parent)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         operation = self._inner_api_calls["create_database"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -438,6 +465,19 @@ def get_database(
             )
 
         request = spanner_database_admin_pb2.GetDatabaseRequest(name=name)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("name", name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_database"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -531,6 +571,19 @@ def update_database_ddl(
         request = spanner_database_admin_pb2.UpdateDatabaseDdlRequest(
             database=database, statements=statements, operation_id=operation_id
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("database", database)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         operation = self._inner_api_calls["update_database_ddl"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -590,6 +643,19 @@ def drop_database(
             )
 
         request = spanner_database_admin_pb2.DropDatabaseRequest(database=database)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("database", database)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         self._inner_api_calls["drop_database"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -648,6 +714,19 @@ def get_database_ddl(
             )
 
         request = spanner_database_admin_pb2.GetDatabaseDdlRequest(database=database)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("database", database)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_database_ddl"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -721,6 +800,19 @@ def set_iam_policy(
             )
 
         request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("resource", resource)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["set_iam_policy"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -783,6 +875,19 @@ def get_iam_policy(
             )
 
         request = iam_policy_pb2.GetIamPolicyRequest(resource=resource)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("resource", resource)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_iam_policy"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -857,6 +962,19 @@ def test_iam_permissions(
         request = iam_policy_pb2.TestIamPermissionsRequest(
             resource=resource, permissions=permissions
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("resource", resource)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["test_iam_permissions"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
diff --git a/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py b/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py
index b3a86b20d1ea..51e8852cb9d9 100644
--- a/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py
+++ b/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py
@@ -23,6 +23,7 @@
 import google.api_core.gapic_v1.client_info
 import google.api_core.gapic_v1.config
 import google.api_core.gapic_v1.method
+import google.api_core.gapic_v1.routing_header
 import google.api_core.grpc_helpers
 import google.api_core.operation
 import google.api_core.operations_v1
@@ -299,6 +300,19 @@ def list_instance_configs(
         request = spanner_instance_admin_pb2.ListInstanceConfigsRequest(
             parent=parent, page_size=page_size
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("parent", parent)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         iterator = google.api_core.page_iterator.GRPCIterator(
             client=None,
             method=functools.partial(
@@ -367,6 +381,19 @@ def get_instance_config(
             )
 
         request = spanner_instance_admin_pb2.GetInstanceConfigRequest(name=name)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("name", name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_instance_config"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -466,6 +493,19 @@ def list_instances(
         request = spanner_instance_admin_pb2.ListInstancesRequest(
             parent=parent, page_size=page_size, filter=filter_
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("parent", parent)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         iterator = google.api_core.page_iterator.GRPCIterator(
             client=None,
             method=functools.partial(
@@ -534,6 +574,19 @@ def get_instance(
             )
 
         request = spanner_instance_admin_pb2.GetInstanceRequest(name=name)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("name", name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_instance"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -648,6 +701,19 @@ def create_instance(
         request = spanner_instance_admin_pb2.CreateInstanceRequest(
             parent=parent, instance_id=instance_id, instance=instance
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("parent", parent)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         operation = self._inner_api_calls["create_instance"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -668,7 +734,7 @@ def update_instance(
     ):
         """
         Updates an instance, and begins allocating or releasing resources as
-        requested. The returned ``long-running  operation`` can be used to track
+        requested. The returned ``long-running operation`` can be used to track
         the progress of updating the instance. If the named instance does not
         exist, returns ``NOT_FOUND``.
 
@@ -776,6 +842,19 @@ def update_instance(
         request = spanner_instance_admin_pb2.UpdateInstanceRequest(
             instance=instance, field_mask=field_mask
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("instance.name", instance.name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         operation = self._inner_api_calls["update_instance"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -846,6 +925,19 @@ def delete_instance(
             )
 
         request = spanner_instance_admin_pb2.DeleteInstanceRequest(name=name)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("name", name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         self._inner_api_calls["delete_instance"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -919,6 +1011,19 @@ def set_iam_policy(
             )
 
         request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("resource", resource)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["set_iam_policy"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -981,6 +1086,19 @@ def get_iam_policy(
             )
 
         request = iam_policy_pb2.GetIamPolicyRequest(resource=resource)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("resource", resource)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_iam_policy"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1055,6 +1173,19 @@ def test_iam_permissions(
         request = iam_policy_pb2.TestIamPermissionsRequest(
             resource=resource, permissions=permissions
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("resource", resource)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["test_iam_permissions"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
diff --git a/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py b/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py
index efc420f34842..bcc34114db29 100644
--- a/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py
+++ b/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py
@@ -208,7 +208,7 @@ def update_instance(self):
         """Return the gRPC stub for :meth:`InstanceAdminClient.update_instance`.
 
         Updates an instance, and begins allocating or releasing resources as
-        requested. The returned ``long-running  operation`` can be used to track
+        requested. The returned ``long-running operation`` can be used to track
         the progress of updating the instance. If the named instance does not
         exist, returns ``NOT_FOUND``.
 
diff --git a/spanner/google/cloud/spanner_v1/gapic/spanner_client.py b/spanner/google/cloud/spanner_v1/gapic/spanner_client.py
index 1cc1da386d71..8613368c7a81 100644
--- a/spanner/google/cloud/spanner_v1/gapic/spanner_client.py
+++ b/spanner/google/cloud/spanner_v1/gapic/spanner_client.py
@@ -23,6 +23,7 @@
 import google.api_core.gapic_v1.client_info
 import google.api_core.gapic_v1.config
 import google.api_core.gapic_v1.method
+import google.api_core.gapic_v1.routing_header
 import google.api_core.grpc_helpers
 import google.api_core.page_iterator
 import google.api_core.path_template
@@ -272,6 +273,19 @@ def create_session(
             )
 
         request = spanner_pb2.CreateSessionRequest(database=database, session=session)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("database", database)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["create_session"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -329,6 +343,19 @@ def get_session(
             )
 
         request = spanner_pb2.GetSessionRequest(name=name)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("name", name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["get_session"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -419,6 +446,19 @@ def list_sessions(
         request = spanner_pb2.ListSessionsRequest(
             database=database, page_size=page_size, filter=filter_
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("database", database)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         iterator = google.api_core.page_iterator.GRPCIterator(
             client=None,
             method=functools.partial(
@@ -485,6 +525,19 @@ def delete_session(
             )
 
         request = spanner_pb2.DeleteSessionRequest(name=name)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("name", name)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         self._inner_api_calls["delete_session"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -639,6 +692,19 @@ def execute_sql(
             partition_token=partition_token,
             seqno=seqno,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["execute_sql"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -788,6 +854,19 @@ def execute_streaming_sql(
             partition_token=partition_token,
             seqno=seqno,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["execute_streaming_sql"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -893,6 +972,19 @@ def execute_batch_dml(
         request = spanner_pb2.ExecuteBatchDmlRequest(
             session=session, transaction=transaction, statements=statements, seqno=seqno
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["execute_batch_dml"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1022,6 +1114,19 @@ def read(
             resume_token=resume_token,
             partition_token=partition_token,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["read"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1148,6 +1253,19 @@ def streaming_read(
             resume_token=resume_token,
             partition_token=partition_token,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["streaming_read"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1214,6 +1332,19 @@ def begin_transaction(
             )
 
         request = spanner_pb2.BeginTransactionRequest(session=session, options=options_)
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["begin_transaction"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1311,6 +1442,19 @@ def commit(
             transaction_id=transaction_id,
             single_use_transaction=single_use_transaction,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["commit"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1377,6 +1521,19 @@ def rollback(
         request = spanner_pb2.RollbackRequest(
             session=session, transaction_id=transaction_id
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         self._inner_api_calls["rollback"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1504,6 +1661,19 @@ def partition_query(
             param_types=param_types,
             partition_options=partition_options,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["partition_query"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
@@ -1618,6 +1788,19 @@ def partition_read(
             columns=columns,
             partition_options=partition_options,
         )
+        if metadata is None:
+            metadata = []
+        metadata = list(metadata)
+        try:
+            routing_header = [("session", session)]
+        except AttributeError:
+            pass
+        else:
+            routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
+                routing_header
+            )
+            metadata.append(routing_metadata)
+
         return self._inner_api_calls["partition_read"](
             request, retry=retry, timeout=timeout, metadata=metadata
         )
diff --git a/spanner/synth.metadata b/spanner/synth.metadata
index 9664c407bda9..4120295f31b1 100644
--- a/spanner/synth.metadata
+++ b/spanner/synth.metadata
@@ -1,26 +1,26 @@
 {
-  "updateTime": "2019-03-05T19:26:32.763039Z",
+  "updateTime": "2019-04-18T19:22:07.118132Z",
   "sources": [
     {
       "generator": {
         "name": "artman",
-        "version": "0.16.14",
-        "dockerImage": "googleapis/artman@sha256:f3d61ae45abaeefb6be5f228cda22732c2f1b00fb687c79c4bd4f2c42bb1e1a7"
+        "version": "0.16.25",
+        "dockerImage": "googleapis/artman@sha256:d9597f983d1d4e61272c63cb97b7d8f8234da9999526c35d357de3d781f0ec1b"
       }
     },
     {
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "8610b13d3da5e3230cf99c503558961626186249",
-        "internalRef": "236868372"
+        "sha": "9a89b9443aa9d43ccecbd5200cb866e551bbd5e7",
+        "internalRef": "244215550"
       }
     },
     {
       "template": {
         "name": "python_library",
         "origin": "synthtool.gcp",
-        "version": "2019.2.26"
+        "version": "2019.4.10"
       }
     }
   ],
diff --git a/spanner/tests/unit/test_client.py b/spanner/tests/unit/test_client.py
index b37e2848eb7e..ec95c92dc786 100644
--- a/spanner/tests/unit/test_client.py
+++ b/spanner/tests/unit/test_client.py
@@ -204,9 +204,13 @@ def test_list_instance_configs(self):
         self.assertEqual(instance_config.name, self.CONFIGURATION_NAME)
         self.assertEqual(instance_config.display_name, self.DISPLAY_NAME)
 
+        expected_metadata = [
+            ("google-cloud-resource-prefix", client.project_name),
+            ("x-goog-request-params", "parent={}".format(client.project_name)),
+        ]
         lic_api.assert_called_once_with(
             spanner_instance_admin_pb2.ListInstanceConfigsRequest(parent=self.PATH),
-            metadata=[("google-cloud-resource-prefix", client.project_name)],
+            metadata=expected_metadata,
             retry=mock.ANY,
             timeout=mock.ANY,
         )
@@ -238,11 +242,15 @@ def test_list_instance_configs_w_options(self):
         page_size = 42
         list(client.list_instance_configs(page_token=token, page_size=42))
 
+        expected_metadata = [
+            ("google-cloud-resource-prefix", client.project_name),
+            ("x-goog-request-params", "parent={}".format(client.project_name)),
+        ]
         lic_api.assert_called_once_with(
             spanner_instance_admin_pb2.ListInstanceConfigsRequest(
                 parent=self.PATH, page_size=page_size, page_token=token
             ),
-            metadata=[("google-cloud-resource-prefix", client.project_name)],
+            metadata=expected_metadata,
             retry=mock.ANY,
             timeout=mock.ANY,
         )
@@ -320,9 +328,13 @@ def test_list_instances(self):
         self.assertEqual(instance.display_name, self.DISPLAY_NAME)
         self.assertEqual(instance.node_count, self.NODE_COUNT)
 
+        expected_metadata = [
+            ("google-cloud-resource-prefix", client.project_name),
+            ("x-goog-request-params", "parent={}".format(client.project_name)),
+        ]
         li_api.assert_called_once_with(
             spanner_instance_admin_pb2.ListInstancesRequest(parent=self.PATH),
-            metadata=[("google-cloud-resource-prefix", client.project_name)],
+            metadata=expected_metadata,
             retry=mock.ANY,
             timeout=mock.ANY,
         )
@@ -348,11 +360,15 @@ def test_list_instances_w_options(self):
         page_size = 42
         list(client.list_instances(page_token=token, page_size=42))
 
+        expected_metadata = [
+            ("google-cloud-resource-prefix", client.project_name),
+            ("x-goog-request-params", "parent={}".format(client.project_name)),
+        ]
         li_api.assert_called_once_with(
             spanner_instance_admin_pb2.ListInstancesRequest(
                 parent=self.PATH, page_size=page_size, page_token=token
             ),
-            metadata=[("google-cloud-resource-prefix", client.project_name)],
+            metadata=expected_metadata,
             retry=mock.ANY,
             timeout=mock.ANY,
         )
diff --git a/spanner/tests/unit/test_instance.py b/spanner/tests/unit/test_instance.py
index 903c54362e33..0e7bc99df479 100644
--- a/spanner/tests/unit/test_instance.py
+++ b/spanner/tests/unit/test_instance.py
@@ -531,9 +531,13 @@ def test_list_databases(self):
         self.assertTrue(databases[0].name.endswith("/aa"))
         self.assertTrue(databases[1].name.endswith("/bb"))
 
+        expected_metadata = [
+            ("google-cloud-resource-prefix", instance.name),
+            ("x-goog-request-params", "parent={}".format(instance.name)),
+        ]
         ld_api.assert_called_once_with(
             spanner_database_admin_pb2.ListDatabasesRequest(parent=self.INSTANCE_NAME),
-            metadata=[("google-cloud-resource-prefix", instance.name)],
+            metadata=expected_metadata,
             retry=mock.ANY,
             timeout=mock.ANY,
         )
@@ -562,11 +566,15 @@ def test_list_databases_w_options(self):
 
         self.assertEqual(databases, [])
 
+        expected_metadata = [
+            ("google-cloud-resource-prefix", instance.name),
+            ("x-goog-request-params", "parent={}".format(instance.name)),
+        ]
         ld_api.assert_called_once_with(
             spanner_database_admin_pb2.ListDatabasesRequest(
                 parent=self.INSTANCE_NAME, page_size=page_size, page_token=page_token
             ),
-            metadata=[("google-cloud-resource-prefix", instance.name)],
+            metadata=expected_metadata,
             retry=mock.ANY,
             timeout=mock.ANY,
         )
