def list(self, project, instance, service_account_file=""):
        stub = database_pb2_grpc.SpannerDatabaseServiceStub(channel.Channel())
        request = database_pb2.ListSpannerDatabaseRequest()
        request.service_account_file = service_account_file
        request.Project = project

        request.Instance = instance

        return stub.ListSpannerDatabase(request).items
    def delete(self, project, instance, name, service_account_file=""):
        stub = database_pb2_grpc.SpannerDatabaseServiceStub(channel.Channel())
        request = database_pb2.DeleteSpannerDatabaseRequest()
        request.service_account_file = service_account_file
        request.Project = project

        request.Instance = instance

        request.Name = name

        response = stub.DeleteSpannerDatabase(request)
    def delete(self):
        stub = database_pb2_grpc.SpannerDatabaseServiceStub(channel.Channel())
        request = database_pb2.DeleteSpannerDatabaseRequest()
        request.service_account_file = self.service_account_file
        if Primitive.to_proto(self.name):
            request.resource.name = Primitive.to_proto(self.name)

        if Primitive.to_proto(self.instance):
            request.resource.instance = Primitive.to_proto(self.instance)

        if Primitive.to_proto(self.project):
            request.resource.project = Primitive.to_proto(self.project)

        if Primitive.to_proto(self.ddl):
            request.resource.ddl.extend(Primitive.to_proto(self.ddl))
        response = stub.DeleteSpannerDatabase(request)
    def apply(self):
        stub = database_pb2_grpc.SpannerDatabaseServiceStub(channel.Channel())
        request = database_pb2.ApplySpannerDatabaseRequest()
        if Primitive.to_proto(self.name):
            request.resource.name = Primitive.to_proto(self.name)

        if Primitive.to_proto(self.instance):
            request.resource.instance = Primitive.to_proto(self.instance)

        if Primitive.to_proto(self.project):
            request.resource.project = Primitive.to_proto(self.project)

        if Primitive.to_proto(self.ddl):
            request.resource.ddl.extend(Primitive.to_proto(self.ddl))
        request.service_account_file = self.service_account_file

        response = stub.ApplySpannerDatabase(request)
        self.name = Primitive.from_proto(response.name)
        self.instance = Primitive.from_proto(response.instance)
        self.state = DatabaseStateEnum.from_proto(response.state)
        self.project = Primitive.from_proto(response.project)
        self.ddl = Primitive.from_proto(response.ddl)