# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from . import minio_service_pb2 as minio__service__pb2

GRPC_GENERATED_VERSION = '1.75.1'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in minio_service_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class MinIOServiceStub(object):
    """========================================
    MinIO 对象存储服务
    ========================================
    这是一个通用的对象存储服务，为所有后端服务提供文件存储能力
    支持：
    - 用户和组织级别的隔离
    - 桶（Bucket）和对象（Object）管理
    - 流式上传/下载（支持大文件）
    - 预签名 URL（临时访问链接）
    - 对象元数据管理

    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.CreateBucket = channel.unary_unary(
                '/isa.minio.MinIOService/CreateBucket',
                request_serializer=minio__service__pb2.CreateBucketRequest.SerializeToString,
                response_deserializer=minio__service__pb2.CreateBucketResponse.FromString,
                _registered_method=True)
        self.ListBuckets = channel.unary_unary(
                '/isa.minio.MinIOService/ListBuckets',
                request_serializer=minio__service__pb2.ListBucketsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.ListBucketsResponse.FromString,
                _registered_method=True)
        self.DeleteBucket = channel.unary_unary(
                '/isa.minio.MinIOService/DeleteBucket',
                request_serializer=minio__service__pb2.DeleteBucketRequest.SerializeToString,
                response_deserializer=minio__service__pb2.DeleteBucketResponse.FromString,
                _registered_method=True)
        self.GetBucketInfo = channel.unary_unary(
                '/isa.minio.MinIOService/GetBucketInfo',
                request_serializer=minio__service__pb2.GetBucketInfoRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetBucketInfoResponse.FromString,
                _registered_method=True)
        self.SetBucketPolicy = channel.unary_unary(
                '/isa.minio.MinIOService/SetBucketPolicy',
                request_serializer=minio__service__pb2.SetBucketPolicyRequest.SerializeToString,
                response_deserializer=minio__service__pb2.SetBucketPolicyResponse.FromString,
                _registered_method=True)
        self.GetBucketPolicy = channel.unary_unary(
                '/isa.minio.MinIOService/GetBucketPolicy',
                request_serializer=minio__service__pb2.GetBucketPolicyRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetBucketPolicyResponse.FromString,
                _registered_method=True)
        self.SetBucketTags = channel.unary_unary(
                '/isa.minio.MinIOService/SetBucketTags',
                request_serializer=minio__service__pb2.SetBucketTagsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.SetBucketTagsResponse.FromString,
                _registered_method=True)
        self.GetBucketTags = channel.unary_unary(
                '/isa.minio.MinIOService/GetBucketTags',
                request_serializer=minio__service__pb2.GetBucketTagsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetBucketTagsResponse.FromString,
                _registered_method=True)
        self.DeleteBucketTags = channel.unary_unary(
                '/isa.minio.MinIOService/DeleteBucketTags',
                request_serializer=minio__service__pb2.DeleteBucketTagsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.DeleteBucketTagsResponse.FromString,
                _registered_method=True)
        self.SetBucketVersioning = channel.unary_unary(
                '/isa.minio.MinIOService/SetBucketVersioning',
                request_serializer=minio__service__pb2.SetBucketVersioningRequest.SerializeToString,
                response_deserializer=minio__service__pb2.SetBucketVersioningResponse.FromString,
                _registered_method=True)
        self.GetBucketVersioning = channel.unary_unary(
                '/isa.minio.MinIOService/GetBucketVersioning',
                request_serializer=minio__service__pb2.GetBucketVersioningRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetBucketVersioningResponse.FromString,
                _registered_method=True)
        self.SetBucketLifecycle = channel.unary_unary(
                '/isa.minio.MinIOService/SetBucketLifecycle',
                request_serializer=minio__service__pb2.SetBucketLifecycleRequest.SerializeToString,
                response_deserializer=minio__service__pb2.SetBucketLifecycleResponse.FromString,
                _registered_method=True)
        self.GetBucketLifecycle = channel.unary_unary(
                '/isa.minio.MinIOService/GetBucketLifecycle',
                request_serializer=minio__service__pb2.GetBucketLifecycleRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetBucketLifecycleResponse.FromString,
                _registered_method=True)
        self.DeleteBucketLifecycle = channel.unary_unary(
                '/isa.minio.MinIOService/DeleteBucketLifecycle',
                request_serializer=minio__service__pb2.DeleteBucketLifecycleRequest.SerializeToString,
                response_deserializer=minio__service__pb2.DeleteBucketLifecycleResponse.FromString,
                _registered_method=True)
        self.PutObject = channel.stream_unary(
                '/isa.minio.MinIOService/PutObject',
                request_serializer=minio__service__pb2.PutObjectRequest.SerializeToString,
                response_deserializer=minio__service__pb2.PutObjectResponse.FromString,
                _registered_method=True)
        self.GetObject = channel.unary_stream(
                '/isa.minio.MinIOService/GetObject',
                request_serializer=minio__service__pb2.GetObjectRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetObjectResponse.FromString,
                _registered_method=True)
        self.DeleteObject = channel.unary_unary(
                '/isa.minio.MinIOService/DeleteObject',
                request_serializer=minio__service__pb2.DeleteObjectRequest.SerializeToString,
                response_deserializer=minio__service__pb2.DeleteObjectResponse.FromString,
                _registered_method=True)
        self.DeleteObjects = channel.unary_unary(
                '/isa.minio.MinIOService/DeleteObjects',
                request_serializer=minio__service__pb2.DeleteObjectsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.DeleteObjectsResponse.FromString,
                _registered_method=True)
        self.ListObjects = channel.unary_unary(
                '/isa.minio.MinIOService/ListObjects',
                request_serializer=minio__service__pb2.ListObjectsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.ListObjectsResponse.FromString,
                _registered_method=True)
        self.CopyObject = channel.unary_unary(
                '/isa.minio.MinIOService/CopyObject',
                request_serializer=minio__service__pb2.CopyObjectRequest.SerializeToString,
                response_deserializer=minio__service__pb2.CopyObjectResponse.FromString,
                _registered_method=True)
        self.StatObject = channel.unary_unary(
                '/isa.minio.MinIOService/StatObject',
                request_serializer=minio__service__pb2.StatObjectRequest.SerializeToString,
                response_deserializer=minio__service__pb2.StatObjectResponse.FromString,
                _registered_method=True)
        self.SetObjectTags = channel.unary_unary(
                '/isa.minio.MinIOService/SetObjectTags',
                request_serializer=minio__service__pb2.SetObjectTagsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.SetObjectTagsResponse.FromString,
                _registered_method=True)
        self.GetObjectTags = channel.unary_unary(
                '/isa.minio.MinIOService/GetObjectTags',
                request_serializer=minio__service__pb2.GetObjectTagsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetObjectTagsResponse.FromString,
                _registered_method=True)
        self.DeleteObjectTags = channel.unary_unary(
                '/isa.minio.MinIOService/DeleteObjectTags',
                request_serializer=minio__service__pb2.DeleteObjectTagsRequest.SerializeToString,
                response_deserializer=minio__service__pb2.DeleteObjectTagsResponse.FromString,
                _registered_method=True)
        self.GetPresignedURL = channel.unary_unary(
                '/isa.minio.MinIOService/GetPresignedURL',
                request_serializer=minio__service__pb2.GetPresignedURLRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetPresignedURLResponse.FromString,
                _registered_method=True)
        self.GetPresignedPutURL = channel.unary_unary(
                '/isa.minio.MinIOService/GetPresignedPutURL',
                request_serializer=minio__service__pb2.GetPresignedPutURLRequest.SerializeToString,
                response_deserializer=minio__service__pb2.GetPresignedPutURLResponse.FromString,
                _registered_method=True)
        self.InitiateMultipartUpload = channel.unary_unary(
                '/isa.minio.MinIOService/InitiateMultipartUpload',
                request_serializer=minio__service__pb2.InitiateMultipartUploadRequest.SerializeToString,
                response_deserializer=minio__service__pb2.InitiateMultipartUploadResponse.FromString,
                _registered_method=True)
        self.UploadPart = channel.stream_unary(
                '/isa.minio.MinIOService/UploadPart',
                request_serializer=minio__service__pb2.UploadPartRequest.SerializeToString,
                response_deserializer=minio__service__pb2.UploadPartResponse.FromString,
                _registered_method=True)
        self.CompleteMultipartUpload = channel.unary_unary(
                '/isa.minio.MinIOService/CompleteMultipartUpload',
                request_serializer=minio__service__pb2.CompleteMultipartUploadRequest.SerializeToString,
                response_deserializer=minio__service__pb2.CompleteMultipartUploadResponse.FromString,
                _registered_method=True)
        self.AbortMultipartUpload = channel.unary_unary(
                '/isa.minio.MinIOService/AbortMultipartUpload',
                request_serializer=minio__service__pb2.AbortMultipartUploadRequest.SerializeToString,
                response_deserializer=minio__service__pb2.AbortMultipartUploadResponse.FromString,
                _registered_method=True)
        self.HealthCheck = channel.unary_unary(
                '/isa.minio.MinIOService/HealthCheck',
                request_serializer=minio__service__pb2.MinIOHealthCheckRequest.SerializeToString,
                response_deserializer=minio__service__pb2.MinIOHealthCheckResponse.FromString,
                _registered_method=True)


class MinIOServiceServicer(object):
    """========================================
    MinIO 对象存储服务
    ========================================
    这是一个通用的对象存储服务，为所有后端服务提供文件存储能力
    支持：
    - 用户和组织级别的隔离
    - 桶（Bucket）和对象（Object）管理
    - 流式上传/下载（支持大文件）
    - 预签名 URL（临时访问链接）
    - 对象元数据管理

    """

    def CreateBucket(self, request, context):
        """========== 桶管理 ==========
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListBuckets(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteBucket(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBucketInfo(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetBucketPolicy(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBucketPolicy(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetBucketTags(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBucketTags(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteBucketTags(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetBucketVersioning(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBucketVersioning(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetBucketLifecycle(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBucketLifecycle(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteBucketLifecycle(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PutObject(self, request_iterator, context):
        """========== 对象操作 ==========
        流式上传（支持大文件分块上传）
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetObject(self, request, context):
        """流式下载（支持大文件分块下载）
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteObject(self, request, context):
        """删除对象
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteObjects(self, request, context):
        """批量删除对象
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListObjects(self, request, context):
        """列出对象
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CopyObject(self, request, context):
        """复制对象
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StatObject(self, request, context):
        """获取对象信息（不下载内容）
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetObjectTags(self, request, context):
        """对象标签管理
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetObjectTags(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteObjectTags(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetPresignedURL(self, request, context):
        """========== 预签名 URL ==========
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetPresignedPutURL(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InitiateMultipartUpload(self, request, context):
        """========== 多部分上传 ==========
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UploadPart(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CompleteMultipartUpload(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def AbortMultipartUpload(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def HealthCheck(self, request, context):
        """========== 健康检查 ==========
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_MinIOServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'CreateBucket': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateBucket,
                    request_deserializer=minio__service__pb2.CreateBucketRequest.FromString,
                    response_serializer=minio__service__pb2.CreateBucketResponse.SerializeToString,
            ),
            'ListBuckets': grpc.unary_unary_rpc_method_handler(
                    servicer.ListBuckets,
                    request_deserializer=minio__service__pb2.ListBucketsRequest.FromString,
                    response_serializer=minio__service__pb2.ListBucketsResponse.SerializeToString,
            ),
            'DeleteBucket': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteBucket,
                    request_deserializer=minio__service__pb2.DeleteBucketRequest.FromString,
                    response_serializer=minio__service__pb2.DeleteBucketResponse.SerializeToString,
            ),
            'GetBucketInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBucketInfo,
                    request_deserializer=minio__service__pb2.GetBucketInfoRequest.FromString,
                    response_serializer=minio__service__pb2.GetBucketInfoResponse.SerializeToString,
            ),
            'SetBucketPolicy': grpc.unary_unary_rpc_method_handler(
                    servicer.SetBucketPolicy,
                    request_deserializer=minio__service__pb2.SetBucketPolicyRequest.FromString,
                    response_serializer=minio__service__pb2.SetBucketPolicyResponse.SerializeToString,
            ),
            'GetBucketPolicy': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBucketPolicy,
                    request_deserializer=minio__service__pb2.GetBucketPolicyRequest.FromString,
                    response_serializer=minio__service__pb2.GetBucketPolicyResponse.SerializeToString,
            ),
            'SetBucketTags': grpc.unary_unary_rpc_method_handler(
                    servicer.SetBucketTags,
                    request_deserializer=minio__service__pb2.SetBucketTagsRequest.FromString,
                    response_serializer=minio__service__pb2.SetBucketTagsResponse.SerializeToString,
            ),
            'GetBucketTags': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBucketTags,
                    request_deserializer=minio__service__pb2.GetBucketTagsRequest.FromString,
                    response_serializer=minio__service__pb2.GetBucketTagsResponse.SerializeToString,
            ),
            'DeleteBucketTags': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteBucketTags,
                    request_deserializer=minio__service__pb2.DeleteBucketTagsRequest.FromString,
                    response_serializer=minio__service__pb2.DeleteBucketTagsResponse.SerializeToString,
            ),
            'SetBucketVersioning': grpc.unary_unary_rpc_method_handler(
                    servicer.SetBucketVersioning,
                    request_deserializer=minio__service__pb2.SetBucketVersioningRequest.FromString,
                    response_serializer=minio__service__pb2.SetBucketVersioningResponse.SerializeToString,
            ),
            'GetBucketVersioning': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBucketVersioning,
                    request_deserializer=minio__service__pb2.GetBucketVersioningRequest.FromString,
                    response_serializer=minio__service__pb2.GetBucketVersioningResponse.SerializeToString,
            ),
            'SetBucketLifecycle': grpc.unary_unary_rpc_method_handler(
                    servicer.SetBucketLifecycle,
                    request_deserializer=minio__service__pb2.SetBucketLifecycleRequest.FromString,
                    response_serializer=minio__service__pb2.SetBucketLifecycleResponse.SerializeToString,
            ),
            'GetBucketLifecycle': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBucketLifecycle,
                    request_deserializer=minio__service__pb2.GetBucketLifecycleRequest.FromString,
                    response_serializer=minio__service__pb2.GetBucketLifecycleResponse.SerializeToString,
            ),
            'DeleteBucketLifecycle': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteBucketLifecycle,
                    request_deserializer=minio__service__pb2.DeleteBucketLifecycleRequest.FromString,
                    response_serializer=minio__service__pb2.DeleteBucketLifecycleResponse.SerializeToString,
            ),
            'PutObject': grpc.stream_unary_rpc_method_handler(
                    servicer.PutObject,
                    request_deserializer=minio__service__pb2.PutObjectRequest.FromString,
                    response_serializer=minio__service__pb2.PutObjectResponse.SerializeToString,
            ),
            'GetObject': grpc.unary_stream_rpc_method_handler(
                    servicer.GetObject,
                    request_deserializer=minio__service__pb2.GetObjectRequest.FromString,
                    response_serializer=minio__service__pb2.GetObjectResponse.SerializeToString,
            ),
            'DeleteObject': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteObject,
                    request_deserializer=minio__service__pb2.DeleteObjectRequest.FromString,
                    response_serializer=minio__service__pb2.DeleteObjectResponse.SerializeToString,
            ),
            'DeleteObjects': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteObjects,
                    request_deserializer=minio__service__pb2.DeleteObjectsRequest.FromString,
                    response_serializer=minio__service__pb2.DeleteObjectsResponse.SerializeToString,
            ),
            'ListObjects': grpc.unary_unary_rpc_method_handler(
                    servicer.ListObjects,
                    request_deserializer=minio__service__pb2.ListObjectsRequest.FromString,
                    response_serializer=minio__service__pb2.ListObjectsResponse.SerializeToString,
            ),
            'CopyObject': grpc.unary_unary_rpc_method_handler(
                    servicer.CopyObject,
                    request_deserializer=minio__service__pb2.CopyObjectRequest.FromString,
                    response_serializer=minio__service__pb2.CopyObjectResponse.SerializeToString,
            ),
            'StatObject': grpc.unary_unary_rpc_method_handler(
                    servicer.StatObject,
                    request_deserializer=minio__service__pb2.StatObjectRequest.FromString,
                    response_serializer=minio__service__pb2.StatObjectResponse.SerializeToString,
            ),
            'SetObjectTags': grpc.unary_unary_rpc_method_handler(
                    servicer.SetObjectTags,
                    request_deserializer=minio__service__pb2.SetObjectTagsRequest.FromString,
                    response_serializer=minio__service__pb2.SetObjectTagsResponse.SerializeToString,
            ),
            'GetObjectTags': grpc.unary_unary_rpc_method_handler(
                    servicer.GetObjectTags,
                    request_deserializer=minio__service__pb2.GetObjectTagsRequest.FromString,
                    response_serializer=minio__service__pb2.GetObjectTagsResponse.SerializeToString,
            ),
            'DeleteObjectTags': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteObjectTags,
                    request_deserializer=minio__service__pb2.DeleteObjectTagsRequest.FromString,
                    response_serializer=minio__service__pb2.DeleteObjectTagsResponse.SerializeToString,
            ),
            'GetPresignedURL': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPresignedURL,
                    request_deserializer=minio__service__pb2.GetPresignedURLRequest.FromString,
                    response_serializer=minio__service__pb2.GetPresignedURLResponse.SerializeToString,
            ),
            'GetPresignedPutURL': grpc.unary_unary_rpc_method_handler(
                    servicer.GetPresignedPutURL,
                    request_deserializer=minio__service__pb2.GetPresignedPutURLRequest.FromString,
                    response_serializer=minio__service__pb2.GetPresignedPutURLResponse.SerializeToString,
            ),
            'InitiateMultipartUpload': grpc.unary_unary_rpc_method_handler(
                    servicer.InitiateMultipartUpload,
                    request_deserializer=minio__service__pb2.InitiateMultipartUploadRequest.FromString,
                    response_serializer=minio__service__pb2.InitiateMultipartUploadResponse.SerializeToString,
            ),
            'UploadPart': grpc.stream_unary_rpc_method_handler(
                    servicer.UploadPart,
                    request_deserializer=minio__service__pb2.UploadPartRequest.FromString,
                    response_serializer=minio__service__pb2.UploadPartResponse.SerializeToString,
            ),
            'CompleteMultipartUpload': grpc.unary_unary_rpc_method_handler(
                    servicer.CompleteMultipartUpload,
                    request_deserializer=minio__service__pb2.CompleteMultipartUploadRequest.FromString,
                    response_serializer=minio__service__pb2.CompleteMultipartUploadResponse.SerializeToString,
            ),
            'AbortMultipartUpload': grpc.unary_unary_rpc_method_handler(
                    servicer.AbortMultipartUpload,
                    request_deserializer=minio__service__pb2.AbortMultipartUploadRequest.FromString,
                    response_serializer=minio__service__pb2.AbortMultipartUploadResponse.SerializeToString,
            ),
            'HealthCheck': grpc.unary_unary_rpc_method_handler(
                    servicer.HealthCheck,
                    request_deserializer=minio__service__pb2.MinIOHealthCheckRequest.FromString,
                    response_serializer=minio__service__pb2.MinIOHealthCheckResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'isa.minio.MinIOService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('isa.minio.MinIOService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class MinIOService(object):
    """========================================
    MinIO 对象存储服务
    ========================================
    这是一个通用的对象存储服务，为所有后端服务提供文件存储能力
    支持：
    - 用户和组织级别的隔离
    - 桶（Bucket）和对象（Object）管理
    - 流式上传/下载（支持大文件）
    - 预签名 URL（临时访问链接）
    - 对象元数据管理

    """

    @staticmethod
    def CreateBucket(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/CreateBucket',
            minio__service__pb2.CreateBucketRequest.SerializeToString,
            minio__service__pb2.CreateBucketResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListBuckets(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/ListBuckets',
            minio__service__pb2.ListBucketsRequest.SerializeToString,
            minio__service__pb2.ListBucketsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteBucket(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/DeleteBucket',
            minio__service__pb2.DeleteBucketRequest.SerializeToString,
            minio__service__pb2.DeleteBucketResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBucketInfo(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetBucketInfo',
            minio__service__pb2.GetBucketInfoRequest.SerializeToString,
            minio__service__pb2.GetBucketInfoResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetBucketPolicy(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/SetBucketPolicy',
            minio__service__pb2.SetBucketPolicyRequest.SerializeToString,
            minio__service__pb2.SetBucketPolicyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBucketPolicy(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetBucketPolicy',
            minio__service__pb2.GetBucketPolicyRequest.SerializeToString,
            minio__service__pb2.GetBucketPolicyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetBucketTags(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/SetBucketTags',
            minio__service__pb2.SetBucketTagsRequest.SerializeToString,
            minio__service__pb2.SetBucketTagsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBucketTags(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetBucketTags',
            minio__service__pb2.GetBucketTagsRequest.SerializeToString,
            minio__service__pb2.GetBucketTagsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteBucketTags(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/DeleteBucketTags',
            minio__service__pb2.DeleteBucketTagsRequest.SerializeToString,
            minio__service__pb2.DeleteBucketTagsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetBucketVersioning(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/SetBucketVersioning',
            minio__service__pb2.SetBucketVersioningRequest.SerializeToString,
            minio__service__pb2.SetBucketVersioningResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBucketVersioning(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetBucketVersioning',
            minio__service__pb2.GetBucketVersioningRequest.SerializeToString,
            minio__service__pb2.GetBucketVersioningResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetBucketLifecycle(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/SetBucketLifecycle',
            minio__service__pb2.SetBucketLifecycleRequest.SerializeToString,
            minio__service__pb2.SetBucketLifecycleResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetBucketLifecycle(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetBucketLifecycle',
            minio__service__pb2.GetBucketLifecycleRequest.SerializeToString,
            minio__service__pb2.GetBucketLifecycleResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteBucketLifecycle(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/DeleteBucketLifecycle',
            minio__service__pb2.DeleteBucketLifecycleRequest.SerializeToString,
            minio__service__pb2.DeleteBucketLifecycleResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def PutObject(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(
            request_iterator,
            target,
            '/isa.minio.MinIOService/PutObject',
            minio__service__pb2.PutObjectRequest.SerializeToString,
            minio__service__pb2.PutObjectResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetObject(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/isa.minio.MinIOService/GetObject',
            minio__service__pb2.GetObjectRequest.SerializeToString,
            minio__service__pb2.GetObjectResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteObject(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/DeleteObject',
            minio__service__pb2.DeleteObjectRequest.SerializeToString,
            minio__service__pb2.DeleteObjectResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteObjects(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/DeleteObjects',
            minio__service__pb2.DeleteObjectsRequest.SerializeToString,
            minio__service__pb2.DeleteObjectsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListObjects(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/ListObjects',
            minio__service__pb2.ListObjectsRequest.SerializeToString,
            minio__service__pb2.ListObjectsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CopyObject(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/CopyObject',
            minio__service__pb2.CopyObjectRequest.SerializeToString,
            minio__service__pb2.CopyObjectResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StatObject(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/StatObject',
            minio__service__pb2.StatObjectRequest.SerializeToString,
            minio__service__pb2.StatObjectResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def SetObjectTags(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/SetObjectTags',
            minio__service__pb2.SetObjectTagsRequest.SerializeToString,
            minio__service__pb2.SetObjectTagsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetObjectTags(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetObjectTags',
            minio__service__pb2.GetObjectTagsRequest.SerializeToString,
            minio__service__pb2.GetObjectTagsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def DeleteObjectTags(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/DeleteObjectTags',
            minio__service__pb2.DeleteObjectTagsRequest.SerializeToString,
            minio__service__pb2.DeleteObjectTagsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetPresignedURL(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetPresignedURL',
            minio__service__pb2.GetPresignedURLRequest.SerializeToString,
            minio__service__pb2.GetPresignedURLResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetPresignedPutURL(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/GetPresignedPutURL',
            minio__service__pb2.GetPresignedPutURLRequest.SerializeToString,
            minio__service__pb2.GetPresignedPutURLResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def InitiateMultipartUpload(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/InitiateMultipartUpload',
            minio__service__pb2.InitiateMultipartUploadRequest.SerializeToString,
            minio__service__pb2.InitiateMultipartUploadResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UploadPart(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(
            request_iterator,
            target,
            '/isa.minio.MinIOService/UploadPart',
            minio__service__pb2.UploadPartRequest.SerializeToString,
            minio__service__pb2.UploadPartResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CompleteMultipartUpload(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/CompleteMultipartUpload',
            minio__service__pb2.CompleteMultipartUploadRequest.SerializeToString,
            minio__service__pb2.CompleteMultipartUploadResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def AbortMultipartUpload(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/AbortMultipartUpload',
            minio__service__pb2.AbortMultipartUploadRequest.SerializeToString,
            minio__service__pb2.AbortMultipartUploadResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def HealthCheck(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/isa.minio.MinIOService/HealthCheck',
            minio__service__pb2.MinIOHealthCheckRequest.SerializeToString,
            minio__service__pb2.MinIOHealthCheckResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
