"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

from abc import (
    ABCMeta,
    abstractmethod,
)
from chalk._gen.chalk.server.v1.builder_pb2 import (
    ActivateDeploymentRequest,
    ActivateDeploymentResponse,
    AddKarpenterNodepoolRequest,
    AddKarpenterNodepoolResponse,
    AddNodepoolRequest,
    AddNodepoolResponse,
    CreateClusterBackgroundPersistenceRequest,
    CreateClusterBackgroundPersistenceResponse,
    CreateClusterGatewayRequest,
    CreateClusterGatewayResponse,
    CreateClusterTimescaleDBRequest,
    CreateClusterTimescaleDBResponse,
    CreateKafkaTopicsRequest,
    CreateKafkaTopicsResponse,
    DeleteKarpenterNodepoolRequest,
    DeleteKarpenterNodepoolResponse,
    DeleteNodepoolRequest,
    DeleteNodepoolResponse,
    DeployKubeComponentsRequest,
    DeployKubeComponentsResponse,
    GetClusterBackgroundPersistenceRequest,
    GetClusterBackgroundPersistenceResponse,
    GetClusterGatewayRequest,
    GetClusterGatewayResponse,
    GetClusterTimescaleDBRequest,
    GetClusterTimescaleDBResponse,
    GetDeploymentLogsRequest,
    GetDeploymentLogsResponse,
    GetDeploymentStepsRequest,
    GetDeploymentStepsResponse,
    GetKafkaTopicsRequest,
    GetKafkaTopicsResponse,
    GetKarpenterInstallationMetadataRequest,
    GetKarpenterInstallationMetadataResponse,
    GetKarpenterNodepoolsRequest,
    GetKarpenterNodepoolsResponse,
    GetNodepoolsRequest,
    GetNodepoolsResponse,
    GetSearchConfigRequest,
    GetSearchConfigResponse,
    GetTagWeightsRequest,
    GetTagWeightsResponse,
    IndexDeploymentRequest,
    IndexDeploymentResponse,
    LintSourceRequest,
    LintSourceResponse,
    MigrateClusterTimescaleDBRequest,
    MigrateClusterTimescaleDBResponse,
    RebuildDeploymentRequest,
    RebuildDeploymentResponse,
    RedeployDeploymentRequest,
    RedeployDeploymentResponse,
    SetTagWeightsRequest,
    SetTagWeightsResponse,
    StartBranchRequest,
    StartBranchResponse,
    UpdateEnvironmentVariablesRequest,
    UpdateEnvironmentVariablesResponse,
    UpdateKarpenterNodepoolRequest,
    UpdateKarpenterNodepoolResponse,
    UpdateNodepoolRequest,
    UpdateNodepoolResponse,
    UploadSourceRequest,
    UploadSourceResponse,
)
from grpc import (
    Channel,
    Server,
    ServicerContext,
    UnaryUnaryMultiCallable,
)

class BuilderServiceStub:
    def __init__(self, channel: Channel) -> None: ...
    GetSearchConfig: UnaryUnaryMultiCallable[
        GetSearchConfigRequest,
        GetSearchConfigResponse,
    ]
    ActivateDeployment: UnaryUnaryMultiCallable[
        ActivateDeploymentRequest,
        ActivateDeploymentResponse,
    ]
    """Takes an existing (past) deployment and promotes the k8s resources / other things associated with it.
    Useful for debugging in local development where the auto activation doesn't work b/c no pubsub.
    """
    IndexDeployment: UnaryUnaryMultiCallable[
        IndexDeploymentRequest,
        IndexDeploymentResponse,
    ]
    DeployKubeComponents: UnaryUnaryMultiCallable[
        DeployKubeComponentsRequest,
        DeployKubeComponentsResponse,
    ]
    """Intermediate step in the deployment activation process. Allows for partial migration to the new
    go-api-server builder service.
    """
    RebuildDeployment: UnaryUnaryMultiCallable[
        RebuildDeploymentRequest,
        RebuildDeploymentResponse,
    ]
    """Takes an existing (past) deployment and re-creates the image associated with it,
    publishing the image as 'new_image_tag'.
    """
    RedeployDeployment: UnaryUnaryMultiCallable[
        RedeployDeploymentRequest,
        RedeployDeploymentResponse,
    ]
    """Triggers a new build with the source code from this deployment and deploys the result"""
    UploadSource: UnaryUnaryMultiCallable[
        UploadSourceRequest,
        UploadSourceResponse,
    ]
    """Triggers a new build with the provided source code archive and deploys the result"""
    LintSource: UnaryUnaryMultiCallable[
        LintSourceRequest,
        LintSourceResponse,
    ]
    GetDeploymentSteps: UnaryUnaryMultiCallable[
        GetDeploymentStepsRequest,
        GetDeploymentStepsResponse,
    ]
    GetDeploymentLogs: UnaryUnaryMultiCallable[
        GetDeploymentLogsRequest,
        GetDeploymentLogsResponse,
    ]
    GetClusterTimescaleDB: UnaryUnaryMultiCallable[
        GetClusterTimescaleDBRequest,
        GetClusterTimescaleDBResponse,
    ]
    GetClusterGateway: UnaryUnaryMultiCallable[
        GetClusterGatewayRequest,
        GetClusterGatewayResponse,
    ]
    GetClusterBackgroundPersistence: UnaryUnaryMultiCallable[
        GetClusterBackgroundPersistenceRequest,
        GetClusterBackgroundPersistenceResponse,
    ]
    CreateClusterTimescaleDB: UnaryUnaryMultiCallable[
        CreateClusterTimescaleDBRequest,
        CreateClusterTimescaleDBResponse,
    ]
    MigrateClusterTimescaleDB: UnaryUnaryMultiCallable[
        MigrateClusterTimescaleDBRequest,
        MigrateClusterTimescaleDBResponse,
    ]
    CreateClusterGateway: UnaryUnaryMultiCallable[
        CreateClusterGatewayRequest,
        CreateClusterGatewayResponse,
    ]
    CreateClusterBackgroundPersistence: UnaryUnaryMultiCallable[
        CreateClusterBackgroundPersistenceRequest,
        CreateClusterBackgroundPersistenceResponse,
    ]
    UpdateEnvironmentVariables: UnaryUnaryMultiCallable[
        UpdateEnvironmentVariablesRequest,
        UpdateEnvironmentVariablesResponse,
    ]
    StartBranch: UnaryUnaryMultiCallable[
        StartBranchRequest,
        StartBranchResponse,
    ]
    GetNodepools: UnaryUnaryMultiCallable[
        GetNodepoolsRequest,
        GetNodepoolsResponse,
    ]
    AddNodepool: UnaryUnaryMultiCallable[
        AddNodepoolRequest,
        AddNodepoolResponse,
    ]
    UpdateNodepool: UnaryUnaryMultiCallable[
        UpdateNodepoolRequest,
        UpdateNodepoolResponse,
    ]
    DeleteNodepool: UnaryUnaryMultiCallable[
        DeleteNodepoolRequest,
        DeleteNodepoolResponse,
    ]
    GetKarpenterNodepools: UnaryUnaryMultiCallable[
        GetKarpenterNodepoolsRequest,
        GetKarpenterNodepoolsResponse,
    ]
    """to be deprecated"""
    AddKarpenterNodepool: UnaryUnaryMultiCallable[
        AddKarpenterNodepoolRequest,
        AddKarpenterNodepoolResponse,
    ]
    """to be deprecated"""
    UpdateKarpenterNodepool: UnaryUnaryMultiCallable[
        UpdateKarpenterNodepoolRequest,
        UpdateKarpenterNodepoolResponse,
    ]
    """to be deprecated"""
    DeleteKarpenterNodepool: UnaryUnaryMultiCallable[
        DeleteKarpenterNodepoolRequest,
        DeleteKarpenterNodepoolResponse,
    ]
    """to be deprecated"""
    GetKarpenterInstallationMetadata: UnaryUnaryMultiCallable[
        GetKarpenterInstallationMetadataRequest,
        GetKarpenterInstallationMetadataResponse,
    ]
    GetTagWeights: UnaryUnaryMultiCallable[
        GetTagWeightsRequest,
        GetTagWeightsResponse,
    ]
    SetTagWeights: UnaryUnaryMultiCallable[
        SetTagWeightsRequest,
        SetTagWeightsResponse,
    ]

class BuilderServiceServicer(metaclass=ABCMeta):
    @abstractmethod
    def GetSearchConfig(
        self,
        request: GetSearchConfigRequest,
        context: ServicerContext,
    ) -> GetSearchConfigResponse: ...
    @abstractmethod
    def ActivateDeployment(
        self,
        request: ActivateDeploymentRequest,
        context: ServicerContext,
    ) -> ActivateDeploymentResponse:
        """Takes an existing (past) deployment and promotes the k8s resources / other things associated with it.
        Useful for debugging in local development where the auto activation doesn't work b/c no pubsub.
        """
    @abstractmethod
    def IndexDeployment(
        self,
        request: IndexDeploymentRequest,
        context: ServicerContext,
    ) -> IndexDeploymentResponse: ...
    @abstractmethod
    def DeployKubeComponents(
        self,
        request: DeployKubeComponentsRequest,
        context: ServicerContext,
    ) -> DeployKubeComponentsResponse:
        """Intermediate step in the deployment activation process. Allows for partial migration to the new
        go-api-server builder service.
        """
    @abstractmethod
    def RebuildDeployment(
        self,
        request: RebuildDeploymentRequest,
        context: ServicerContext,
    ) -> RebuildDeploymentResponse:
        """Takes an existing (past) deployment and re-creates the image associated with it,
        publishing the image as 'new_image_tag'.
        """
    @abstractmethod
    def RedeployDeployment(
        self,
        request: RedeployDeploymentRequest,
        context: ServicerContext,
    ) -> RedeployDeploymentResponse:
        """Triggers a new build with the source code from this deployment and deploys the result"""
    @abstractmethod
    def UploadSource(
        self,
        request: UploadSourceRequest,
        context: ServicerContext,
    ) -> UploadSourceResponse:
        """Triggers a new build with the provided source code archive and deploys the result"""
    @abstractmethod
    def LintSource(
        self,
        request: LintSourceRequest,
        context: ServicerContext,
    ) -> LintSourceResponse: ...
    @abstractmethod
    def GetDeploymentSteps(
        self,
        request: GetDeploymentStepsRequest,
        context: ServicerContext,
    ) -> GetDeploymentStepsResponse: ...
    @abstractmethod
    def GetDeploymentLogs(
        self,
        request: GetDeploymentLogsRequest,
        context: ServicerContext,
    ) -> GetDeploymentLogsResponse: ...
    @abstractmethod
    def GetClusterTimescaleDB(
        self,
        request: GetClusterTimescaleDBRequest,
        context: ServicerContext,
    ) -> GetClusterTimescaleDBResponse: ...
    @abstractmethod
    def GetClusterGateway(
        self,
        request: GetClusterGatewayRequest,
        context: ServicerContext,
    ) -> GetClusterGatewayResponse: ...
    @abstractmethod
    def GetClusterBackgroundPersistence(
        self,
        request: GetClusterBackgroundPersistenceRequest,
        context: ServicerContext,
    ) -> GetClusterBackgroundPersistenceResponse: ...
    @abstractmethod
    def CreateClusterTimescaleDB(
        self,
        request: CreateClusterTimescaleDBRequest,
        context: ServicerContext,
    ) -> CreateClusterTimescaleDBResponse: ...
    @abstractmethod
    def MigrateClusterTimescaleDB(
        self,
        request: MigrateClusterTimescaleDBRequest,
        context: ServicerContext,
    ) -> MigrateClusterTimescaleDBResponse: ...
    @abstractmethod
    def CreateClusterGateway(
        self,
        request: CreateClusterGatewayRequest,
        context: ServicerContext,
    ) -> CreateClusterGatewayResponse: ...
    @abstractmethod
    def CreateClusterBackgroundPersistence(
        self,
        request: CreateClusterBackgroundPersistenceRequest,
        context: ServicerContext,
    ) -> CreateClusterBackgroundPersistenceResponse: ...
    @abstractmethod
    def UpdateEnvironmentVariables(
        self,
        request: UpdateEnvironmentVariablesRequest,
        context: ServicerContext,
    ) -> UpdateEnvironmentVariablesResponse: ...
    @abstractmethod
    def StartBranch(
        self,
        request: StartBranchRequest,
        context: ServicerContext,
    ) -> StartBranchResponse: ...
    @abstractmethod
    def GetNodepools(
        self,
        request: GetNodepoolsRequest,
        context: ServicerContext,
    ) -> GetNodepoolsResponse: ...
    @abstractmethod
    def AddNodepool(
        self,
        request: AddNodepoolRequest,
        context: ServicerContext,
    ) -> AddNodepoolResponse: ...
    @abstractmethod
    def UpdateNodepool(
        self,
        request: UpdateNodepoolRequest,
        context: ServicerContext,
    ) -> UpdateNodepoolResponse: ...
    @abstractmethod
    def DeleteNodepool(
        self,
        request: DeleteNodepoolRequest,
        context: ServicerContext,
    ) -> DeleteNodepoolResponse: ...
    @abstractmethod
    def GetKarpenterNodepools(
        self,
        request: GetKarpenterNodepoolsRequest,
        context: ServicerContext,
    ) -> GetKarpenterNodepoolsResponse:
        """to be deprecated"""
    @abstractmethod
    def AddKarpenterNodepool(
        self,
        request: AddKarpenterNodepoolRequest,
        context: ServicerContext,
    ) -> AddKarpenterNodepoolResponse:
        """to be deprecated"""
    @abstractmethod
    def UpdateKarpenterNodepool(
        self,
        request: UpdateKarpenterNodepoolRequest,
        context: ServicerContext,
    ) -> UpdateKarpenterNodepoolResponse:
        """to be deprecated"""
    @abstractmethod
    def DeleteKarpenterNodepool(
        self,
        request: DeleteKarpenterNodepoolRequest,
        context: ServicerContext,
    ) -> DeleteKarpenterNodepoolResponse:
        """to be deprecated"""
    @abstractmethod
    def GetKarpenterInstallationMetadata(
        self,
        request: GetKarpenterInstallationMetadataRequest,
        context: ServicerContext,
    ) -> GetKarpenterInstallationMetadataResponse: ...
    @abstractmethod
    def GetTagWeights(
        self,
        request: GetTagWeightsRequest,
        context: ServicerContext,
    ) -> GetTagWeightsResponse: ...
    @abstractmethod
    def SetTagWeights(
        self,
        request: SetTagWeightsRequest,
        context: ServicerContext,
    ) -> SetTagWeightsResponse: ...

def add_BuilderServiceServicer_to_server(servicer: BuilderServiceServicer, server: Server) -> None: ...

class ClusterBuilderServiceStub:
    def __init__(self, channel: Channel) -> None: ...
    CreateKafkaTopics: UnaryUnaryMultiCallable[
        CreateKafkaTopicsRequest,
        CreateKafkaTopicsResponse,
    ]
    GetKafkaTopics: UnaryUnaryMultiCallable[
        GetKafkaTopicsRequest,
        GetKafkaTopicsResponse,
    ]

class ClusterBuilderServiceServicer(metaclass=ABCMeta):
    @abstractmethod
    def CreateKafkaTopics(
        self,
        request: CreateKafkaTopicsRequest,
        context: ServicerContext,
    ) -> CreateKafkaTopicsResponse: ...
    @abstractmethod
    def GetKafkaTopics(
        self,
        request: GetKafkaTopicsRequest,
        context: ServicerContext,
    ) -> GetKafkaTopicsResponse: ...

def add_ClusterBuilderServiceServicer_to_server(servicer: ClusterBuilderServiceServicer, server: Server) -> None: ...
