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

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _CommunicationManagerType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _CommunicationManagerTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CommunicationManagerType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID_MANAGER: _CommunicationManagerType.ValueType  # 0
    DIRECT_MANAGER: _CommunicationManagerType.ValueType  # 1
    ADMIRAL_MANAGER: _CommunicationManagerType.ValueType  # 2

class CommunicationManagerType(_CommunicationManagerType, metaclass=_CommunicationManagerTypeEnumTypeWrapper): ...

INVALID_MANAGER: CommunicationManagerType.ValueType  # 0
DIRECT_MANAGER: CommunicationManagerType.ValueType  # 1
ADMIRAL_MANAGER: CommunicationManagerType.ValueType  # 2
global___CommunicationManagerType = CommunicationManagerType

class QwakEnvironmentConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EDGE_SERVICES_URL_FIELD_NUMBER: builtins.int
    MANAGEMENT_ACCESS_URL_FIELD_NUMBER: builtins.int
    MODEL_API_URL_FIELD_NUMBER: builtins.int
    ANALYTICS_DATA_API_URL_FIELD_NUMBER: builtins.int
    OBJECT_STORAGE_BUCKET_FIELD_NUMBER: builtins.int
    BI_SYSTEM_API_KEY_FIELD_NUMBER: builtins.int
    CLOUD_CONFIGURATION_FIELD_NUMBER: builtins.int
    FEATURE_STORE_CONFIGURATION_FIELD_NUMBER: builtins.int
    CONTAINER_REGISTRY_PREFIX_FIELD_NUMBER: builtins.int
    COMMUNICATION_MANAGER_TYPE_FIELD_NUMBER: builtins.int
    edge_services_url: builtins.str
    """The Grpc service url on edge"""
    management_access_url: builtins.str
    """The management url of inter qwak services communication"""
    model_api_url: builtins.str
    """The endpoint of the models of actions like inference"""
    analytics_data_api_url: builtins.str
    """The endpoint which the analytics data is send to"""
    object_storage_bucket: builtins.str
    """The object storage bucket name of the environment"""
    bi_system_api_key: builtins.str
    """The BI system token of the environment"""
    @property
    def cloud_configuration(self) -> global___QwakCloudConfiguration:
        """Configuration specific for the environment hosting cloud"""
    @property
    def feature_store_configuration(self) -> global___FeatureStoreConfiguration:
        """Feature store configuration"""
    container_registry_prefix: builtins.str
    """The docker registry prefix, we got it with high number because we might want to remove it in the near future."""
    communication_manager_type: global___CommunicationManagerType.ValueType
    """Qwak communication type"""
    def __init__(
        self,
        *,
        edge_services_url: builtins.str = ...,
        management_access_url: builtins.str = ...,
        model_api_url: builtins.str = ...,
        analytics_data_api_url: builtins.str = ...,
        object_storage_bucket: builtins.str = ...,
        bi_system_api_key: builtins.str = ...,
        cloud_configuration: global___QwakCloudConfiguration | None = ...,
        feature_store_configuration: global___FeatureStoreConfiguration | None = ...,
        container_registry_prefix: builtins.str = ...,
        communication_manager_type: global___CommunicationManagerType.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cloud_configuration", b"cloud_configuration", "feature_store_configuration", b"feature_store_configuration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["analytics_data_api_url", b"analytics_data_api_url", "bi_system_api_key", b"bi_system_api_key", "cloud_configuration", b"cloud_configuration", "communication_manager_type", b"communication_manager_type", "container_registry_prefix", b"container_registry_prefix", "edge_services_url", b"edge_services_url", "feature_store_configuration", b"feature_store_configuration", "management_access_url", b"management_access_url", "model_api_url", b"model_api_url", "object_storage_bucket", b"object_storage_bucket"]) -> None: ...

global___QwakEnvironmentConfiguration = QwakEnvironmentConfiguration

class FeatureStoreConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AIRFLOW_CONNECTION_ID_FIELD_NUMBER: builtins.int
    REDIS_ADDRESS_FIELD_NUMBER: builtins.int
    USER_CODE_EXECUTION_ALLOWED_FIELD_NUMBER: builtins.int
    airflow_connection_id: builtins.str
    """The airflow connection id"""
    redis_address: builtins.str
    """The address to connect redis"""
    user_code_execution_allowed: builtins.bool
    """Boolean indicator is user code (deserializers, transformations) allowed to be executed
    in the feature store - this should be False for multi tenant SaaS envs (shared between
    multiple customers)
    """
    def __init__(
        self,
        *,
        airflow_connection_id: builtins.str = ...,
        redis_address: builtins.str = ...,
        user_code_execution_allowed: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["airflow_connection_id", b"airflow_connection_id", "redis_address", b"redis_address", "user_code_execution_allowed", b"user_code_execution_allowed"]) -> None: ...

global___FeatureStoreConfiguration = FeatureStoreConfiguration

class QwakCloudConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AWS_CLOUD_CONFIGURATION_FIELD_NUMBER: builtins.int
    GCP_CLOUD_CONFIGURATION_FIELD_NUMBER: builtins.int
    @property
    def aws_cloud_configuration(self) -> global___AwsCloudConfiguration:
        """Configuration specific to AWS cloud provider"""
    @property
    def gcp_cloud_configuration(self) -> global___GcpCloudConfiguration:
        """Configuration specific to GCP cloud provider"""
    def __init__(
        self,
        *,
        aws_cloud_configuration: global___AwsCloudConfiguration | None = ...,
        gcp_cloud_configuration: global___GcpCloudConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["aws_cloud_configuration", b"aws_cloud_configuration", "configuration", b"configuration", "gcp_cloud_configuration", b"gcp_cloud_configuration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aws_cloud_configuration", b"aws_cloud_configuration", "configuration", b"configuration", "gcp_cloud_configuration", b"gcp_cloud_configuration"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["configuration", b"configuration"]) -> typing_extensions.Literal["aws_cloud_configuration", "gcp_cloud_configuration"] | None: ...

global___QwakCloudConfiguration = QwakCloudConfiguration

class AwsCloudConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REGION_FIELD_NUMBER: builtins.int
    ROLE_ARN_FIELD_NUMBER: builtins.int
    FEATURE_STORE_EMR_FIELD_NUMBER: builtins.int
    EXTERNAL_ID_FIELD_NUMBER: builtins.int
    WORKGROUP_FIELD_NUMBER: builtins.int
    region: builtins.str
    """The region of the environment"""
    role_arn: builtins.str
    """The role ARN which qwak platform perform actions on behalf"""
    @property
    def feature_store_emr(self) -> global___FeatureStoreEmr:
        """Feature store emr configuration"""
    external_id: builtins.str
    workgroup: builtins.str
    def __init__(
        self,
        *,
        region: builtins.str = ...,
        role_arn: builtins.str = ...,
        feature_store_emr: global___FeatureStoreEmr | None = ...,
        external_id: builtins.str = ...,
        workgroup: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["feature_store_emr", b"feature_store_emr"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["external_id", b"external_id", "feature_store_emr", b"feature_store_emr", "region", b"region", "role_arn", b"role_arn", "workgroup", b"workgroup"]) -> None: ...

global___AwsCloudConfiguration = AwsCloudConfiguration

class GcpCloudConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    REGION_FIELD_NUMBER: builtins.int
    BIG_LAKE_CONNECTION_NAME_FIELD_NUMBER: builtins.int
    BIG_LAKE_LOCATION_FIELD_NUMBER: builtins.int
    SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """The project id of the environment"""
    region: builtins.str
    """The region of the environment"""
    big_lake_connection_name: builtins.str
    big_lake_location: builtins.str
    """The location of the big lake a.k.a region"""
    service_account: builtins.str
    """The service account that qwak platform perform actions on behalf"""
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
        region: builtins.str = ...,
        big_lake_connection_name: builtins.str = ...,
        big_lake_location: builtins.str = ...,
        service_account: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["big_lake_connection_name", b"big_lake_connection_name", "big_lake_location", b"big_lake_location", "project_id", b"project_id", "region", b"region", "service_account", b"service_account"]) -> None: ...

global___GcpCloudConfiguration = GcpCloudConfiguration

class FeatureStoreEmr(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EC2_KEY_NAME_FIELD_NUMBER: builtins.int
    EC2_SUBNET_ID_FIELD_NUMBER: builtins.int
    EMR_JOB_FLOW_ROLE_FIELD_NUMBER: builtins.int
    EMR_SERVICE_ROLE_FIELD_NUMBER: builtins.int
    EC2_ADDITIONAL_SECURITY_GROUP_FIELD_NUMBER: builtins.int
    TARGET_ON_DEMAND_CAPACITY_WORKERS_FIELD_NUMBER: builtins.int
    ec2_key_name: builtins.str
    """EC2 key name for ssh into the EMR nodes"""
    ec2_subnet_id: builtins.str
    """The subnet id for ec2 running the EMR"""
    emr_job_flow_role: builtins.str
    """Aws role for EMR workers"""
    emr_service_role: builtins.str
    """Aws role for the emr service orchestrator"""
    ec2_additional_security_group: builtins.str
    """Additional security groups for EMR nodes (EC2)"""
    target_on_demand_capacity_workers: builtins.int
    """Target on demand capacity workers requested for EMR"""
    def __init__(
        self,
        *,
        ec2_key_name: builtins.str = ...,
        ec2_subnet_id: builtins.str = ...,
        emr_job_flow_role: builtins.str = ...,
        emr_service_role: builtins.str = ...,
        ec2_additional_security_group: builtins.str = ...,
        target_on_demand_capacity_workers: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["ec2_additional_security_group", b"ec2_additional_security_group", "ec2_key_name", b"ec2_key_name", "ec2_subnet_id", b"ec2_subnet_id", "emr_job_flow_role", b"emr_job_flow_role", "emr_service_role", b"emr_service_role", "target_on_demand_capacity_workers", b"target_on_demand_capacity_workers"]) -> None: ...

global___FeatureStoreEmr = FeatureStoreEmr
