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

from . import account_pb2 as gateway_dot_account__pb2
from . import aws_iam_role_binding_pb2 as gateway_dot_aws__iam__role__binding__pb2
from . import batch_job_pb2 as gateway_dot_batch__job__pb2
from . import cluster_pb2 as gateway_dot_cluster__pb2
from . import deployment_pb2 as gateway_dot_deployment__pb2
from . import environment_pb2 as gateway_dot_environment__pb2
from . import model_pb2 as gateway_dot_model__pb2
from . import node_pool_pb2 as gateway_dot_node__pool__pb2
from . import sign_in_pb2 as gateway_dot_sign__in__pb2
from . import snapshot_pb2 as gateway_dot_snapshot__pb2
from . import user_pb2 as gateway_dot_user__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class GatewayStub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.SignIn = channel.unary_unary(
                '/gateway.Gateway/SignIn',
                request_serializer=gateway_dot_sign__in__pb2.SignInRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetOAuthArguments = channel.unary_unary(
                '/gateway.Gateway/GetOAuthArguments',
                request_serializer=gateway_dot_sign__in__pb2.GetOAuthArgumentsRequest.SerializeToString,
                response_deserializer=gateway_dot_sign__in__pb2.GetOAuthArgumentsResponse.FromString,
                )
        self.CreateAccount = channel.unary_unary(
                '/gateway.Gateway/CreateAccount',
                request_serializer=gateway_dot_account__pb2.CreateAccountRequest.SerializeToString,
                response_deserializer=gateway_dot_account__pb2.Account.FromString,
                )
        self.GetAccount = channel.unary_unary(
                '/gateway.Gateway/GetAccount',
                request_serializer=gateway_dot_account__pb2.GetAccountRequest.SerializeToString,
                response_deserializer=gateway_dot_account__pb2.Account.FromString,
                )
        self.ListAccounts = channel.unary_unary(
                '/gateway.Gateway/ListAccounts',
                request_serializer=gateway_dot_account__pb2.ListAccountsRequest.SerializeToString,
                response_deserializer=gateway_dot_account__pb2.ListAccountsResponse.FromString,
                )
        self.UpdateAccount = channel.unary_unary(
                '/gateway.Gateway/UpdateAccount',
                request_serializer=gateway_dot_account__pb2.UpdateAccountRequest.SerializeToString,
                response_deserializer=gateway_dot_account__pb2.Account.FromString,
                )
        self.DeleteAccount = channel.unary_unary(
                '/gateway.Gateway/DeleteAccount',
                request_serializer=gateway_dot_account__pb2.DeleteAccountRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateBatchJob = channel.unary_unary(
                '/gateway.Gateway/CreateBatchJob',
                request_serializer=gateway_dot_batch__job__pb2.CreateBatchJobRequest.SerializeToString,
                response_deserializer=gateway_dot_batch__job__pb2.BatchJob.FromString,
                )
        self.GetBatchJob = channel.unary_unary(
                '/gateway.Gateway/GetBatchJob',
                request_serializer=gateway_dot_batch__job__pb2.GetBatchJobRequest.SerializeToString,
                response_deserializer=gateway_dot_batch__job__pb2.BatchJob.FromString,
                )
        self.ListBatchJobs = channel.unary_unary(
                '/gateway.Gateway/ListBatchJobs',
                request_serializer=gateway_dot_batch__job__pb2.ListBatchJobsRequest.SerializeToString,
                response_deserializer=gateway_dot_batch__job__pb2.ListBatchJobsResponse.FromString,
                )
        self.DeleteBatchJob = channel.unary_unary(
                '/gateway.Gateway/DeleteBatchJob',
                request_serializer=gateway_dot_batch__job__pb2.DeleteBatchJobRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.BatchDeleteBatchJobs = channel.unary_unary(
                '/gateway.Gateway/BatchDeleteBatchJobs',
                request_serializer=gateway_dot_batch__job__pb2.BatchDeleteBatchJobsRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CancelBatchJob = channel.unary_unary(
                '/gateway.Gateway/CancelBatchJob',
                request_serializer=gateway_dot_batch__job__pb2.CancelBatchJobRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateCluster = channel.unary_unary(
                '/gateway.Gateway/CreateCluster',
                request_serializer=gateway_dot_cluster__pb2.CreateClusterRequest.SerializeToString,
                response_deserializer=gateway_dot_cluster__pb2.Cluster.FromString,
                )
        self.GetCluster = channel.unary_unary(
                '/gateway.Gateway/GetCluster',
                request_serializer=gateway_dot_cluster__pb2.GetClusterRequest.SerializeToString,
                response_deserializer=gateway_dot_cluster__pb2.Cluster.FromString,
                )
        self.ListClusters = channel.unary_unary(
                '/gateway.Gateway/ListClusters',
                request_serializer=gateway_dot_cluster__pb2.ListClustersRequest.SerializeToString,
                response_deserializer=gateway_dot_cluster__pb2.ListClustersResponse.FromString,
                )
        self.UpdateCluster = channel.unary_unary(
                '/gateway.Gateway/UpdateCluster',
                request_serializer=gateway_dot_cluster__pb2.UpdateClusterRequest.SerializeToString,
                response_deserializer=gateway_dot_cluster__pb2.Cluster.FromString,
                )
        self.DeleteCluster = channel.unary_unary(
                '/gateway.Gateway/DeleteCluster',
                request_serializer=gateway_dot_cluster__pb2.DeleteClusterRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetClusterConnectionInfo = channel.unary_unary(
                '/gateway.Gateway/GetClusterConnectionInfo',
                request_serializer=gateway_dot_cluster__pb2.GetClusterConnectionInfoRequest.SerializeToString,
                response_deserializer=gateway_dot_cluster__pb2.ClusterConnectionInfo.FromString,
                )
        self.CreateEnvironment = channel.unary_unary(
                '/gateway.Gateway/CreateEnvironment',
                request_serializer=gateway_dot_environment__pb2.CreateEnvironmentRequest.SerializeToString,
                response_deserializer=gateway_dot_environment__pb2.Environment.FromString,
                )
        self.GetEnvironment = channel.unary_unary(
                '/gateway.Gateway/GetEnvironment',
                request_serializer=gateway_dot_environment__pb2.GetEnvironmentRequest.SerializeToString,
                response_deserializer=gateway_dot_environment__pb2.Environment.FromString,
                )
        self.ListEnvironments = channel.unary_unary(
                '/gateway.Gateway/ListEnvironments',
                request_serializer=gateway_dot_environment__pb2.ListEnvironmentsRequest.SerializeToString,
                response_deserializer=gateway_dot_environment__pb2.ListEnvironmentsResponse.FromString,
                )
        self.UpdateEnvironment = channel.unary_unary(
                '/gateway.Gateway/UpdateEnvironment',
                request_serializer=gateway_dot_environment__pb2.UpdateEnvironmentRequest.SerializeToString,
                response_deserializer=gateway_dot_environment__pb2.Environment.FromString,
                )
        self.DeleteEnvironment = channel.unary_unary(
                '/gateway.Gateway/DeleteEnvironment',
                request_serializer=gateway_dot_environment__pb2.DeleteEnvironmentRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.BatchDeleteEnvironments = channel.unary_unary(
                '/gateway.Gateway/BatchDeleteEnvironments',
                request_serializer=gateway_dot_environment__pb2.BatchDeleteEnvironmentsRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ConnectEnvironment = channel.unary_unary(
                '/gateway.Gateway/ConnectEnvironment',
                request_serializer=gateway_dot_environment__pb2.ConnectEnvironmentRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.DisconnectEnvironment = channel.unary_unary(
                '/gateway.Gateway/DisconnectEnvironment',
                request_serializer=gateway_dot_environment__pb2.DisconnectEnvironmentRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetSnapshot = channel.unary_unary(
                '/gateway.Gateway/GetSnapshot',
                request_serializer=gateway_dot_snapshot__pb2.GetSnapshotRequest.SerializeToString,
                response_deserializer=gateway_dot_snapshot__pb2.Snapshot.FromString,
                )
        self.ListSnapshots = channel.unary_unary(
                '/gateway.Gateway/ListSnapshots',
                request_serializer=gateway_dot_snapshot__pb2.ListSnapshotsRequest.SerializeToString,
                response_deserializer=gateway_dot_snapshot__pb2.ListSnapshotsResponse.FromString,
                )
        self.GetBatchJobLogs = channel.unary_unary(
                '/gateway.Gateway/GetBatchJobLogs',
                request_serializer=gateway_dot_batch__job__pb2.GetBatchJobLogsRequest.SerializeToString,
                response_deserializer=gateway_dot_batch__job__pb2.GetBatchJobLogsResponse.FromString,
                )
        self.CreateNodePool = channel.unary_unary(
                '/gateway.Gateway/CreateNodePool',
                request_serializer=gateway_dot_node__pool__pb2.CreateNodePoolRequest.SerializeToString,
                response_deserializer=gateway_dot_node__pool__pb2.NodePool.FromString,
                )
        self.GetNodePool = channel.unary_unary(
                '/gateway.Gateway/GetNodePool',
                request_serializer=gateway_dot_node__pool__pb2.GetNodePoolRequest.SerializeToString,
                response_deserializer=gateway_dot_node__pool__pb2.NodePool.FromString,
                )
        self.ListNodePools = channel.unary_unary(
                '/gateway.Gateway/ListNodePools',
                request_serializer=gateway_dot_node__pool__pb2.ListNodePoolsRequest.SerializeToString,
                response_deserializer=gateway_dot_node__pool__pb2.ListNodePoolsResponse.FromString,
                )
        self.UpdateNodePool = channel.unary_unary(
                '/gateway.Gateway/UpdateNodePool',
                request_serializer=gateway_dot_node__pool__pb2.UpdateNodePoolRequest.SerializeToString,
                response_deserializer=gateway_dot_node__pool__pb2.NodePool.FromString,
                )
        self.DeleteNodePool = channel.unary_unary(
                '/gateway.Gateway/DeleteNodePool',
                request_serializer=gateway_dot_node__pool__pb2.DeleteNodePoolRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.BatchDeleteNodePools = channel.unary_unary(
                '/gateway.Gateway/BatchDeleteNodePools',
                request_serializer=gateway_dot_node__pool__pb2.BatchDeleteNodePoolsRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetNodePoolStats = channel.unary_unary(
                '/gateway.Gateway/GetNodePoolStats',
                request_serializer=gateway_dot_node__pool__pb2.GetNodePoolStatsRequest.SerializeToString,
                response_deserializer=gateway_dot_node__pool__pb2.NodePoolStats.FromString,
                )
        self.CreateUser = channel.unary_unary(
                '/gateway.Gateway/CreateUser',
                request_serializer=gateway_dot_user__pb2.CreateUserRequest.SerializeToString,
                response_deserializer=gateway_dot_user__pb2.User.FromString,
                )
        self.GetUser = channel.unary_unary(
                '/gateway.Gateway/GetUser',
                request_serializer=gateway_dot_user__pb2.GetUserRequest.SerializeToString,
                response_deserializer=gateway_dot_user__pb2.User.FromString,
                )
        self.ListUsers = channel.unary_unary(
                '/gateway.Gateway/ListUsers',
                request_serializer=gateway_dot_user__pb2.ListUsersRequest.SerializeToString,
                response_deserializer=gateway_dot_user__pb2.ListUsersResponse.FromString,
                )
        self.UpdateUser = channel.unary_unary(
                '/gateway.Gateway/UpdateUser',
                request_serializer=gateway_dot_user__pb2.UpdateUserRequest.SerializeToString,
                response_deserializer=gateway_dot_user__pb2.User.FromString,
                )
        self.DeleteUser = channel.unary_unary(
                '/gateway.Gateway/DeleteUser',
                request_serializer=gateway_dot_user__pb2.DeleteUserRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateModel = channel.unary_unary(
                '/gateway.Gateway/CreateModel',
                request_serializer=gateway_dot_model__pb2.CreateModelRequest.SerializeToString,
                response_deserializer=gateway_dot_model__pb2.Model.FromString,
                )
        self.GetModel = channel.unary_unary(
                '/gateway.Gateway/GetModel',
                request_serializer=gateway_dot_model__pb2.GetModelRequest.SerializeToString,
                response_deserializer=gateway_dot_model__pb2.Model.FromString,
                )
        self.ListModels = channel.unary_unary(
                '/gateway.Gateway/ListModels',
                request_serializer=gateway_dot_model__pb2.ListModelsRequest.SerializeToString,
                response_deserializer=gateway_dot_model__pb2.ListModelsResponse.FromString,
                )
        self.UpdateModel = channel.unary_unary(
                '/gateway.Gateway/UpdateModel',
                request_serializer=gateway_dot_model__pb2.UpdateModelRequest.SerializeToString,
                response_deserializer=gateway_dot_model__pb2.Model.FromString,
                )
        self.DeleteModel = channel.unary_unary(
                '/gateway.Gateway/DeleteModel',
                request_serializer=gateway_dot_model__pb2.DeleteModelRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetModelUploadEndpoint = channel.unary_unary(
                '/gateway.Gateway/GetModelUploadEndpoint',
                request_serializer=gateway_dot_model__pb2.GetModelUploadEndpointRequest.SerializeToString,
                response_deserializer=gateway_dot_model__pb2.GetModelUploadEndpointResponse.FromString,
                )
        self.ValidateModelUpload = channel.unary_unary(
                '/gateway.Gateway/ValidateModelUpload',
                request_serializer=gateway_dot_model__pb2.ValidateModelUploadRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.DeployModel = channel.unary_unary(
                '/gateway.Gateway/DeployModel',
                request_serializer=gateway_dot_model__pb2.DeployModelRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.UndeployModel = channel.unary_unary(
                '/gateway.Gateway/UndeployModel',
                request_serializer=gateway_dot_model__pb2.UndeployModelRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateDeployment = channel.unary_unary(
                '/gateway.Gateway/CreateDeployment',
                request_serializer=gateway_dot_deployment__pb2.CreateDeploymentRequest.SerializeToString,
                response_deserializer=gateway_dot_deployment__pb2.Deployment.FromString,
                )
        self.GetDeployment = channel.unary_unary(
                '/gateway.Gateway/GetDeployment',
                request_serializer=gateway_dot_deployment__pb2.GetDeploymentRequest.SerializeToString,
                response_deserializer=gateway_dot_deployment__pb2.Deployment.FromString,
                )
        self.StartDeployment = channel.unary_unary(
                '/gateway.Gateway/StartDeployment',
                request_serializer=gateway_dot_deployment__pb2.StartDeploymentRequest.SerializeToString,
                response_deserializer=gateway_dot_deployment__pb2.Deployment.FromString,
                )
        self.ListDeployments = channel.unary_unary(
                '/gateway.Gateway/ListDeployments',
                request_serializer=gateway_dot_deployment__pb2.ListDeploymentsRequest.SerializeToString,
                response_deserializer=gateway_dot_deployment__pb2.ListDeploymentsResponse.FromString,
                )
        self.UpdateDeployment = channel.unary_unary(
                '/gateway.Gateway/UpdateDeployment',
                request_serializer=gateway_dot_deployment__pb2.UpdateDeploymentRequest.SerializeToString,
                response_deserializer=gateway_dot_deployment__pb2.Deployment.FromString,
                )
        self.DeleteDeployment = channel.unary_unary(
                '/gateway.Gateway/DeleteDeployment',
                request_serializer=gateway_dot_deployment__pb2.DeleteDeploymentRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CreateAwsIamRoleBinding = channel.unary_unary(
                '/gateway.Gateway/CreateAwsIamRoleBinding',
                request_serializer=gateway_dot_aws__iam__role__binding__pb2.CreateAwsIamRoleBindingRequest.SerializeToString,
                response_deserializer=gateway_dot_aws__iam__role__binding__pb2.AwsIamRoleBinding.FromString,
                )
        self.ListAwsIamRoleBindings = channel.unary_unary(
                '/gateway.Gateway/ListAwsIamRoleBindings',
                request_serializer=gateway_dot_aws__iam__role__binding__pb2.ListAwsIamRoleBindingsRequest.SerializeToString,
                response_deserializer=gateway_dot_aws__iam__role__binding__pb2.ListAwsIamRoleBindingsResponse.FromString,
                )
        self.DeleteAwsIamRoleBinding = channel.unary_unary(
                '/gateway.Gateway/DeleteAwsIamRoleBinding',
                request_serializer=gateway_dot_aws__iam__role__binding__pb2.DeleteAwsIamRoleBindingRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ReconcileCluster = channel.unary_unary(
                '/gateway.Gateway/ReconcileCluster',
                request_serializer=gateway_dot_cluster__pb2.ReconcileClusterRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ReconcileNodePool = channel.unary_unary(
                '/gateway.Gateway/ReconcileNodePool',
                request_serializer=gateway_dot_node__pool__pb2.ReconcileNodePoolRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )


class GatewayServicer(object):
    """Missing associated documentation comment in .proto file."""

    def SignIn(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 GetOAuthArguments(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 CreateAccount(self, request, context):
        """CRUD APIs for accounts.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAccount(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 ListAccounts(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 UpdateAccount(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 DeleteAccount(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 CreateBatchJob(self, request, context):
        """CRUD APIs for batch jobs.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetBatchJob(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 ListBatchJobs(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 DeleteBatchJob(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 BatchDeleteBatchJobs(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 CancelBatchJob(self, request, context):
        """Cancels an existing batch job if it is queued, pending, or running.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateCluster(self, request, context):
        """CRUD APIs for clusters.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetCluster(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 ListClusters(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 UpdateCluster(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 DeleteCluster(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 GetClusterConnectionInfo(self, request, context):
        """Retrieve connection settings for the cluster to be put in kubeconfig
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateEnvironment(self, request, context):
        """CRUD APIs for environments.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEnvironment(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 ListEnvironments(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 UpdateEnvironment(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 DeleteEnvironment(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 BatchDeleteEnvironments(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 ConnectEnvironment(self, request, context):
        """Connects the environment to a node pool.
        Returns an error if there is an existing pending connection.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DisconnectEnvironment(self, request, context):
        """Disconnects the environment from the node pool. Returns an error
        if the environment is not connected to a node pool.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSnapshot(self, request, context):
        """CRUD APIs for snapshots.
        TODO: Add the other CRUD APIs.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListSnapshots(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 GetBatchJobLogs(self, request, context):
        """Retrieve logs for the batch job.
        TODO: add pagination/streaming
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateNodePool(self, request, context):
        """CRUD APIs for node pools.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetNodePool(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 ListNodePools(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 UpdateNodePool(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 DeleteNodePool(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 BatchDeleteNodePools(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 GetNodePoolStats(self, request, context):
        """Returns node pool stats.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateUser(self, request, context):
        """CRUD APIs for users.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetUser(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 ListUsers(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 UpdateUser(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 DeleteUser(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 CreateModel(self, request, context):
        """CRUD APIs for models.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetModel(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 ListModels(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 UpdateModel(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 DeleteModel(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 GetModelUploadEndpoint(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 ValidateModelUpload(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 DeployModel(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 UndeployModel(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 CreateDeployment(self, request, context):
        """CRUD APIs for deployments.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDeployment(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 StartDeployment(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 ListDeployments(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 UpdateDeployment(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 DeleteDeployment(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 CreateAwsIamRoleBinding(self, request, context):
        """CRUD APIs for AWS IAM role bindings.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListAwsIamRoleBindings(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 DeleteAwsIamRoleBinding(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 ReconcileCluster(self, request, context):
        """Admin-only calls to re-run steps of cluster or node pool creation. Useful for upgrades of the existing clusters.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ReconcileNodePool(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 add_GatewayServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SignIn': grpc.unary_unary_rpc_method_handler(
                    servicer.SignIn,
                    request_deserializer=gateway_dot_sign__in__pb2.SignInRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetOAuthArguments': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOAuthArguments,
                    request_deserializer=gateway_dot_sign__in__pb2.GetOAuthArgumentsRequest.FromString,
                    response_serializer=gateway_dot_sign__in__pb2.GetOAuthArgumentsResponse.SerializeToString,
            ),
            'CreateAccount': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateAccount,
                    request_deserializer=gateway_dot_account__pb2.CreateAccountRequest.FromString,
                    response_serializer=gateway_dot_account__pb2.Account.SerializeToString,
            ),
            'GetAccount': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAccount,
                    request_deserializer=gateway_dot_account__pb2.GetAccountRequest.FromString,
                    response_serializer=gateway_dot_account__pb2.Account.SerializeToString,
            ),
            'ListAccounts': grpc.unary_unary_rpc_method_handler(
                    servicer.ListAccounts,
                    request_deserializer=gateway_dot_account__pb2.ListAccountsRequest.FromString,
                    response_serializer=gateway_dot_account__pb2.ListAccountsResponse.SerializeToString,
            ),
            'UpdateAccount': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateAccount,
                    request_deserializer=gateway_dot_account__pb2.UpdateAccountRequest.FromString,
                    response_serializer=gateway_dot_account__pb2.Account.SerializeToString,
            ),
            'DeleteAccount': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteAccount,
                    request_deserializer=gateway_dot_account__pb2.DeleteAccountRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateBatchJob': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateBatchJob,
                    request_deserializer=gateway_dot_batch__job__pb2.CreateBatchJobRequest.FromString,
                    response_serializer=gateway_dot_batch__job__pb2.BatchJob.SerializeToString,
            ),
            'GetBatchJob': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBatchJob,
                    request_deserializer=gateway_dot_batch__job__pb2.GetBatchJobRequest.FromString,
                    response_serializer=gateway_dot_batch__job__pb2.BatchJob.SerializeToString,
            ),
            'ListBatchJobs': grpc.unary_unary_rpc_method_handler(
                    servicer.ListBatchJobs,
                    request_deserializer=gateway_dot_batch__job__pb2.ListBatchJobsRequest.FromString,
                    response_serializer=gateway_dot_batch__job__pb2.ListBatchJobsResponse.SerializeToString,
            ),
            'DeleteBatchJob': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteBatchJob,
                    request_deserializer=gateway_dot_batch__job__pb2.DeleteBatchJobRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'BatchDeleteBatchJobs': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchDeleteBatchJobs,
                    request_deserializer=gateway_dot_batch__job__pb2.BatchDeleteBatchJobsRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CancelBatchJob': grpc.unary_unary_rpc_method_handler(
                    servicer.CancelBatchJob,
                    request_deserializer=gateway_dot_batch__job__pb2.CancelBatchJobRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateCluster': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateCluster,
                    request_deserializer=gateway_dot_cluster__pb2.CreateClusterRequest.FromString,
                    response_serializer=gateway_dot_cluster__pb2.Cluster.SerializeToString,
            ),
            'GetCluster': grpc.unary_unary_rpc_method_handler(
                    servicer.GetCluster,
                    request_deserializer=gateway_dot_cluster__pb2.GetClusterRequest.FromString,
                    response_serializer=gateway_dot_cluster__pb2.Cluster.SerializeToString,
            ),
            'ListClusters': grpc.unary_unary_rpc_method_handler(
                    servicer.ListClusters,
                    request_deserializer=gateway_dot_cluster__pb2.ListClustersRequest.FromString,
                    response_serializer=gateway_dot_cluster__pb2.ListClustersResponse.SerializeToString,
            ),
            'UpdateCluster': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateCluster,
                    request_deserializer=gateway_dot_cluster__pb2.UpdateClusterRequest.FromString,
                    response_serializer=gateway_dot_cluster__pb2.Cluster.SerializeToString,
            ),
            'DeleteCluster': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteCluster,
                    request_deserializer=gateway_dot_cluster__pb2.DeleteClusterRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetClusterConnectionInfo': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClusterConnectionInfo,
                    request_deserializer=gateway_dot_cluster__pb2.GetClusterConnectionInfoRequest.FromString,
                    response_serializer=gateway_dot_cluster__pb2.ClusterConnectionInfo.SerializeToString,
            ),
            'CreateEnvironment': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateEnvironment,
                    request_deserializer=gateway_dot_environment__pb2.CreateEnvironmentRequest.FromString,
                    response_serializer=gateway_dot_environment__pb2.Environment.SerializeToString,
            ),
            'GetEnvironment': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEnvironment,
                    request_deserializer=gateway_dot_environment__pb2.GetEnvironmentRequest.FromString,
                    response_serializer=gateway_dot_environment__pb2.Environment.SerializeToString,
            ),
            'ListEnvironments': grpc.unary_unary_rpc_method_handler(
                    servicer.ListEnvironments,
                    request_deserializer=gateway_dot_environment__pb2.ListEnvironmentsRequest.FromString,
                    response_serializer=gateway_dot_environment__pb2.ListEnvironmentsResponse.SerializeToString,
            ),
            'UpdateEnvironment': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateEnvironment,
                    request_deserializer=gateway_dot_environment__pb2.UpdateEnvironmentRequest.FromString,
                    response_serializer=gateway_dot_environment__pb2.Environment.SerializeToString,
            ),
            'DeleteEnvironment': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteEnvironment,
                    request_deserializer=gateway_dot_environment__pb2.DeleteEnvironmentRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'BatchDeleteEnvironments': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchDeleteEnvironments,
                    request_deserializer=gateway_dot_environment__pb2.BatchDeleteEnvironmentsRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ConnectEnvironment': grpc.unary_unary_rpc_method_handler(
                    servicer.ConnectEnvironment,
                    request_deserializer=gateway_dot_environment__pb2.ConnectEnvironmentRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'DisconnectEnvironment': grpc.unary_unary_rpc_method_handler(
                    servicer.DisconnectEnvironment,
                    request_deserializer=gateway_dot_environment__pb2.DisconnectEnvironmentRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetSnapshot': grpc.unary_unary_rpc_method_handler(
                    servicer.GetSnapshot,
                    request_deserializer=gateway_dot_snapshot__pb2.GetSnapshotRequest.FromString,
                    response_serializer=gateway_dot_snapshot__pb2.Snapshot.SerializeToString,
            ),
            'ListSnapshots': grpc.unary_unary_rpc_method_handler(
                    servicer.ListSnapshots,
                    request_deserializer=gateway_dot_snapshot__pb2.ListSnapshotsRequest.FromString,
                    response_serializer=gateway_dot_snapshot__pb2.ListSnapshotsResponse.SerializeToString,
            ),
            'GetBatchJobLogs': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBatchJobLogs,
                    request_deserializer=gateway_dot_batch__job__pb2.GetBatchJobLogsRequest.FromString,
                    response_serializer=gateway_dot_batch__job__pb2.GetBatchJobLogsResponse.SerializeToString,
            ),
            'CreateNodePool': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateNodePool,
                    request_deserializer=gateway_dot_node__pool__pb2.CreateNodePoolRequest.FromString,
                    response_serializer=gateway_dot_node__pool__pb2.NodePool.SerializeToString,
            ),
            'GetNodePool': grpc.unary_unary_rpc_method_handler(
                    servicer.GetNodePool,
                    request_deserializer=gateway_dot_node__pool__pb2.GetNodePoolRequest.FromString,
                    response_serializer=gateway_dot_node__pool__pb2.NodePool.SerializeToString,
            ),
            'ListNodePools': grpc.unary_unary_rpc_method_handler(
                    servicer.ListNodePools,
                    request_deserializer=gateway_dot_node__pool__pb2.ListNodePoolsRequest.FromString,
                    response_serializer=gateway_dot_node__pool__pb2.ListNodePoolsResponse.SerializeToString,
            ),
            'UpdateNodePool': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateNodePool,
                    request_deserializer=gateway_dot_node__pool__pb2.UpdateNodePoolRequest.FromString,
                    response_serializer=gateway_dot_node__pool__pb2.NodePool.SerializeToString,
            ),
            'DeleteNodePool': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteNodePool,
                    request_deserializer=gateway_dot_node__pool__pb2.DeleteNodePoolRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'BatchDeleteNodePools': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchDeleteNodePools,
                    request_deserializer=gateway_dot_node__pool__pb2.BatchDeleteNodePoolsRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetNodePoolStats': grpc.unary_unary_rpc_method_handler(
                    servicer.GetNodePoolStats,
                    request_deserializer=gateway_dot_node__pool__pb2.GetNodePoolStatsRequest.FromString,
                    response_serializer=gateway_dot_node__pool__pb2.NodePoolStats.SerializeToString,
            ),
            'CreateUser': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateUser,
                    request_deserializer=gateway_dot_user__pb2.CreateUserRequest.FromString,
                    response_serializer=gateway_dot_user__pb2.User.SerializeToString,
            ),
            'GetUser': grpc.unary_unary_rpc_method_handler(
                    servicer.GetUser,
                    request_deserializer=gateway_dot_user__pb2.GetUserRequest.FromString,
                    response_serializer=gateway_dot_user__pb2.User.SerializeToString,
            ),
            'ListUsers': grpc.unary_unary_rpc_method_handler(
                    servicer.ListUsers,
                    request_deserializer=gateway_dot_user__pb2.ListUsersRequest.FromString,
                    response_serializer=gateway_dot_user__pb2.ListUsersResponse.SerializeToString,
            ),
            'UpdateUser': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateUser,
                    request_deserializer=gateway_dot_user__pb2.UpdateUserRequest.FromString,
                    response_serializer=gateway_dot_user__pb2.User.SerializeToString,
            ),
            'DeleteUser': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteUser,
                    request_deserializer=gateway_dot_user__pb2.DeleteUserRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateModel': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateModel,
                    request_deserializer=gateway_dot_model__pb2.CreateModelRequest.FromString,
                    response_serializer=gateway_dot_model__pb2.Model.SerializeToString,
            ),
            'GetModel': grpc.unary_unary_rpc_method_handler(
                    servicer.GetModel,
                    request_deserializer=gateway_dot_model__pb2.GetModelRequest.FromString,
                    response_serializer=gateway_dot_model__pb2.Model.SerializeToString,
            ),
            'ListModels': grpc.unary_unary_rpc_method_handler(
                    servicer.ListModels,
                    request_deserializer=gateway_dot_model__pb2.ListModelsRequest.FromString,
                    response_serializer=gateway_dot_model__pb2.ListModelsResponse.SerializeToString,
            ),
            'UpdateModel': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateModel,
                    request_deserializer=gateway_dot_model__pb2.UpdateModelRequest.FromString,
                    response_serializer=gateway_dot_model__pb2.Model.SerializeToString,
            ),
            'DeleteModel': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteModel,
                    request_deserializer=gateway_dot_model__pb2.DeleteModelRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetModelUploadEndpoint': grpc.unary_unary_rpc_method_handler(
                    servicer.GetModelUploadEndpoint,
                    request_deserializer=gateway_dot_model__pb2.GetModelUploadEndpointRequest.FromString,
                    response_serializer=gateway_dot_model__pb2.GetModelUploadEndpointResponse.SerializeToString,
            ),
            'ValidateModelUpload': grpc.unary_unary_rpc_method_handler(
                    servicer.ValidateModelUpload,
                    request_deserializer=gateway_dot_model__pb2.ValidateModelUploadRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'DeployModel': grpc.unary_unary_rpc_method_handler(
                    servicer.DeployModel,
                    request_deserializer=gateway_dot_model__pb2.DeployModelRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'UndeployModel': grpc.unary_unary_rpc_method_handler(
                    servicer.UndeployModel,
                    request_deserializer=gateway_dot_model__pb2.UndeployModelRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateDeployment': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateDeployment,
                    request_deserializer=gateway_dot_deployment__pb2.CreateDeploymentRequest.FromString,
                    response_serializer=gateway_dot_deployment__pb2.Deployment.SerializeToString,
            ),
            'GetDeployment': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDeployment,
                    request_deserializer=gateway_dot_deployment__pb2.GetDeploymentRequest.FromString,
                    response_serializer=gateway_dot_deployment__pb2.Deployment.SerializeToString,
            ),
            'StartDeployment': grpc.unary_unary_rpc_method_handler(
                    servicer.StartDeployment,
                    request_deserializer=gateway_dot_deployment__pb2.StartDeploymentRequest.FromString,
                    response_serializer=gateway_dot_deployment__pb2.Deployment.SerializeToString,
            ),
            'ListDeployments': grpc.unary_unary_rpc_method_handler(
                    servicer.ListDeployments,
                    request_deserializer=gateway_dot_deployment__pb2.ListDeploymentsRequest.FromString,
                    response_serializer=gateway_dot_deployment__pb2.ListDeploymentsResponse.SerializeToString,
            ),
            'UpdateDeployment': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateDeployment,
                    request_deserializer=gateway_dot_deployment__pb2.UpdateDeploymentRequest.FromString,
                    response_serializer=gateway_dot_deployment__pb2.Deployment.SerializeToString,
            ),
            'DeleteDeployment': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteDeployment,
                    request_deserializer=gateway_dot_deployment__pb2.DeleteDeploymentRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CreateAwsIamRoleBinding': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateAwsIamRoleBinding,
                    request_deserializer=gateway_dot_aws__iam__role__binding__pb2.CreateAwsIamRoleBindingRequest.FromString,
                    response_serializer=gateway_dot_aws__iam__role__binding__pb2.AwsIamRoleBinding.SerializeToString,
            ),
            'ListAwsIamRoleBindings': grpc.unary_unary_rpc_method_handler(
                    servicer.ListAwsIamRoleBindings,
                    request_deserializer=gateway_dot_aws__iam__role__binding__pb2.ListAwsIamRoleBindingsRequest.FromString,
                    response_serializer=gateway_dot_aws__iam__role__binding__pb2.ListAwsIamRoleBindingsResponse.SerializeToString,
            ),
            'DeleteAwsIamRoleBinding': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteAwsIamRoleBinding,
                    request_deserializer=gateway_dot_aws__iam__role__binding__pb2.DeleteAwsIamRoleBindingRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ReconcileCluster': grpc.unary_unary_rpc_method_handler(
                    servicer.ReconcileCluster,
                    request_deserializer=gateway_dot_cluster__pb2.ReconcileClusterRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ReconcileNodePool': grpc.unary_unary_rpc_method_handler(
                    servicer.ReconcileNodePool,
                    request_deserializer=gateway_dot_node__pool__pb2.ReconcileNodePoolRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'gateway.Gateway', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Gateway(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def SignIn(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, '/gateway.Gateway/SignIn',
            gateway_dot_sign__in__pb2.SignInRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOAuthArguments(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, '/gateway.Gateway/GetOAuthArguments',
            gateway_dot_sign__in__pb2.GetOAuthArgumentsRequest.SerializeToString,
            gateway_dot_sign__in__pb2.GetOAuthArgumentsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateAccount(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, '/gateway.Gateway/CreateAccount',
            gateway_dot_account__pb2.CreateAccountRequest.SerializeToString,
            gateway_dot_account__pb2.Account.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAccount(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, '/gateway.Gateway/GetAccount',
            gateway_dot_account__pb2.GetAccountRequest.SerializeToString,
            gateway_dot_account__pb2.Account.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListAccounts(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, '/gateway.Gateway/ListAccounts',
            gateway_dot_account__pb2.ListAccountsRequest.SerializeToString,
            gateway_dot_account__pb2.ListAccountsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateAccount(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, '/gateway.Gateway/UpdateAccount',
            gateway_dot_account__pb2.UpdateAccountRequest.SerializeToString,
            gateway_dot_account__pb2.Account.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteAccount(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, '/gateway.Gateway/DeleteAccount',
            gateway_dot_account__pb2.DeleteAccountRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateBatchJob(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, '/gateway.Gateway/CreateBatchJob',
            gateway_dot_batch__job__pb2.CreateBatchJobRequest.SerializeToString,
            gateway_dot_batch__job__pb2.BatchJob.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetBatchJob(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, '/gateway.Gateway/GetBatchJob',
            gateway_dot_batch__job__pb2.GetBatchJobRequest.SerializeToString,
            gateway_dot_batch__job__pb2.BatchJob.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListBatchJobs(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, '/gateway.Gateway/ListBatchJobs',
            gateway_dot_batch__job__pb2.ListBatchJobsRequest.SerializeToString,
            gateway_dot_batch__job__pb2.ListBatchJobsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteBatchJob(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, '/gateway.Gateway/DeleteBatchJob',
            gateway_dot_batch__job__pb2.DeleteBatchJobRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchDeleteBatchJobs(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, '/gateway.Gateway/BatchDeleteBatchJobs',
            gateway_dot_batch__job__pb2.BatchDeleteBatchJobsRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CancelBatchJob(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, '/gateway.Gateway/CancelBatchJob',
            gateway_dot_batch__job__pb2.CancelBatchJobRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateCluster(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, '/gateway.Gateway/CreateCluster',
            gateway_dot_cluster__pb2.CreateClusterRequest.SerializeToString,
            gateway_dot_cluster__pb2.Cluster.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetCluster(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, '/gateway.Gateway/GetCluster',
            gateway_dot_cluster__pb2.GetClusterRequest.SerializeToString,
            gateway_dot_cluster__pb2.Cluster.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListClusters(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, '/gateway.Gateway/ListClusters',
            gateway_dot_cluster__pb2.ListClustersRequest.SerializeToString,
            gateway_dot_cluster__pb2.ListClustersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateCluster(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, '/gateway.Gateway/UpdateCluster',
            gateway_dot_cluster__pb2.UpdateClusterRequest.SerializeToString,
            gateway_dot_cluster__pb2.Cluster.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteCluster(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, '/gateway.Gateway/DeleteCluster',
            gateway_dot_cluster__pb2.DeleteClusterRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClusterConnectionInfo(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, '/gateway.Gateway/GetClusterConnectionInfo',
            gateway_dot_cluster__pb2.GetClusterConnectionInfoRequest.SerializeToString,
            gateway_dot_cluster__pb2.ClusterConnectionInfo.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateEnvironment(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, '/gateway.Gateway/CreateEnvironment',
            gateway_dot_environment__pb2.CreateEnvironmentRequest.SerializeToString,
            gateway_dot_environment__pb2.Environment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEnvironment(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, '/gateway.Gateway/GetEnvironment',
            gateway_dot_environment__pb2.GetEnvironmentRequest.SerializeToString,
            gateway_dot_environment__pb2.Environment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEnvironments(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, '/gateway.Gateway/ListEnvironments',
            gateway_dot_environment__pb2.ListEnvironmentsRequest.SerializeToString,
            gateway_dot_environment__pb2.ListEnvironmentsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateEnvironment(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, '/gateway.Gateway/UpdateEnvironment',
            gateway_dot_environment__pb2.UpdateEnvironmentRequest.SerializeToString,
            gateway_dot_environment__pb2.Environment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteEnvironment(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, '/gateway.Gateway/DeleteEnvironment',
            gateway_dot_environment__pb2.DeleteEnvironmentRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchDeleteEnvironments(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, '/gateway.Gateway/BatchDeleteEnvironments',
            gateway_dot_environment__pb2.BatchDeleteEnvironmentsRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ConnectEnvironment(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, '/gateway.Gateway/ConnectEnvironment',
            gateway_dot_environment__pb2.ConnectEnvironmentRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DisconnectEnvironment(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, '/gateway.Gateway/DisconnectEnvironment',
            gateway_dot_environment__pb2.DisconnectEnvironmentRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSnapshot(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, '/gateway.Gateway/GetSnapshot',
            gateway_dot_snapshot__pb2.GetSnapshotRequest.SerializeToString,
            gateway_dot_snapshot__pb2.Snapshot.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListSnapshots(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, '/gateway.Gateway/ListSnapshots',
            gateway_dot_snapshot__pb2.ListSnapshotsRequest.SerializeToString,
            gateway_dot_snapshot__pb2.ListSnapshotsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetBatchJobLogs(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, '/gateway.Gateway/GetBatchJobLogs',
            gateway_dot_batch__job__pb2.GetBatchJobLogsRequest.SerializeToString,
            gateway_dot_batch__job__pb2.GetBatchJobLogsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateNodePool(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, '/gateway.Gateway/CreateNodePool',
            gateway_dot_node__pool__pb2.CreateNodePoolRequest.SerializeToString,
            gateway_dot_node__pool__pb2.NodePool.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetNodePool(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, '/gateway.Gateway/GetNodePool',
            gateway_dot_node__pool__pb2.GetNodePoolRequest.SerializeToString,
            gateway_dot_node__pool__pb2.NodePool.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListNodePools(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, '/gateway.Gateway/ListNodePools',
            gateway_dot_node__pool__pb2.ListNodePoolsRequest.SerializeToString,
            gateway_dot_node__pool__pb2.ListNodePoolsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateNodePool(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, '/gateway.Gateway/UpdateNodePool',
            gateway_dot_node__pool__pb2.UpdateNodePoolRequest.SerializeToString,
            gateway_dot_node__pool__pb2.NodePool.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteNodePool(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, '/gateway.Gateway/DeleteNodePool',
            gateway_dot_node__pool__pb2.DeleteNodePoolRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def BatchDeleteNodePools(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, '/gateway.Gateway/BatchDeleteNodePools',
            gateway_dot_node__pool__pb2.BatchDeleteNodePoolsRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetNodePoolStats(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, '/gateway.Gateway/GetNodePoolStats',
            gateway_dot_node__pool__pb2.GetNodePoolStatsRequest.SerializeToString,
            gateway_dot_node__pool__pb2.NodePoolStats.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateUser(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, '/gateway.Gateway/CreateUser',
            gateway_dot_user__pb2.CreateUserRequest.SerializeToString,
            gateway_dot_user__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetUser(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, '/gateway.Gateway/GetUser',
            gateway_dot_user__pb2.GetUserRequest.SerializeToString,
            gateway_dot_user__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListUsers(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, '/gateway.Gateway/ListUsers',
            gateway_dot_user__pb2.ListUsersRequest.SerializeToString,
            gateway_dot_user__pb2.ListUsersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateUser(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, '/gateway.Gateway/UpdateUser',
            gateway_dot_user__pb2.UpdateUserRequest.SerializeToString,
            gateway_dot_user__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteUser(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, '/gateway.Gateway/DeleteUser',
            gateway_dot_user__pb2.DeleteUserRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateModel(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, '/gateway.Gateway/CreateModel',
            gateway_dot_model__pb2.CreateModelRequest.SerializeToString,
            gateway_dot_model__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetModel(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, '/gateway.Gateway/GetModel',
            gateway_dot_model__pb2.GetModelRequest.SerializeToString,
            gateway_dot_model__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListModels(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, '/gateway.Gateway/ListModels',
            gateway_dot_model__pb2.ListModelsRequest.SerializeToString,
            gateway_dot_model__pb2.ListModelsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateModel(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, '/gateway.Gateway/UpdateModel',
            gateway_dot_model__pb2.UpdateModelRequest.SerializeToString,
            gateway_dot_model__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteModel(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, '/gateway.Gateway/DeleteModel',
            gateway_dot_model__pb2.DeleteModelRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetModelUploadEndpoint(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, '/gateway.Gateway/GetModelUploadEndpoint',
            gateway_dot_model__pb2.GetModelUploadEndpointRequest.SerializeToString,
            gateway_dot_model__pb2.GetModelUploadEndpointResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ValidateModelUpload(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, '/gateway.Gateway/ValidateModelUpload',
            gateway_dot_model__pb2.ValidateModelUploadRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeployModel(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, '/gateway.Gateway/DeployModel',
            gateway_dot_model__pb2.DeployModelRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UndeployModel(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, '/gateway.Gateway/UndeployModel',
            gateway_dot_model__pb2.UndeployModelRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateDeployment(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, '/gateway.Gateway/CreateDeployment',
            gateway_dot_deployment__pb2.CreateDeploymentRequest.SerializeToString,
            gateway_dot_deployment__pb2.Deployment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDeployment(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, '/gateway.Gateway/GetDeployment',
            gateway_dot_deployment__pb2.GetDeploymentRequest.SerializeToString,
            gateway_dot_deployment__pb2.Deployment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def StartDeployment(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, '/gateway.Gateway/StartDeployment',
            gateway_dot_deployment__pb2.StartDeploymentRequest.SerializeToString,
            gateway_dot_deployment__pb2.Deployment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListDeployments(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, '/gateway.Gateway/ListDeployments',
            gateway_dot_deployment__pb2.ListDeploymentsRequest.SerializeToString,
            gateway_dot_deployment__pb2.ListDeploymentsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateDeployment(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, '/gateway.Gateway/UpdateDeployment',
            gateway_dot_deployment__pb2.UpdateDeploymentRequest.SerializeToString,
            gateway_dot_deployment__pb2.Deployment.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteDeployment(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, '/gateway.Gateway/DeleteDeployment',
            gateway_dot_deployment__pb2.DeleteDeploymentRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateAwsIamRoleBinding(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, '/gateway.Gateway/CreateAwsIamRoleBinding',
            gateway_dot_aws__iam__role__binding__pb2.CreateAwsIamRoleBindingRequest.SerializeToString,
            gateway_dot_aws__iam__role__binding__pb2.AwsIamRoleBinding.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListAwsIamRoleBindings(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, '/gateway.Gateway/ListAwsIamRoleBindings',
            gateway_dot_aws__iam__role__binding__pb2.ListAwsIamRoleBindingsRequest.SerializeToString,
            gateway_dot_aws__iam__role__binding__pb2.ListAwsIamRoleBindingsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteAwsIamRoleBinding(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, '/gateway.Gateway/DeleteAwsIamRoleBinding',
            gateway_dot_aws__iam__role__binding__pb2.DeleteAwsIamRoleBindingRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReconcileCluster(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, '/gateway.Gateway/ReconcileCluster',
            gateway_dot_cluster__pb2.ReconcileClusterRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ReconcileNodePool(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, '/gateway.Gateway/ReconcileNodePool',
            gateway_dot_node__pool__pb2.ReconcileNodePoolRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
