# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/spanner/admin/database_v1/proto/spanner_database_admin.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.iam.v1 import iam_policy_pb2 as google_dot_iam_dot_v1_dot_iam__policy__pb2
from google.iam.v1 import policy_pb2 as google_dot_iam_dot_v1_dot_policy__pb2
from google.longrunning import operations_pb2 as google_dot_longrunning_dot_operations__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/cloud/spanner/admin/database_v1/proto/spanner_database_admin.proto',
  package='google.spanner.admin.database.v1',
  syntax='proto3',
  serialized_pb=_b('\nIgoogle/cloud/spanner/admin/database_v1/proto/spanner_database_admin.proto\x12 google.spanner.admin.database.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x92\x01\n\x08\x44\x61tabase\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x05state\x18\x02 \x01(\x0e\x32\x30.google.spanner.admin.database.v1.Database.State\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\"M\n\x14ListDatabasesRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"o\n\x15ListDatabasesResponse\x12=\n\tdatabases\x18\x01 \x03(\x0b\x32*.google.spanner.admin.database.v1.Database\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"[\n\x15\x43reateDatabaseRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x18\n\x10\x63reate_statement\x18\x02 \x01(\t\x12\x18\n\x10\x65xtra_statements\x18\x03 \x03(\t\"*\n\x16\x43reateDatabaseMetadata\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\"\"\n\x12GetDatabaseRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"V\n\x18UpdateDatabaseDdlRequest\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x12\n\nstatements\x18\x02 \x03(\t\x12\x14\n\x0coperation_id\x18\x03 \x01(\t\"x\n\x19UpdateDatabaseDdlMetadata\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x12\n\nstatements\x18\x02 \x03(\t\x12\x35\n\x11\x63ommit_timestamps\x18\x03 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\"\'\n\x13\x44ropDatabaseRequest\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\")\n\x15GetDatabaseDdlRequest\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\",\n\x16GetDatabaseDdlResponse\x12\x12\n\nstatements\x18\x01 \x03(\t2\x95\x0c\n\rDatabaseAdmin\x12\xb7\x01\n\rListDatabases\x12\x36.google.spanner.admin.database.v1.ListDatabasesRequest\x1a\x37.google.spanner.admin.database.v1.ListDatabasesResponse\"5\x82\xd3\xe4\x93\x02/\x12-/v1/{parent=projects/*/instances/*}/databases\x12\xa2\x01\n\x0e\x43reateDatabase\x12\x37.google.spanner.admin.database.v1.CreateDatabaseRequest\x1a\x1d.google.longrunning.Operation\"8\x82\xd3\xe4\x93\x02\x32\"-/v1/{parent=projects/*/instances/*}/databases:\x01*\x12\xa6\x01\n\x0bGetDatabase\x12\x34.google.spanner.admin.database.v1.GetDatabaseRequest\x1a*.google.spanner.admin.database.v1.Database\"5\x82\xd3\xe4\x93\x02/\x12-/v1/{name=projects/*/instances/*/databases/*}\x12\xb0\x01\n\x11UpdateDatabaseDdl\x12:.google.spanner.admin.database.v1.UpdateDatabaseDdlRequest\x1a\x1d.google.longrunning.Operation\"@\x82\xd3\xe4\x93\x02:25/v1/{database=projects/*/instances/*/databases/*}/ddl:\x01*\x12\x98\x01\n\x0c\x44ropDatabase\x12\x35.google.spanner.admin.database.v1.DropDatabaseRequest\x1a\x16.google.protobuf.Empty\"9\x82\xd3\xe4\x93\x02\x33*1/v1/{database=projects/*/instances/*/databases/*}\x12\xc2\x01\n\x0eGetDatabaseDdl\x12\x37.google.spanner.admin.database.v1.GetDatabaseDdlRequest\x1a\x38.google.spanner.admin.database.v1.GetDatabaseDdlResponse\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{database=projects/*/instances/*/databases/*}/ddl\x12\x94\x01\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"I\x82\xd3\xe4\x93\x02\x43\">/v1/{resource=projects/*/instances/*/databases/*}:setIamPolicy:\x01*\x12\x94\x01\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"I\x82\xd3\xe4\x93\x02\x43\">/v1/{resource=projects/*/instances/*/databases/*}:getIamPolicy:\x01*\x12\xba\x01\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"O\x82\xd3\xe4\x93\x02I\"D/v1/{resource=projects/*/instances/*/databases/*}:testIamPermissions:\x01*B\xdf\x01\n$com.google.spanner.admin.database.v1B\x19SpannerDatabaseAdminProtoP\x01ZHgoogle.golang.org/genproto/googleapis/spanner/admin/database/v1;database\xaa\x02&Google.Cloud.Spanner.Admin.Database.V1\xca\x02&Google\\Cloud\\Spanner\\Admin\\Database\\V1b\x06proto3')
  ,
  dependencies=[google_dot_api_dot_annotations__pb2.DESCRIPTOR,google_dot_iam_dot_v1_dot_iam__policy__pb2.DESCRIPTOR,google_dot_iam_dot_v1_dot_policy__pb2.DESCRIPTOR,google_dot_longrunning_dot_operations__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
_sym_db.RegisterFileDescriptor(DESCRIPTOR)



_DATABASE_STATE = _descriptor.EnumDescriptor(
  name='State',
  full_name='google.spanner.admin.database.v1.Database.State',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='STATE_UNSPECIFIED', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CREATING', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='READY', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=392,
  serialized_end=447,
)
_sym_db.RegisterEnumDescriptor(_DATABASE_STATE)


_DATABASE = _descriptor.Descriptor(
  name='Database',
  full_name='google.spanner.admin.database.v1.Database',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.spanner.admin.database.v1.Database.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='state', full_name='google.spanner.admin.database.v1.Database.state', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _DATABASE_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=301,
  serialized_end=447,
)


_LISTDATABASESREQUEST = _descriptor.Descriptor(
  name='ListDatabasesRequest',
  full_name='google.spanner.admin.database.v1.ListDatabasesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.spanner.admin.database.v1.ListDatabasesRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='page_size', full_name='google.spanner.admin.database.v1.ListDatabasesRequest.page_size', index=1,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='page_token', full_name='google.spanner.admin.database.v1.ListDatabasesRequest.page_token', index=2,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=449,
  serialized_end=526,
)


_LISTDATABASESRESPONSE = _descriptor.Descriptor(
  name='ListDatabasesResponse',
  full_name='google.spanner.admin.database.v1.ListDatabasesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='databases', full_name='google.spanner.admin.database.v1.ListDatabasesResponse.databases', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='next_page_token', full_name='google.spanner.admin.database.v1.ListDatabasesResponse.next_page_token', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=528,
  serialized_end=639,
)


_CREATEDATABASEREQUEST = _descriptor.Descriptor(
  name='CreateDatabaseRequest',
  full_name='google.spanner.admin.database.v1.CreateDatabaseRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='parent', full_name='google.spanner.admin.database.v1.CreateDatabaseRequest.parent', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='create_statement', full_name='google.spanner.admin.database.v1.CreateDatabaseRequest.create_statement', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='extra_statements', full_name='google.spanner.admin.database.v1.CreateDatabaseRequest.extra_statements', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=641,
  serialized_end=732,
)


_CREATEDATABASEMETADATA = _descriptor.Descriptor(
  name='CreateDatabaseMetadata',
  full_name='google.spanner.admin.database.v1.CreateDatabaseMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='database', full_name='google.spanner.admin.database.v1.CreateDatabaseMetadata.database', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=734,
  serialized_end=776,
)


_GETDATABASEREQUEST = _descriptor.Descriptor(
  name='GetDatabaseRequest',
  full_name='google.spanner.admin.database.v1.GetDatabaseRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.spanner.admin.database.v1.GetDatabaseRequest.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=778,
  serialized_end=812,
)


_UPDATEDATABASEDDLREQUEST = _descriptor.Descriptor(
  name='UpdateDatabaseDdlRequest',
  full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='database', full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.database', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='statements', full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.statements', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='operation_id', full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.operation_id', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=814,
  serialized_end=900,
)


_UPDATEDATABASEDDLMETADATA = _descriptor.Descriptor(
  name='UpdateDatabaseDdlMetadata',
  full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='database', full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata.database', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='statements', full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata.statements', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='commit_timestamps', full_name='google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata.commit_timestamps', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=902,
  serialized_end=1022,
)


_DROPDATABASEREQUEST = _descriptor.Descriptor(
  name='DropDatabaseRequest',
  full_name='google.spanner.admin.database.v1.DropDatabaseRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='database', full_name='google.spanner.admin.database.v1.DropDatabaseRequest.database', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1024,
  serialized_end=1063,
)


_GETDATABASEDDLREQUEST = _descriptor.Descriptor(
  name='GetDatabaseDdlRequest',
  full_name='google.spanner.admin.database.v1.GetDatabaseDdlRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='database', full_name='google.spanner.admin.database.v1.GetDatabaseDdlRequest.database', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1065,
  serialized_end=1106,
)


_GETDATABASEDDLRESPONSE = _descriptor.Descriptor(
  name='GetDatabaseDdlResponse',
  full_name='google.spanner.admin.database.v1.GetDatabaseDdlResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='statements', full_name='google.spanner.admin.database.v1.GetDatabaseDdlResponse.statements', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1108,
  serialized_end=1152,
)

_DATABASE.fields_by_name['state'].enum_type = _DATABASE_STATE
_DATABASE_STATE.containing_type = _DATABASE
_LISTDATABASESRESPONSE.fields_by_name['databases'].message_type = _DATABASE
_UPDATEDATABASEDDLMETADATA.fields_by_name['commit_timestamps'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
DESCRIPTOR.message_types_by_name['Database'] = _DATABASE
DESCRIPTOR.message_types_by_name['ListDatabasesRequest'] = _LISTDATABASESREQUEST
DESCRIPTOR.message_types_by_name['ListDatabasesResponse'] = _LISTDATABASESRESPONSE
DESCRIPTOR.message_types_by_name['CreateDatabaseRequest'] = _CREATEDATABASEREQUEST
DESCRIPTOR.message_types_by_name['CreateDatabaseMetadata'] = _CREATEDATABASEMETADATA
DESCRIPTOR.message_types_by_name['GetDatabaseRequest'] = _GETDATABASEREQUEST
DESCRIPTOR.message_types_by_name['UpdateDatabaseDdlRequest'] = _UPDATEDATABASEDDLREQUEST
DESCRIPTOR.message_types_by_name['UpdateDatabaseDdlMetadata'] = _UPDATEDATABASEDDLMETADATA
DESCRIPTOR.message_types_by_name['DropDatabaseRequest'] = _DROPDATABASEREQUEST
DESCRIPTOR.message_types_by_name['GetDatabaseDdlRequest'] = _GETDATABASEDDLREQUEST
DESCRIPTOR.message_types_by_name['GetDatabaseDdlResponse'] = _GETDATABASEDDLRESPONSE

Database = _reflection.GeneratedProtocolMessageType('Database', (_message.Message,), dict(
  DESCRIPTOR = _DATABASE,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """A Cloud Spanner database.
  
  
  Attributes:
      name:
          Required. The name of the database. Values are of the form ``p
          rojects/<project>/instances/<instance>/databases/<database>``,
          where ``<database>`` is as specified in the ``CREATE
          DATABASE`` statement. This name can be passed to other API
          methods to identify the database.
      state:
          Output only. The current database state.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.Database)
  ))
_sym_db.RegisterMessage(Database)

ListDatabasesRequest = _reflection.GeneratedProtocolMessageType('ListDatabasesRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTDATABASESREQUEST,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The request for
  [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases].
  
  
  Attributes:
      parent:
          Required. The instance whose databases should be listed.
          Values are of the form
          ``projects/<project>/instances/<instance>``.
      page_size:
          Number of databases to be returned in the response. If 0 or
          less, defaults to the server's maximum allowed page size.
      page_token:
          If non-empty, ``page_token`` should contain a [next\_page\_tok
          en][google.spanner.admin.database.v1.ListDatabasesResponse.nex
          t\_page\_token] from a previous [ListDatabasesResponse][google
          .spanner.admin.database.v1.ListDatabasesResponse].
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.ListDatabasesRequest)
  ))
_sym_db.RegisterMessage(ListDatabasesRequest)

ListDatabasesResponse = _reflection.GeneratedProtocolMessageType('ListDatabasesResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTDATABASESRESPONSE,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The response for
  [ListDatabases][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases].
  
  
  Attributes:
      databases:
          Databases that matched the request.
      next_page_token:
          ``next_page_token`` can be sent in a subsequent [ListDatabases
          ][google.spanner.admin.database.v1.DatabaseAdmin.ListDatabases
          ] call to fetch more of the matching databases.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.ListDatabasesResponse)
  ))
_sym_db.RegisterMessage(ListDatabasesResponse)

CreateDatabaseRequest = _reflection.GeneratedProtocolMessageType('CreateDatabaseRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEDATABASEREQUEST,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The request for
  [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase].
  
  
  Attributes:
      parent:
          Required. The name of the instance that will serve the new
          database. Values are of the form
          ``projects/<project>/instances/<instance>``.
      create_statement:
          Required. A ``CREATE DATABASE`` statement, which specifies the
          ID of the new database. The database ID must conform to the
          regular expression ``[a-z][a-z0-9_\-]*[a-z0-9]`` and be
          between 2 and 30 characters in length. If the database ID is a
          reserved word or if it contains a hyphen, the database ID must
          be enclosed in backticks (`````).
      extra_statements:
          An optional list of DDL statements to run inside the newly
          created database. Statements can create tables, indexes, etc.
          These statements execute atomically with the creation of the
          database: if there is an error in any statement, the database
          is not created.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.CreateDatabaseRequest)
  ))
_sym_db.RegisterMessage(CreateDatabaseRequest)

CreateDatabaseMetadata = _reflection.GeneratedProtocolMessageType('CreateDatabaseMetadata', (_message.Message,), dict(
  DESCRIPTOR = _CREATEDATABASEMETADATA,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """Metadata type for the operation returned by
  [CreateDatabase][google.spanner.admin.database.v1.DatabaseAdmin.CreateDatabase].
  
  
  Attributes:
      database:
          The database being created.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.CreateDatabaseMetadata)
  ))
_sym_db.RegisterMessage(CreateDatabaseMetadata)

GetDatabaseRequest = _reflection.GeneratedProtocolMessageType('GetDatabaseRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETDATABASEREQUEST,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The request for
  [GetDatabase][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabase].
  
  
  Attributes:
      name:
          Required. The name of the requested database. Values are of
          the form ``projects/<project>/instances/<instance>/databases/<
          database>``.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.GetDatabaseRequest)
  ))
_sym_db.RegisterMessage(GetDatabaseRequest)

UpdateDatabaseDdlRequest = _reflection.GeneratedProtocolMessageType('UpdateDatabaseDdlRequest', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEDATABASEDDLREQUEST,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """Enqueues the given DDL statements to be applied, in order but not
  necessarily all at once, to the database schema at some point (or
  points) in the future. The server checks that the statements are
  executable (syntactically valid, name tables that exist, etc.) before
  enqueueing them, but they may still fail upon later execution (e.g., if
  a statement from another batch of statements is applied first and it
  conflicts in some way, or if there is some data-related problem like a
  ``NULL`` value in a column to which ``NOT NULL`` would be added). If a
  statement fails, all subsequent statements in the batch are
  automatically cancelled.
  
  Each batch of statements is assigned a name which can be used with the
  [Operations][google.longrunning.Operations] API to monitor progress. See
  the
  [operation\_id][google.spanner.admin.database.v1.UpdateDatabaseDdlRequest.operation\_id]
  field for more details.
  
  
  Attributes:
      database:
          Required. The database to update.
      statements:
          DDL statements to be applied to the database.
      operation_id:
          If empty, the new update request is assigned an automatically-
          generated operation ID. Otherwise, ``operation_id`` is used to
          construct the name of the resulting
          [Operation][google.longrunning.Operation].  Specifying an
          explicit operation ID simplifies determining whether the
          statements were executed in the event that the [UpdateDatabase
          Ddl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateData
          baseDdl] call is replayed, or the return value is otherwise
          lost: the [database][google.spanner.admin.database.v1.UpdateDa
          tabaseDdlRequest.database] and ``operation_id`` fields can be
          combined to form the [name][google.longrunning.Operation.name]
          of the resulting
          [longrunning.Operation][google.longrunning.Operation]:
          ``<database>/operations/<operation_id>``.  ``operation_id``
          should be unique within the database, and must be a valid
          identifier: ``[a-z][a-z0-9_]*``. Note that automatically-
          generated operation IDs always begin with an underscore. If
          the named operation already exists, [UpdateDatabaseDdl][google
          .spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl]
          returns ``ALREADY_EXISTS``.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.UpdateDatabaseDdlRequest)
  ))
_sym_db.RegisterMessage(UpdateDatabaseDdlRequest)

UpdateDatabaseDdlMetadata = _reflection.GeneratedProtocolMessageType('UpdateDatabaseDdlMetadata', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEDATABASEDDLMETADATA,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """Metadata type for the operation returned by
  [UpdateDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.UpdateDatabaseDdl].
  
  
  Attributes:
      database:
          The database being modified.
      statements:
          For an update this list contains all the statements. For an
          individual statement, this list contains only that statement.
      commit_timestamps:
          Reports the commit timestamps of all statements that have
          succeeded so far, where ``commit_timestamps[i]`` is the commit
          timestamp for the statement ``statements[i]``.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata)
  ))
_sym_db.RegisterMessage(UpdateDatabaseDdlMetadata)

DropDatabaseRequest = _reflection.GeneratedProtocolMessageType('DropDatabaseRequest', (_message.Message,), dict(
  DESCRIPTOR = _DROPDATABASEREQUEST,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The request for
  [DropDatabase][google.spanner.admin.database.v1.DatabaseAdmin.DropDatabase].
  
  
  Attributes:
      database:
          Required. The database to be dropped.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.DropDatabaseRequest)
  ))
_sym_db.RegisterMessage(DropDatabaseRequest)

GetDatabaseDdlRequest = _reflection.GeneratedProtocolMessageType('GetDatabaseDdlRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETDATABASEDDLREQUEST,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The request for
  [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl].
  
  
  Attributes:
      database:
          Required. The database whose schema we wish to get.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.GetDatabaseDdlRequest)
  ))
_sym_db.RegisterMessage(GetDatabaseDdlRequest)

GetDatabaseDdlResponse = _reflection.GeneratedProtocolMessageType('GetDatabaseDdlResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETDATABASEDDLRESPONSE,
  __module__ = 'google.cloud.spanner.admin.database_v1.proto.spanner_database_admin_pb2'
  ,
  __doc__ = """The response for
  [GetDatabaseDdl][google.spanner.admin.database.v1.DatabaseAdmin.GetDatabaseDdl].
  
  
  Attributes:
      statements:
          A list of formatted DDL statements defining the schema of the
          database specified in the request.
  """,
  # @@protoc_insertion_point(class_scope:google.spanner.admin.database.v1.GetDatabaseDdlResponse)
  ))
_sym_db.RegisterMessage(GetDatabaseDdlResponse)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n$com.google.spanner.admin.database.v1B\031SpannerDatabaseAdminProtoP\001ZHgoogle.golang.org/genproto/googleapis/spanner/admin/database/v1;database\252\002&Google.Cloud.Spanner.Admin.Database.V1\312\002&Google\\Cloud\\Spanner\\Admin\\Database\\V1'))
try:
  # THESE ELEMENTS WILL BE DEPRECATED.
  # Please use the generated *_pb2_grpc.py files instead.
  import grpc
  from grpc.beta import implementations as beta_implementations
  from grpc.beta import interfaces as beta_interfaces
  from grpc.framework.common import cardinality
  from grpc.framework.interfaces.face import utilities as face_utilities


  class DatabaseAdminStub(object):
    """Cloud Spanner Database Admin API

    The Cloud Spanner Database Admin API can be used to create, drop, and
    list databases. It also enables updating the schema of pre-existing
    databases.
    """

    def __init__(self, channel):
      """Constructor.

      Args:
        channel: A grpc.Channel.
      """
      self.ListDatabases = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/ListDatabases',
          request_serializer=ListDatabasesRequest.SerializeToString,
          response_deserializer=ListDatabasesResponse.FromString,
          )
      self.CreateDatabase = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/CreateDatabase',
          request_serializer=CreateDatabaseRequest.SerializeToString,
          response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString,
          )
      self.GetDatabase = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/GetDatabase',
          request_serializer=GetDatabaseRequest.SerializeToString,
          response_deserializer=Database.FromString,
          )
      self.UpdateDatabaseDdl = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/UpdateDatabaseDdl',
          request_serializer=UpdateDatabaseDdlRequest.SerializeToString,
          response_deserializer=google_dot_longrunning_dot_operations__pb2.Operation.FromString,
          )
      self.DropDatabase = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/DropDatabase',
          request_serializer=DropDatabaseRequest.SerializeToString,
          response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          )
      self.GetDatabaseDdl = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/GetDatabaseDdl',
          request_serializer=GetDatabaseDdlRequest.SerializeToString,
          response_deserializer=GetDatabaseDdlResponse.FromString,
          )
      self.SetIamPolicy = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/SetIamPolicy',
          request_serializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.SetIamPolicyRequest.SerializeToString,
          response_deserializer=google_dot_iam_dot_v1_dot_policy__pb2.Policy.FromString,
          )
      self.GetIamPolicy = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/GetIamPolicy',
          request_serializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.GetIamPolicyRequest.SerializeToString,
          response_deserializer=google_dot_iam_dot_v1_dot_policy__pb2.Policy.FromString,
          )
      self.TestIamPermissions = channel.unary_unary(
          '/google.spanner.admin.database.v1.DatabaseAdmin/TestIamPermissions',
          request_serializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsRequest.SerializeToString,
          response_deserializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsResponse.FromString,
          )


  class DatabaseAdminServicer(object):
    """Cloud Spanner Database Admin API

    The Cloud Spanner Database Admin API can be used to create, drop, and
    list databases. It also enables updating the schema of pre-existing
    databases.
    """

    def ListDatabases(self, request, context):
      """Lists Cloud Spanner databases.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def CreateDatabase(self, request, context):
      """Creates a new Cloud Spanner database and starts to prepare it for serving.
      The returned [long-running operation][google.longrunning.Operation] will
      have a name of the format `<database_name>/operations/<operation_id>` and
      can be used to track preparation of the database. The
      [metadata][google.longrunning.Operation.metadata] field type is
      [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The
      [response][google.longrunning.Operation.response] field type is
      [Database][google.spanner.admin.database.v1.Database], if successful.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetDatabase(self, request, context):
      """Gets the state of a Cloud Spanner database.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def UpdateDatabaseDdl(self, request, context):
      """Updates the schema of a Cloud Spanner database by
      creating/altering/dropping tables, columns, indexes, etc. The returned
      [long-running operation][google.longrunning.Operation] will have a name of
      the format `<database_name>/operations/<operation_id>` and can be used to
      track execution of the schema change(s). The
      [metadata][google.longrunning.Operation.metadata] field type is
      [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata].  The operation has no response.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def DropDatabase(self, request, context):
      """Drops (aka deletes) a Cloud Spanner database.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetDatabaseDdl(self, request, context):
      """Returns the schema of a Cloud Spanner database as a list of formatted
      DDL statements. This method does not show pending schema updates, those may
      be queried using the [Operations][google.longrunning.Operations] API.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def SetIamPolicy(self, request, context):
      """Sets the access control policy on a database resource. Replaces any
      existing policy.

      Authorization requires `spanner.databases.setIamPolicy` permission on
      [resource][google.iam.v1.SetIamPolicyRequest.resource].
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetIamPolicy(self, request, context):
      """Gets the access control policy for a database resource. Returns an empty
      policy if a database exists but does not have a policy set.

      Authorization requires `spanner.databases.getIamPolicy` permission on
      [resource][google.iam.v1.GetIamPolicyRequest.resource].
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def TestIamPermissions(self, request, context):
      """Returns permissions that the caller has on the specified database resource.

      Attempting this RPC on a non-existent Cloud Spanner database will result in
      a NOT_FOUND error if the user has `spanner.databases.list` permission on
      the containing Cloud Spanner instance. Otherwise returns an empty set of
      permissions.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_DatabaseAdminServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'ListDatabases': grpc.unary_unary_rpc_method_handler(
            servicer.ListDatabases,
            request_deserializer=ListDatabasesRequest.FromString,
            response_serializer=ListDatabasesResponse.SerializeToString,
        ),
        'CreateDatabase': grpc.unary_unary_rpc_method_handler(
            servicer.CreateDatabase,
            request_deserializer=CreateDatabaseRequest.FromString,
            response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString,
        ),
        'GetDatabase': grpc.unary_unary_rpc_method_handler(
            servicer.GetDatabase,
            request_deserializer=GetDatabaseRequest.FromString,
            response_serializer=Database.SerializeToString,
        ),
        'UpdateDatabaseDdl': grpc.unary_unary_rpc_method_handler(
            servicer.UpdateDatabaseDdl,
            request_deserializer=UpdateDatabaseDdlRequest.FromString,
            response_serializer=google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString,
        ),
        'DropDatabase': grpc.unary_unary_rpc_method_handler(
            servicer.DropDatabase,
            request_deserializer=DropDatabaseRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        'GetDatabaseDdl': grpc.unary_unary_rpc_method_handler(
            servicer.GetDatabaseDdl,
            request_deserializer=GetDatabaseDdlRequest.FromString,
            response_serializer=GetDatabaseDdlResponse.SerializeToString,
        ),
        'SetIamPolicy': grpc.unary_unary_rpc_method_handler(
            servicer.SetIamPolicy,
            request_deserializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.SetIamPolicyRequest.FromString,
            response_serializer=google_dot_iam_dot_v1_dot_policy__pb2.Policy.SerializeToString,
        ),
        'GetIamPolicy': grpc.unary_unary_rpc_method_handler(
            servicer.GetIamPolicy,
            request_deserializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.GetIamPolicyRequest.FromString,
            response_serializer=google_dot_iam_dot_v1_dot_policy__pb2.Policy.SerializeToString,
        ),
        'TestIamPermissions': grpc.unary_unary_rpc_method_handler(
            servicer.TestIamPermissions,
            request_deserializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsRequest.FromString,
            response_serializer=google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'google.spanner.admin.database.v1.DatabaseAdmin', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class BetaDatabaseAdminServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """Cloud Spanner Database Admin API

    The Cloud Spanner Database Admin API can be used to create, drop, and
    list databases. It also enables updating the schema of pre-existing
    databases.
    """
    def ListDatabases(self, request, context):
      """Lists Cloud Spanner databases.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def CreateDatabase(self, request, context):
      """Creates a new Cloud Spanner database and starts to prepare it for serving.
      The returned [long-running operation][google.longrunning.Operation] will
      have a name of the format `<database_name>/operations/<operation_id>` and
      can be used to track preparation of the database. The
      [metadata][google.longrunning.Operation.metadata] field type is
      [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The
      [response][google.longrunning.Operation.response] field type is
      [Database][google.spanner.admin.database.v1.Database], if successful.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetDatabase(self, request, context):
      """Gets the state of a Cloud Spanner database.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def UpdateDatabaseDdl(self, request, context):
      """Updates the schema of a Cloud Spanner database by
      creating/altering/dropping tables, columns, indexes, etc. The returned
      [long-running operation][google.longrunning.Operation] will have a name of
      the format `<database_name>/operations/<operation_id>` and can be used to
      track execution of the schema change(s). The
      [metadata][google.longrunning.Operation.metadata] field type is
      [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata].  The operation has no response.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def DropDatabase(self, request, context):
      """Drops (aka deletes) a Cloud Spanner database.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetDatabaseDdl(self, request, context):
      """Returns the schema of a Cloud Spanner database as a list of formatted
      DDL statements. This method does not show pending schema updates, those may
      be queried using the [Operations][google.longrunning.Operations] API.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def SetIamPolicy(self, request, context):
      """Sets the access control policy on a database resource. Replaces any
      existing policy.

      Authorization requires `spanner.databases.setIamPolicy` permission on
      [resource][google.iam.v1.SetIamPolicyRequest.resource].
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetIamPolicy(self, request, context):
      """Gets the access control policy for a database resource. Returns an empty
      policy if a database exists but does not have a policy set.

      Authorization requires `spanner.databases.getIamPolicy` permission on
      [resource][google.iam.v1.GetIamPolicyRequest.resource].
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def TestIamPermissions(self, request, context):
      """Returns permissions that the caller has on the specified database resource.

      Attempting this RPC on a non-existent Cloud Spanner database will result in
      a NOT_FOUND error if the user has `spanner.databases.list` permission on
      the containing Cloud Spanner instance. Otherwise returns an empty set of
      permissions.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaDatabaseAdminStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """Cloud Spanner Database Admin API

    The Cloud Spanner Database Admin API can be used to create, drop, and
    list databases. It also enables updating the schema of pre-existing
    databases.
    """
    def ListDatabases(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Lists Cloud Spanner databases.
      """
      raise NotImplementedError()
    ListDatabases.future = None
    def CreateDatabase(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Creates a new Cloud Spanner database and starts to prepare it for serving.
      The returned [long-running operation][google.longrunning.Operation] will
      have a name of the format `<database_name>/operations/<operation_id>` and
      can be used to track preparation of the database. The
      [metadata][google.longrunning.Operation.metadata] field type is
      [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The
      [response][google.longrunning.Operation.response] field type is
      [Database][google.spanner.admin.database.v1.Database], if successful.
      """
      raise NotImplementedError()
    CreateDatabase.future = None
    def GetDatabase(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Gets the state of a Cloud Spanner database.
      """
      raise NotImplementedError()
    GetDatabase.future = None
    def UpdateDatabaseDdl(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Updates the schema of a Cloud Spanner database by
      creating/altering/dropping tables, columns, indexes, etc. The returned
      [long-running operation][google.longrunning.Operation] will have a name of
      the format `<database_name>/operations/<operation_id>` and can be used to
      track execution of the schema change(s). The
      [metadata][google.longrunning.Operation.metadata] field type is
      [UpdateDatabaseDdlMetadata][google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata].  The operation has no response.
      """
      raise NotImplementedError()
    UpdateDatabaseDdl.future = None
    def DropDatabase(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Drops (aka deletes) a Cloud Spanner database.
      """
      raise NotImplementedError()
    DropDatabase.future = None
    def GetDatabaseDdl(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Returns the schema of a Cloud Spanner database as a list of formatted
      DDL statements. This method does not show pending schema updates, those may
      be queried using the [Operations][google.longrunning.Operations] API.
      """
      raise NotImplementedError()
    GetDatabaseDdl.future = None
    def SetIamPolicy(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Sets the access control policy on a database resource. Replaces any
      existing policy.

      Authorization requires `spanner.databases.setIamPolicy` permission on
      [resource][google.iam.v1.SetIamPolicyRequest.resource].
      """
      raise NotImplementedError()
    SetIamPolicy.future = None
    def GetIamPolicy(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Gets the access control policy for a database resource. Returns an empty
      policy if a database exists but does not have a policy set.

      Authorization requires `spanner.databases.getIamPolicy` permission on
      [resource][google.iam.v1.GetIamPolicyRequest.resource].
      """
      raise NotImplementedError()
    GetIamPolicy.future = None
    def TestIamPermissions(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Returns permissions that the caller has on the specified database resource.

      Attempting this RPC on a non-existent Cloud Spanner database will result in
      a NOT_FOUND error if the user has `spanner.databases.list` permission on
      the containing Cloud Spanner instance. Otherwise returns an empty set of
      permissions.
      """
      raise NotImplementedError()
    TestIamPermissions.future = None


  def beta_create_DatabaseAdmin_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'CreateDatabase'): CreateDatabaseRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'DropDatabase'): DropDatabaseRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabase'): GetDatabaseRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabaseDdl'): GetDatabaseDdlRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetIamPolicy'): google_dot_iam_dot_v1_dot_iam__policy__pb2.GetIamPolicyRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'ListDatabases'): ListDatabasesRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'SetIamPolicy'): google_dot_iam_dot_v1_dot_iam__policy__pb2.SetIamPolicyRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'TestIamPermissions'): google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsRequest.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'UpdateDatabaseDdl'): UpdateDatabaseDdlRequest.FromString,
    }
    response_serializers = {
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'CreateDatabase'): google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'DropDatabase'): google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabase'): Database.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabaseDdl'): GetDatabaseDdlResponse.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetIamPolicy'): google_dot_iam_dot_v1_dot_policy__pb2.Policy.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'ListDatabases'): ListDatabasesResponse.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'SetIamPolicy'): google_dot_iam_dot_v1_dot_policy__pb2.Policy.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'TestIamPermissions'): google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsResponse.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'UpdateDatabaseDdl'): google_dot_longrunning_dot_operations__pb2.Operation.SerializeToString,
    }
    method_implementations = {
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'CreateDatabase'): face_utilities.unary_unary_inline(servicer.CreateDatabase),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'DropDatabase'): face_utilities.unary_unary_inline(servicer.DropDatabase),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabase'): face_utilities.unary_unary_inline(servicer.GetDatabase),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabaseDdl'): face_utilities.unary_unary_inline(servicer.GetDatabaseDdl),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetIamPolicy'): face_utilities.unary_unary_inline(servicer.GetIamPolicy),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'ListDatabases'): face_utilities.unary_unary_inline(servicer.ListDatabases),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'SetIamPolicy'): face_utilities.unary_unary_inline(servicer.SetIamPolicy),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'TestIamPermissions'): face_utilities.unary_unary_inline(servicer.TestIamPermissions),
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'UpdateDatabaseDdl'): face_utilities.unary_unary_inline(servicer.UpdateDatabaseDdl),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_DatabaseAdmin_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'CreateDatabase'): CreateDatabaseRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'DropDatabase'): DropDatabaseRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabase'): GetDatabaseRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabaseDdl'): GetDatabaseDdlRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetIamPolicy'): google_dot_iam_dot_v1_dot_iam__policy__pb2.GetIamPolicyRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'ListDatabases'): ListDatabasesRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'SetIamPolicy'): google_dot_iam_dot_v1_dot_iam__policy__pb2.SetIamPolicyRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'TestIamPermissions'): google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsRequest.SerializeToString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'UpdateDatabaseDdl'): UpdateDatabaseDdlRequest.SerializeToString,
    }
    response_deserializers = {
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'CreateDatabase'): google_dot_longrunning_dot_operations__pb2.Operation.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'DropDatabase'): google_dot_protobuf_dot_empty__pb2.Empty.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabase'): Database.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetDatabaseDdl'): GetDatabaseDdlResponse.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'GetIamPolicy'): google_dot_iam_dot_v1_dot_policy__pb2.Policy.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'ListDatabases'): ListDatabasesResponse.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'SetIamPolicy'): google_dot_iam_dot_v1_dot_policy__pb2.Policy.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'TestIamPermissions'): google_dot_iam_dot_v1_dot_iam__policy__pb2.TestIamPermissionsResponse.FromString,
      ('google.spanner.admin.database.v1.DatabaseAdmin', 'UpdateDatabaseDdl'): google_dot_longrunning_dot_operations__pb2.Operation.FromString,
    }
    cardinalities = {
      'CreateDatabase': cardinality.Cardinality.UNARY_UNARY,
      'DropDatabase': cardinality.Cardinality.UNARY_UNARY,
      'GetDatabase': cardinality.Cardinality.UNARY_UNARY,
      'GetDatabaseDdl': cardinality.Cardinality.UNARY_UNARY,
      'GetIamPolicy': cardinality.Cardinality.UNARY_UNARY,
      'ListDatabases': cardinality.Cardinality.UNARY_UNARY,
      'SetIamPolicy': cardinality.Cardinality.UNARY_UNARY,
      'TestIamPermissions': cardinality.Cardinality.UNARY_UNARY,
      'UpdateDatabaseDdl': cardinality.Cardinality.UNARY_UNARY,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'google.spanner.admin.database.v1.DatabaseAdmin', cardinalities, options=stub_options)
except ImportError:
  pass
# @@protoc_insertion_point(module_scope)
