"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class StopClientsMsg(google.protobuf.message.Message):
    """Message that the client sends to stop the clients processes"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StopClientsMsg = StopClientsMsg

@typing_extensions.final
class StartClientsMsg(google.protobuf.message.Message):
    """Message that the client sends to start the clients processes"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TIME_STEP_LEN_SECONDS_FIELD_NUMBER: builtins.int
    WORKFLOWS_CONFIG_FIELD_NUMBER: builtins.int
    CLIENTS_FIELD_NUMBER: builtins.int
    time_step_len_seconds: builtins.int
    @property
    def workflows_config(self) -> global___WorkflowsConfigDTO: ...
    @property
    def clients(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ClientDTO]: ...
    def __init__(
        self,
        *,
        time_step_len_seconds: builtins.int = ...,
        workflows_config: global___WorkflowsConfigDTO | None = ...,
        clients: collections.abc.Iterable[global___ClientDTO] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["workflows_config", b"workflows_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["clients", b"clients", "time_step_len_seconds", b"time_step_len_seconds", "workflows_config", b"workflows_config"]) -> None: ...

global___StartClientsMsg = StartClientsMsg

@typing_extensions.final
class ClientDTO(google.protobuf.message.Message):
    """ClientDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    WORKFLOW_DISTRIBUTION_FIELD_NUMBER: builtins.int
    CONSTANT_ARRIVAL_CONFIG_FIELD_NUMBER: builtins.int
    SINE_ARRIVAL_CONFIG_FIELD_NUMBER: builtins.int
    SPIKING_ARRIVAL_CONFIG_FIELD_NUMBER: builtins.int
    PIECE_WISE_CONSTANT_ARRIVAL_CONFIG_FIELD_NUMBER: builtins.int
    EPTMP_ARRIVAL_CONFIG_FIELD_NUMBER: builtins.int
    MU_FIELD_NUMBER: builtins.int
    EXPONENTIAL_SERVICE_TIME_FIELD_NUMBER: builtins.int
    ARRIVAL_TYPE_FIELD_NUMBER: builtins.int
    id: builtins.int
    @property
    def workflow_distribution(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def constant_arrival_config(self) -> global___ConstantArrivalConfigDTO: ...
    @property
    def sine_arrival_config(self) -> global___SineArrivalConfigDTO: ...
    @property
    def spiking_arrival_config(self) -> global___SpikingArrivalConfigDTO: ...
    @property
    def piece_wise_constant_arrival_config(self) -> global___PieceWiseConstantArrivalConfigDTO: ...
    @property
    def eptmp_arrival_config(self) -> global___EPTMPArrivalConfigDTO: ...
    mu: builtins.float
    exponential_service_time: builtins.bool
    arrival_type: builtins.int
    def __init__(
        self,
        *,
        id: builtins.int = ...,
        workflow_distribution: collections.abc.Iterable[builtins.float] | None = ...,
        constant_arrival_config: global___ConstantArrivalConfigDTO | None = ...,
        sine_arrival_config: global___SineArrivalConfigDTO | None = ...,
        spiking_arrival_config: global___SpikingArrivalConfigDTO | None = ...,
        piece_wise_constant_arrival_config: global___PieceWiseConstantArrivalConfigDTO | None = ...,
        eptmp_arrival_config: global___EPTMPArrivalConfigDTO | None = ...,
        mu: builtins.float = ...,
        exponential_service_time: builtins.bool = ...,
        arrival_type: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["constant_arrival_config", b"constant_arrival_config", "eptmp_arrival_config", b"eptmp_arrival_config", "piece_wise_constant_arrival_config", b"piece_wise_constant_arrival_config", "sine_arrival_config", b"sine_arrival_config", "spiking_arrival_config", b"spiking_arrival_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arrival_type", b"arrival_type", "constant_arrival_config", b"constant_arrival_config", "eptmp_arrival_config", b"eptmp_arrival_config", "exponential_service_time", b"exponential_service_time", "id", b"id", "mu", b"mu", "piece_wise_constant_arrival_config", b"piece_wise_constant_arrival_config", "sine_arrival_config", b"sine_arrival_config", "spiking_arrival_config", b"spiking_arrival_config", "workflow_distribution", b"workflow_distribution"]) -> None: ...

global___ClientDTO = ClientDTO

@typing_extensions.final
class GetClientsMsg(google.protobuf.message.Message):
    """Message that the client sends to extract the ClientsDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___GetClientsMsg = GetClientsMsg

@typing_extensions.final
class StartProducerMsg(google.protobuf.message.Message):
    """Message that the client sends to start the producer thread"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IP_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    TIME_STEP_LEN_SECONDS_FIELD_NUMBER: builtins.int
    ip: builtins.str
    port: builtins.int
    time_step_len_seconds: builtins.int
    def __init__(
        self,
        *,
        ip: builtins.str = ...,
        port: builtins.int = ...,
        time_step_len_seconds: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["ip", b"ip", "port", b"port", "time_step_len_seconds", b"time_step_len_seconds"]) -> None: ...

global___StartProducerMsg = StartProducerMsg

@typing_extensions.final
class StopProducerMsg(google.protobuf.message.Message):
    """Message that the client sends to start the producer thread"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StopProducerMsg = StopProducerMsg

@typing_extensions.final
class ProbabilityDistributionDTO(google.protobuf.message.Message):
    """ProbabilityDistributionDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROBABILITIES_FIELD_NUMBER: builtins.int
    @property
    def probabilities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        probabilities: collections.abc.Iterable[builtins.float] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["probabilities", b"probabilities"]) -> None: ...

global___ProbabilityDistributionDTO = ProbabilityDistributionDTO

@typing_extensions.final
class TransitionMatrixDTO(google.protobuf.message.Message):
    """TransitionMatrixDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROWS_FIELD_NUMBER: builtins.int
    @property
    def rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbabilityDistributionDTO]: ...
    def __init__(
        self,
        *,
        rows: collections.abc.Iterable[global___ProbabilityDistributionDTO] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["rows", b"rows"]) -> None: ...

global___TransitionMatrixDTO = TransitionMatrixDTO

@typing_extensions.final
class WorkflowMarkovChainDTO(google.protobuf.message.Message):
    """WorkflowMarkovChainDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TRANSITION_MATRIX_FIELD_NUMBER: builtins.int
    INITIAL_STATE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    @property
    def transition_matrix(self) -> global___TransitionMatrixDTO: ...
    initial_state: builtins.int
    id: builtins.int
    def __init__(
        self,
        *,
        transition_matrix: global___TransitionMatrixDTO | None = ...,
        initial_state: builtins.int = ...,
        id: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["transition_matrix", b"transition_matrix"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "initial_state", b"initial_state", "transition_matrix", b"transition_matrix"]) -> None: ...

global___WorkflowMarkovChainDTO = WorkflowMarkovChainDTO

@typing_extensions.final
class WorkflowServiceDTO(google.protobuf.message.Message):
    """WorkflowServiceDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    IPS_FIELD_NUMBER: builtins.int
    COMMANDS_FIELD_NUMBER: builtins.int
    id: builtins.int
    @property
    def ips(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def commands(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodeCommandsDTO]: ...
    def __init__(
        self,
        *,
        id: builtins.int = ...,
        ips: collections.abc.Iterable[builtins.str] | None = ...,
        commands: collections.abc.Iterable[global___NodeCommandsDTO] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["commands", b"commands", "id", b"id", "ips", b"ips"]) -> None: ...

global___WorkflowServiceDTO = WorkflowServiceDTO

@typing_extensions.final
class NodeCommandsDTO(google.protobuf.message.Message):
    """NodeCommandsDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COMMANDS_FIELD_NUMBER: builtins.int
    @property
    def commands(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        commands: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["commands", b"commands"]) -> None: ...

global___NodeCommandsDTO = NodeCommandsDTO

@typing_extensions.final
class WorkflowsConfigDTO(google.protobuf.message.Message):
    """WorkflowServiceDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORKFLOW_MARKOV_CHAINS_FIELD_NUMBER: builtins.int
    WORKFLOW_SERVICES_FIELD_NUMBER: builtins.int
    @property
    def workflow_markov_chains(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WorkflowMarkovChainDTO]: ...
    @property
    def workflow_services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WorkflowServiceDTO]: ...
    def __init__(
        self,
        *,
        workflow_markov_chains: collections.abc.Iterable[global___WorkflowMarkovChainDTO] | None = ...,
        workflow_services: collections.abc.Iterable[global___WorkflowServiceDTO] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["workflow_markov_chains", b"workflow_markov_chains", "workflow_services", b"workflow_services"]) -> None: ...

global___WorkflowsConfigDTO = WorkflowsConfigDTO

@typing_extensions.final
class ClientsDTO(google.protobuf.message.Message):
    """Message that the server returns when requested by the client"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NUM_CLIENTS_FIELD_NUMBER: builtins.int
    CLIENT_PROCESS_ACTIVE_FIELD_NUMBER: builtins.int
    PRODUCER_ACTIVE_FIELD_NUMBER: builtins.int
    CLIENTS_TIME_STEP_LEN_SECONDS_FIELD_NUMBER: builtins.int
    PRODUCER_TIME_STEP_LEN_SECONDS_FIELD_NUMBER: builtins.int
    num_clients: builtins.int
    client_process_active: builtins.bool
    producer_active: builtins.bool
    clients_time_step_len_seconds: builtins.int
    producer_time_step_len_seconds: builtins.int
    def __init__(
        self,
        *,
        num_clients: builtins.int = ...,
        client_process_active: builtins.bool = ...,
        producer_active: builtins.bool = ...,
        clients_time_step_len_seconds: builtins.int = ...,
        producer_time_step_len_seconds: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["client_process_active", b"client_process_active", "clients_time_step_len_seconds", b"clients_time_step_len_seconds", "num_clients", b"num_clients", "producer_active", b"producer_active", "producer_time_step_len_seconds", b"producer_time_step_len_seconds"]) -> None: ...

global___ClientsDTO = ClientsDTO

@typing_extensions.final
class ConstantArrivalConfigDTO(google.protobuf.message.Message):
    """ConstantArrivalConfigDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LAMB_FIELD_NUMBER: builtins.int
    lamb: builtins.float
    def __init__(
        self,
        *,
        lamb: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["lamb", b"lamb"]) -> None: ...

global___ConstantArrivalConfigDTO = ConstantArrivalConfigDTO

@typing_extensions.final
class SineArrivalConfigDTO(google.protobuf.message.Message):
    """SineArrivalConfigDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LAMB_FIELD_NUMBER: builtins.int
    TIME_SCALING_FACTOR_FIELD_NUMBER: builtins.int
    PERIOD_SCALING_FACTOR_FIELD_NUMBER: builtins.int
    lamb: builtins.float
    time_scaling_factor: builtins.float
    period_scaling_factor: builtins.float
    def __init__(
        self,
        *,
        lamb: builtins.float = ...,
        time_scaling_factor: builtins.float = ...,
        period_scaling_factor: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["lamb", b"lamb", "period_scaling_factor", b"period_scaling_factor", "time_scaling_factor", b"time_scaling_factor"]) -> None: ...

global___SineArrivalConfigDTO = SineArrivalConfigDTO

@typing_extensions.final
class SpikingArrivalConfigDTO(google.protobuf.message.Message):
    """SpikingArrivalConfigDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EXPONENTS_FIELD_NUMBER: builtins.int
    FACTORS_FIELD_NUMBER: builtins.int
    @property
    def exponents(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def factors(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        exponents: collections.abc.Iterable[builtins.float] | None = ...,
        factors: collections.abc.Iterable[builtins.float] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exponents", b"exponents", "factors", b"factors"]) -> None: ...

global___SpikingArrivalConfigDTO = SpikingArrivalConfigDTO

@typing_extensions.final
class PieceWiseConstantArrivalConfigDTO(google.protobuf.message.Message):
    """PieceWiseConstantArrivalConfigDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BREAKVALUES_FIELD_NUMBER: builtins.int
    BREAKPOINTS_FIELD_NUMBER: builtins.int
    @property
    def breakvalues(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def breakpoints(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        breakvalues: collections.abc.Iterable[builtins.float] | None = ...,
        breakpoints: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["breakpoints", b"breakpoints", "breakvalues", b"breakvalues"]) -> None: ...

global___PieceWiseConstantArrivalConfigDTO = PieceWiseConstantArrivalConfigDTO

@typing_extensions.final
class EPTMPArrivalConfigDTO(google.protobuf.message.Message):
    """EPTMPArrivalConfigDTO"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    THETAS_FIELD_NUMBER: builtins.int
    GAMMAS_FIELD_NUMBER: builtins.int
    PHIS_FIELD_NUMBER: builtins.int
    OMEGAS_FIELD_NUMBER: builtins.int
    @property
    def thetas(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def gammas(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def phis(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def omegas(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        thetas: collections.abc.Iterable[builtins.float] | None = ...,
        gammas: collections.abc.Iterable[builtins.float] | None = ...,
        phis: collections.abc.Iterable[builtins.float] | None = ...,
        omegas: collections.abc.Iterable[builtins.float] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["gammas", b"gammas", "omegas", b"omegas", "phis", b"phis", "thetas", b"thetas"]) -> None: ...

global___EPTMPArrivalConfigDTO = EPTMPArrivalConfigDTO
