from kubernetes_asyncio.client.models import V1ServicePort
from kubernetes_asyncio.client.models import V1SessionAffinityConfig
from typing import Any

class V1ServiceSpec:
    def __eq__(self, other: Any) -> bool: ...
    def __init__(self, allocate_load_balancer_node_ports: bool | None = None, cluster_ip: str | None = None, cluster_ips: list[str] | None = None, external_ips: list[str] | None = None, external_name: str | None = None, external_traffic_policy: str | None = None, health_check_node_port: int | None = None, internal_traffic_policy: str | None = None, ip_families: list[str] | None = None, ip_family_policy: str | None = None, load_balancer_class: str | None = None, load_balancer_ip: str | None = None, load_balancer_source_ranges: list[str] | None = None, ports: list[V1ServicePort] | None = None, publish_not_ready_addresses: bool | None = None, selector: dict[str, str] | None = None, session_affinity: str | None = None, session_affinity_config: V1SessionAffinityConfig | None = None, traffic_distribution: str | None = None, type: str | None = None, local_vars_configuration: Any | None = None) -> None: ...
    def __ne__(self, other: Any) -> bool: ...
    def __repr__(self) -> str: ...
    def to_dict(self, serialize: bool = False) -> dict[str, Any]: ...
    def to_str(self) -> str: ...
    @property
    def allocate_load_balancer_node_ports(self) -> bool: ...
    @allocate_load_balancer_node_ports.setter
    def allocate_load_balancer_node_ports(self, allocate_load_balancer_node_ports: bool) -> None: ...
    @property
    def cluster_ip(self) -> str: ...
    @cluster_ip.setter
    def cluster_ip(self, cluster_ip: str) -> None: ...
    @property
    def cluster_ips(self) -> list[str]: ...
    @cluster_ips.setter
    def cluster_ips(self, cluster_ips: list[str]) -> None: ...
    @property
    def external_ips(self) -> list[str]: ...
    @external_ips.setter
    def external_ips(self, external_ips: list[str]) -> None: ...
    @property
    def external_name(self) -> str: ...
    @external_name.setter
    def external_name(self, external_name: str) -> None: ...
    @property
    def external_traffic_policy(self) -> str: ...
    @external_traffic_policy.setter
    def external_traffic_policy(self, external_traffic_policy: str) -> None: ...
    @property
    def health_check_node_port(self) -> int: ...
    @health_check_node_port.setter
    def health_check_node_port(self, health_check_node_port: int) -> None: ...
    @property
    def internal_traffic_policy(self) -> str: ...
    @internal_traffic_policy.setter
    def internal_traffic_policy(self, internal_traffic_policy: str) -> None: ...
    @property
    def ip_families(self) -> list[str]: ...
    @ip_families.setter
    def ip_families(self, ip_families: list[str]) -> None: ...
    @property
    def ip_family_policy(self) -> str: ...
    @ip_family_policy.setter
    def ip_family_policy(self, ip_family_policy: str) -> None: ...
    @property
    def load_balancer_class(self) -> str: ...
    @load_balancer_class.setter
    def load_balancer_class(self, load_balancer_class: str) -> None: ...
    @property
    def load_balancer_ip(self) -> str: ...
    @load_balancer_ip.setter
    def load_balancer_ip(self, load_balancer_ip: str) -> None: ...
    @property
    def load_balancer_source_ranges(self) -> list[str]: ...
    @load_balancer_source_ranges.setter
    def load_balancer_source_ranges(self, load_balancer_source_ranges: list[str]) -> None: ...
    @property
    def ports(self) -> list[V1ServicePort]: ...
    @ports.setter
    def ports(self, ports: list[V1ServicePort]) -> None: ...
    @property
    def publish_not_ready_addresses(self) -> bool: ...
    @publish_not_ready_addresses.setter
    def publish_not_ready_addresses(self, publish_not_ready_addresses: bool) -> None: ...
    @property
    def selector(self) -> dict[str, str]: ...
    @selector.setter
    def selector(self, selector: dict[str, str]) -> None: ...
    @property
    def session_affinity(self) -> str: ...
    @session_affinity.setter
    def session_affinity(self, session_affinity: str) -> None: ...
    @property
    def session_affinity_config(self) -> V1SessionAffinityConfig: ...
    @session_affinity_config.setter
    def session_affinity_config(self, session_affinity_config: V1SessionAffinityConfig) -> None: ...
    @property
    def traffic_distribution(self) -> str: ...
    @traffic_distribution.setter
    def traffic_distribution(self, traffic_distribution: str) -> None: ...
    @property
    def type(self) -> str: ...
    @type.setter
    def type(self, type: str) -> None: ...
