# coding: utf-8

"""
    Aron API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Generated by: https://openapi-generator.tech
"""


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from openapi_client.configuration import Configuration


class V1PodSpec(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        'active_deadline_seconds': 'int',
        'affinity': 'V1Affinity',
        'automount_service_account_token': 'bool',
        'containers': 'list[V1Container]',
        'dns_config': 'V1PodDNSConfig',
        'dns_policy': 'str',
        'enable_service_links': 'bool',
        'ephemeral_containers': 'list[V1EphemeralContainer]',
        'host_aliases': 'list[V1HostAlias]',
        'host_ipc': 'bool',
        'host_network': 'bool',
        'host_pid': 'bool',
        'hostname': 'str',
        'image_pull_secrets': 'list[V1LocalObjectReference]',
        'init_containers': 'list[V1Container]',
        'node_name': 'str',
        'node_selector': 'dict(str, str)',
        'overhead': 'dict(str, object)',
        'preemption_policy': 'str',
        'priority': 'int',
        'priority_class_name': 'str',
        'readiness_gates': 'list[V1PodReadinessGate]',
        'restart_policy': 'str',
        'runtime_class_name': 'str',
        'scheduler_name': 'str',
        'security_context': 'V1PodSecurityContext',
        'service_account': 'str',
        'service_account_name': 'str',
        'set_hostname_as_fqdn': 'bool',
        'share_process_namespace': 'bool',
        'subdomain': 'str',
        'termination_grace_period_seconds': 'int',
        'tolerations': 'list[V1Toleration]',
        'topology_spread_constraints': 'list[V1TopologySpreadConstraint]',
        'volumes': 'list[V1Volume]'
    }

    attribute_map = {
        'active_deadline_seconds': 'activeDeadlineSeconds',
        'affinity': 'affinity',
        'automount_service_account_token': 'automountServiceAccountToken',
        'containers': 'containers',
        'dns_config': 'dnsConfig',
        'dns_policy': 'dnsPolicy',
        'enable_service_links': 'enableServiceLinks',
        'ephemeral_containers': 'ephemeralContainers',
        'host_aliases': 'hostAliases',
        'host_ipc': 'hostIPC',
        'host_network': 'hostNetwork',
        'host_pid': 'hostPID',
        'hostname': 'hostname',
        'image_pull_secrets': 'imagePullSecrets',
        'init_containers': 'initContainers',
        'node_name': 'nodeName',
        'node_selector': 'nodeSelector',
        'overhead': 'overhead',
        'preemption_policy': 'preemptionPolicy',
        'priority': 'priority',
        'priority_class_name': 'priorityClassName',
        'readiness_gates': 'readinessGates',
        'restart_policy': 'restartPolicy',
        'runtime_class_name': 'runtimeClassName',
        'scheduler_name': 'schedulerName',
        'security_context': 'securityContext',
        'service_account': 'serviceAccount',
        'service_account_name': 'serviceAccountName',
        'set_hostname_as_fqdn': 'setHostnameAsFQDN',
        'share_process_namespace': 'shareProcessNamespace',
        'subdomain': 'subdomain',
        'termination_grace_period_seconds': 'terminationGracePeriodSeconds',
        'tolerations': 'tolerations',
        'topology_spread_constraints': 'topologySpreadConstraints',
        'volumes': 'volumes'
    }

    def __init__(self, active_deadline_seconds=None, affinity=None, automount_service_account_token=None, containers=None, dns_config=None, dns_policy=None, enable_service_links=None, ephemeral_containers=None, host_aliases=None, host_ipc=None, host_network=None, host_pid=None, hostname=None, image_pull_secrets=None, init_containers=None, node_name=None, node_selector=None, overhead=None, preemption_policy=None, priority=None, priority_class_name=None, readiness_gates=None, restart_policy=None, runtime_class_name=None, scheduler_name=None, security_context=None, service_account=None, service_account_name=None, set_hostname_as_fqdn=None, share_process_namespace=None, subdomain=None, termination_grace_period_seconds=None, tolerations=None, topology_spread_constraints=None, volumes=None, local_vars_configuration=None):  # noqa: E501
        """V1PodSpec - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._active_deadline_seconds = None
        self._affinity = None
        self._automount_service_account_token = None
        self._containers = None
        self._dns_config = None
        self._dns_policy = None
        self._enable_service_links = None
        self._ephemeral_containers = None
        self._host_aliases = None
        self._host_ipc = None
        self._host_network = None
        self._host_pid = None
        self._hostname = None
        self._image_pull_secrets = None
        self._init_containers = None
        self._node_name = None
        self._node_selector = None
        self._overhead = None
        self._preemption_policy = None
        self._priority = None
        self._priority_class_name = None
        self._readiness_gates = None
        self._restart_policy = None
        self._runtime_class_name = None
        self._scheduler_name = None
        self._security_context = None
        self._service_account = None
        self._service_account_name = None
        self._set_hostname_as_fqdn = None
        self._share_process_namespace = None
        self._subdomain = None
        self._termination_grace_period_seconds = None
        self._tolerations = None
        self._topology_spread_constraints = None
        self._volumes = None
        self.discriminator = None

        self.active_deadline_seconds = active_deadline_seconds
        if affinity is not None:
            self.affinity = affinity
        self.automount_service_account_token = automount_service_account_token
        if containers is not None:
            self.containers = containers
        if dns_config is not None:
            self.dns_config = dns_config
        if dns_policy is not None:
            self.dns_policy = dns_policy
        self.enable_service_links = enable_service_links
        if ephemeral_containers is not None:
            self.ephemeral_containers = ephemeral_containers
        if host_aliases is not None:
            self.host_aliases = host_aliases
        if host_ipc is not None:
            self.host_ipc = host_ipc
        if host_network is not None:
            self.host_network = host_network
        if host_pid is not None:
            self.host_pid = host_pid
        if hostname is not None:
            self.hostname = hostname
        if image_pull_secrets is not None:
            self.image_pull_secrets = image_pull_secrets
        if init_containers is not None:
            self.init_containers = init_containers
        if node_name is not None:
            self.node_name = node_name
        if node_selector is not None:
            self.node_selector = node_selector
        if overhead is not None:
            self.overhead = overhead
        self.preemption_policy = preemption_policy
        self.priority = priority
        if priority_class_name is not None:
            self.priority_class_name = priority_class_name
        if readiness_gates is not None:
            self.readiness_gates = readiness_gates
        if restart_policy is not None:
            self.restart_policy = restart_policy
        self.runtime_class_name = runtime_class_name
        if scheduler_name is not None:
            self.scheduler_name = scheduler_name
        if security_context is not None:
            self.security_context = security_context
        if service_account is not None:
            self.service_account = service_account
        if service_account_name is not None:
            self.service_account_name = service_account_name
        self.set_hostname_as_fqdn = set_hostname_as_fqdn
        self.share_process_namespace = share_process_namespace
        if subdomain is not None:
            self.subdomain = subdomain
        self.termination_grace_period_seconds = termination_grace_period_seconds
        if tolerations is not None:
            self.tolerations = tolerations
        if topology_spread_constraints is not None:
            self.topology_spread_constraints = topology_spread_constraints
        if volumes is not None:
            self.volumes = volumes

    @property
    def active_deadline_seconds(self):
        """Gets the active_deadline_seconds of this V1PodSpec.  # noqa: E501


        :return: The active_deadline_seconds of this V1PodSpec.  # noqa: E501
        :rtype: int
        """
        return self._active_deadline_seconds

    @active_deadline_seconds.setter
    def active_deadline_seconds(self, active_deadline_seconds):
        """Sets the active_deadline_seconds of this V1PodSpec.


        :param active_deadline_seconds: The active_deadline_seconds of this V1PodSpec.  # noqa: E501
        :type active_deadline_seconds: int
        """

        self._active_deadline_seconds = active_deadline_seconds

    @property
    def affinity(self):
        """Gets the affinity of this V1PodSpec.  # noqa: E501


        :return: The affinity of this V1PodSpec.  # noqa: E501
        :rtype: V1Affinity
        """
        return self._affinity

    @affinity.setter
    def affinity(self, affinity):
        """Sets the affinity of this V1PodSpec.


        :param affinity: The affinity of this V1PodSpec.  # noqa: E501
        :type affinity: V1Affinity
        """

        self._affinity = affinity

    @property
    def automount_service_account_token(self):
        """Gets the automount_service_account_token of this V1PodSpec.  # noqa: E501


        :return: The automount_service_account_token of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._automount_service_account_token

    @automount_service_account_token.setter
    def automount_service_account_token(self, automount_service_account_token):
        """Sets the automount_service_account_token of this V1PodSpec.


        :param automount_service_account_token: The automount_service_account_token of this V1PodSpec.  # noqa: E501
        :type automount_service_account_token: bool
        """

        self._automount_service_account_token = automount_service_account_token

    @property
    def containers(self):
        """Gets the containers of this V1PodSpec.  # noqa: E501


        :return: The containers of this V1PodSpec.  # noqa: E501
        :rtype: list[V1Container]
        """
        return self._containers

    @containers.setter
    def containers(self, containers):
        """Sets the containers of this V1PodSpec.


        :param containers: The containers of this V1PodSpec.  # noqa: E501
        :type containers: list[V1Container]
        """

        self._containers = containers

    @property
    def dns_config(self):
        """Gets the dns_config of this V1PodSpec.  # noqa: E501


        :return: The dns_config of this V1PodSpec.  # noqa: E501
        :rtype: V1PodDNSConfig
        """
        return self._dns_config

    @dns_config.setter
    def dns_config(self, dns_config):
        """Sets the dns_config of this V1PodSpec.


        :param dns_config: The dns_config of this V1PodSpec.  # noqa: E501
        :type dns_config: V1PodDNSConfig
        """

        self._dns_config = dns_config

    @property
    def dns_policy(self):
        """Gets the dns_policy of this V1PodSpec.  # noqa: E501


        :return: The dns_policy of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._dns_policy

    @dns_policy.setter
    def dns_policy(self, dns_policy):
        """Sets the dns_policy of this V1PodSpec.


        :param dns_policy: The dns_policy of this V1PodSpec.  # noqa: E501
        :type dns_policy: str
        """

        self._dns_policy = dns_policy

    @property
    def enable_service_links(self):
        """Gets the enable_service_links of this V1PodSpec.  # noqa: E501


        :return: The enable_service_links of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._enable_service_links

    @enable_service_links.setter
    def enable_service_links(self, enable_service_links):
        """Sets the enable_service_links of this V1PodSpec.


        :param enable_service_links: The enable_service_links of this V1PodSpec.  # noqa: E501
        :type enable_service_links: bool
        """

        self._enable_service_links = enable_service_links

    @property
    def ephemeral_containers(self):
        """Gets the ephemeral_containers of this V1PodSpec.  # noqa: E501


        :return: The ephemeral_containers of this V1PodSpec.  # noqa: E501
        :rtype: list[V1EphemeralContainer]
        """
        return self._ephemeral_containers

    @ephemeral_containers.setter
    def ephemeral_containers(self, ephemeral_containers):
        """Sets the ephemeral_containers of this V1PodSpec.


        :param ephemeral_containers: The ephemeral_containers of this V1PodSpec.  # noqa: E501
        :type ephemeral_containers: list[V1EphemeralContainer]
        """

        self._ephemeral_containers = ephemeral_containers

    @property
    def host_aliases(self):
        """Gets the host_aliases of this V1PodSpec.  # noqa: E501


        :return: The host_aliases of this V1PodSpec.  # noqa: E501
        :rtype: list[V1HostAlias]
        """
        return self._host_aliases

    @host_aliases.setter
    def host_aliases(self, host_aliases):
        """Sets the host_aliases of this V1PodSpec.


        :param host_aliases: The host_aliases of this V1PodSpec.  # noqa: E501
        :type host_aliases: list[V1HostAlias]
        """

        self._host_aliases = host_aliases

    @property
    def host_ipc(self):
        """Gets the host_ipc of this V1PodSpec.  # noqa: E501


        :return: The host_ipc of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._host_ipc

    @host_ipc.setter
    def host_ipc(self, host_ipc):
        """Sets the host_ipc of this V1PodSpec.


        :param host_ipc: The host_ipc of this V1PodSpec.  # noqa: E501
        :type host_ipc: bool
        """

        self._host_ipc = host_ipc

    @property
    def host_network(self):
        """Gets the host_network of this V1PodSpec.  # noqa: E501


        :return: The host_network of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._host_network

    @host_network.setter
    def host_network(self, host_network):
        """Sets the host_network of this V1PodSpec.


        :param host_network: The host_network of this V1PodSpec.  # noqa: E501
        :type host_network: bool
        """

        self._host_network = host_network

    @property
    def host_pid(self):
        """Gets the host_pid of this V1PodSpec.  # noqa: E501


        :return: The host_pid of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._host_pid

    @host_pid.setter
    def host_pid(self, host_pid):
        """Sets the host_pid of this V1PodSpec.


        :param host_pid: The host_pid of this V1PodSpec.  # noqa: E501
        :type host_pid: bool
        """

        self._host_pid = host_pid

    @property
    def hostname(self):
        """Gets the hostname of this V1PodSpec.  # noqa: E501


        :return: The hostname of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._hostname

    @hostname.setter
    def hostname(self, hostname):
        """Sets the hostname of this V1PodSpec.


        :param hostname: The hostname of this V1PodSpec.  # noqa: E501
        :type hostname: str
        """

        self._hostname = hostname

    @property
    def image_pull_secrets(self):
        """Gets the image_pull_secrets of this V1PodSpec.  # noqa: E501


        :return: The image_pull_secrets of this V1PodSpec.  # noqa: E501
        :rtype: list[V1LocalObjectReference]
        """
        return self._image_pull_secrets

    @image_pull_secrets.setter
    def image_pull_secrets(self, image_pull_secrets):
        """Sets the image_pull_secrets of this V1PodSpec.


        :param image_pull_secrets: The image_pull_secrets of this V1PodSpec.  # noqa: E501
        :type image_pull_secrets: list[V1LocalObjectReference]
        """

        self._image_pull_secrets = image_pull_secrets

    @property
    def init_containers(self):
        """Gets the init_containers of this V1PodSpec.  # noqa: E501


        :return: The init_containers of this V1PodSpec.  # noqa: E501
        :rtype: list[V1Container]
        """
        return self._init_containers

    @init_containers.setter
    def init_containers(self, init_containers):
        """Sets the init_containers of this V1PodSpec.


        :param init_containers: The init_containers of this V1PodSpec.  # noqa: E501
        :type init_containers: list[V1Container]
        """

        self._init_containers = init_containers

    @property
    def node_name(self):
        """Gets the node_name of this V1PodSpec.  # noqa: E501


        :return: The node_name of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._node_name

    @node_name.setter
    def node_name(self, node_name):
        """Sets the node_name of this V1PodSpec.


        :param node_name: The node_name of this V1PodSpec.  # noqa: E501
        :type node_name: str
        """

        self._node_name = node_name

    @property
    def node_selector(self):
        """Gets the node_selector of this V1PodSpec.  # noqa: E501


        :return: The node_selector of this V1PodSpec.  # noqa: E501
        :rtype: dict(str, str)
        """
        return self._node_selector

    @node_selector.setter
    def node_selector(self, node_selector):
        """Sets the node_selector of this V1PodSpec.


        :param node_selector: The node_selector of this V1PodSpec.  # noqa: E501
        :type node_selector: dict(str, str)
        """

        self._node_selector = node_selector

    @property
    def overhead(self):
        """Gets the overhead of this V1PodSpec.  # noqa: E501


        :return: The overhead of this V1PodSpec.  # noqa: E501
        :rtype: dict(str, object)
        """
        return self._overhead

    @overhead.setter
    def overhead(self, overhead):
        """Sets the overhead of this V1PodSpec.


        :param overhead: The overhead of this V1PodSpec.  # noqa: E501
        :type overhead: dict(str, object)
        """

        self._overhead = overhead

    @property
    def preemption_policy(self):
        """Gets the preemption_policy of this V1PodSpec.  # noqa: E501


        :return: The preemption_policy of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._preemption_policy

    @preemption_policy.setter
    def preemption_policy(self, preemption_policy):
        """Sets the preemption_policy of this V1PodSpec.


        :param preemption_policy: The preemption_policy of this V1PodSpec.  # noqa: E501
        :type preemption_policy: str
        """

        self._preemption_policy = preemption_policy

    @property
    def priority(self):
        """Gets the priority of this V1PodSpec.  # noqa: E501


        :return: The priority of this V1PodSpec.  # noqa: E501
        :rtype: int
        """
        return self._priority

    @priority.setter
    def priority(self, priority):
        """Sets the priority of this V1PodSpec.


        :param priority: The priority of this V1PodSpec.  # noqa: E501
        :type priority: int
        """

        self._priority = priority

    @property
    def priority_class_name(self):
        """Gets the priority_class_name of this V1PodSpec.  # noqa: E501


        :return: The priority_class_name of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._priority_class_name

    @priority_class_name.setter
    def priority_class_name(self, priority_class_name):
        """Sets the priority_class_name of this V1PodSpec.


        :param priority_class_name: The priority_class_name of this V1PodSpec.  # noqa: E501
        :type priority_class_name: str
        """

        self._priority_class_name = priority_class_name

    @property
    def readiness_gates(self):
        """Gets the readiness_gates of this V1PodSpec.  # noqa: E501


        :return: The readiness_gates of this V1PodSpec.  # noqa: E501
        :rtype: list[V1PodReadinessGate]
        """
        return self._readiness_gates

    @readiness_gates.setter
    def readiness_gates(self, readiness_gates):
        """Sets the readiness_gates of this V1PodSpec.


        :param readiness_gates: The readiness_gates of this V1PodSpec.  # noqa: E501
        :type readiness_gates: list[V1PodReadinessGate]
        """

        self._readiness_gates = readiness_gates

    @property
    def restart_policy(self):
        """Gets the restart_policy of this V1PodSpec.  # noqa: E501


        :return: The restart_policy of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._restart_policy

    @restart_policy.setter
    def restart_policy(self, restart_policy):
        """Sets the restart_policy of this V1PodSpec.


        :param restart_policy: The restart_policy of this V1PodSpec.  # noqa: E501
        :type restart_policy: str
        """

        self._restart_policy = restart_policy

    @property
    def runtime_class_name(self):
        """Gets the runtime_class_name of this V1PodSpec.  # noqa: E501


        :return: The runtime_class_name of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._runtime_class_name

    @runtime_class_name.setter
    def runtime_class_name(self, runtime_class_name):
        """Sets the runtime_class_name of this V1PodSpec.


        :param runtime_class_name: The runtime_class_name of this V1PodSpec.  # noqa: E501
        :type runtime_class_name: str
        """

        self._runtime_class_name = runtime_class_name

    @property
    def scheduler_name(self):
        """Gets the scheduler_name of this V1PodSpec.  # noqa: E501


        :return: The scheduler_name of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._scheduler_name

    @scheduler_name.setter
    def scheduler_name(self, scheduler_name):
        """Sets the scheduler_name of this V1PodSpec.


        :param scheduler_name: The scheduler_name of this V1PodSpec.  # noqa: E501
        :type scheduler_name: str
        """

        self._scheduler_name = scheduler_name

    @property
    def security_context(self):
        """Gets the security_context of this V1PodSpec.  # noqa: E501


        :return: The security_context of this V1PodSpec.  # noqa: E501
        :rtype: V1PodSecurityContext
        """
        return self._security_context

    @security_context.setter
    def security_context(self, security_context):
        """Sets the security_context of this V1PodSpec.


        :param security_context: The security_context of this V1PodSpec.  # noqa: E501
        :type security_context: V1PodSecurityContext
        """

        self._security_context = security_context

    @property
    def service_account(self):
        """Gets the service_account of this V1PodSpec.  # noqa: E501


        :return: The service_account of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._service_account

    @service_account.setter
    def service_account(self, service_account):
        """Sets the service_account of this V1PodSpec.


        :param service_account: The service_account of this V1PodSpec.  # noqa: E501
        :type service_account: str
        """

        self._service_account = service_account

    @property
    def service_account_name(self):
        """Gets the service_account_name of this V1PodSpec.  # noqa: E501


        :return: The service_account_name of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._service_account_name

    @service_account_name.setter
    def service_account_name(self, service_account_name):
        """Sets the service_account_name of this V1PodSpec.


        :param service_account_name: The service_account_name of this V1PodSpec.  # noqa: E501
        :type service_account_name: str
        """

        self._service_account_name = service_account_name

    @property
    def set_hostname_as_fqdn(self):
        """Gets the set_hostname_as_fqdn of this V1PodSpec.  # noqa: E501


        :return: The set_hostname_as_fqdn of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._set_hostname_as_fqdn

    @set_hostname_as_fqdn.setter
    def set_hostname_as_fqdn(self, set_hostname_as_fqdn):
        """Sets the set_hostname_as_fqdn of this V1PodSpec.


        :param set_hostname_as_fqdn: The set_hostname_as_fqdn of this V1PodSpec.  # noqa: E501
        :type set_hostname_as_fqdn: bool
        """

        self._set_hostname_as_fqdn = set_hostname_as_fqdn

    @property
    def share_process_namespace(self):
        """Gets the share_process_namespace of this V1PodSpec.  # noqa: E501


        :return: The share_process_namespace of this V1PodSpec.  # noqa: E501
        :rtype: bool
        """
        return self._share_process_namespace

    @share_process_namespace.setter
    def share_process_namespace(self, share_process_namespace):
        """Sets the share_process_namespace of this V1PodSpec.


        :param share_process_namespace: The share_process_namespace of this V1PodSpec.  # noqa: E501
        :type share_process_namespace: bool
        """

        self._share_process_namespace = share_process_namespace

    @property
    def subdomain(self):
        """Gets the subdomain of this V1PodSpec.  # noqa: E501


        :return: The subdomain of this V1PodSpec.  # noqa: E501
        :rtype: str
        """
        return self._subdomain

    @subdomain.setter
    def subdomain(self, subdomain):
        """Sets the subdomain of this V1PodSpec.


        :param subdomain: The subdomain of this V1PodSpec.  # noqa: E501
        :type subdomain: str
        """

        self._subdomain = subdomain

    @property
    def termination_grace_period_seconds(self):
        """Gets the termination_grace_period_seconds of this V1PodSpec.  # noqa: E501


        :return: The termination_grace_period_seconds of this V1PodSpec.  # noqa: E501
        :rtype: int
        """
        return self._termination_grace_period_seconds

    @termination_grace_period_seconds.setter
    def termination_grace_period_seconds(self, termination_grace_period_seconds):
        """Sets the termination_grace_period_seconds of this V1PodSpec.


        :param termination_grace_period_seconds: The termination_grace_period_seconds of this V1PodSpec.  # noqa: E501
        :type termination_grace_period_seconds: int
        """

        self._termination_grace_period_seconds = termination_grace_period_seconds

    @property
    def tolerations(self):
        """Gets the tolerations of this V1PodSpec.  # noqa: E501


        :return: The tolerations of this V1PodSpec.  # noqa: E501
        :rtype: list[V1Toleration]
        """
        return self._tolerations

    @tolerations.setter
    def tolerations(self, tolerations):
        """Sets the tolerations of this V1PodSpec.


        :param tolerations: The tolerations of this V1PodSpec.  # noqa: E501
        :type tolerations: list[V1Toleration]
        """

        self._tolerations = tolerations

    @property
    def topology_spread_constraints(self):
        """Gets the topology_spread_constraints of this V1PodSpec.  # noqa: E501


        :return: The topology_spread_constraints of this V1PodSpec.  # noqa: E501
        :rtype: list[V1TopologySpreadConstraint]
        """
        return self._topology_spread_constraints

    @topology_spread_constraints.setter
    def topology_spread_constraints(self, topology_spread_constraints):
        """Sets the topology_spread_constraints of this V1PodSpec.


        :param topology_spread_constraints: The topology_spread_constraints of this V1PodSpec.  # noqa: E501
        :type topology_spread_constraints: list[V1TopologySpreadConstraint]
        """

        self._topology_spread_constraints = topology_spread_constraints

    @property
    def volumes(self):
        """Gets the volumes of this V1PodSpec.  # noqa: E501


        :return: The volumes of this V1PodSpec.  # noqa: E501
        :rtype: list[V1Volume]
        """
        return self._volumes

    @volumes.setter
    def volumes(self, volumes):
        """Sets the volumes of this V1PodSpec.


        :param volumes: The volumes of this V1PodSpec.  # noqa: E501
        :type volumes: list[V1Volume]
        """

        self._volumes = volumes

    def to_dict(self, serialize=False):
        """Returns the model properties as a dict"""
        result = {}

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: convert(x),
                    value
                ))
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], convert(item[1])),
                    value.items()
                ))
            else:
                result[attr] = convert(value)

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, V1PodSpec):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, V1PodSpec):
            return True

        return self.to_dict() != other.to_dict()
