# coding: utf-8

"""
    acep

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: common-version
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from volcenginesdkcore.configuration import Configuration


class CreatePodOneStepRequest(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_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.
    """
    swagger_types = {
        'app_list': 'list[AppListForCreatePodOneStepInput]',
        'configuration_code': 'str',
        'custom_route_id': 'str',
        'dnsid': 'str',
        'data_size': 'str',
        'dc': 'str',
        'display_layout_id': 'str',
        'down_bandwidth_limit': 'int',
        'host_id': 'str',
        'ip_white_list': 'str',
        'image_id': 'str',
        'is_preinstall': 'bool',
        'is_selinux_on': 'bool',
        'overlay_persist_property': 'list[OverlayPersistPropertyForCreatePodOneStepInput]',
        'overlay_property': 'list[OverlayPropertyForCreatePodOneStepInput]',
        'overlay_settings': 'list[OverlaySettingForCreatePodOneStepInput]',
        'phone_template_id': 'str',
        'pod_name': 'str',
        'port_mapping_rule_id_list': 'list[str]',
        'product_id': 'str',
        'resource_type': 'int',
        'tag_id': 'str',
        'up_bandwidth_limit': 'int',
        'use_phone_template': 'int'
    }

    attribute_map = {
        'app_list': 'AppList',
        'configuration_code': 'ConfigurationCode',
        'custom_route_id': 'CustomRouteId',
        'dnsid': 'DNSId',
        'data_size': 'DataSize',
        'dc': 'Dc',
        'display_layout_id': 'DisplayLayoutId',
        'down_bandwidth_limit': 'DownBandwidthLimit',
        'host_id': 'HostId',
        'ip_white_list': 'IPWhiteList',
        'image_id': 'ImageId',
        'is_preinstall': 'IsPreinstall',
        'is_selinux_on': 'IsSelinuxOn',
        'overlay_persist_property': 'OverlayPersistProperty',
        'overlay_property': 'OverlayProperty',
        'overlay_settings': 'OverlaySettings',
        'phone_template_id': 'PhoneTemplateId',
        'pod_name': 'PodName',
        'port_mapping_rule_id_list': 'PortMappingRuleIdList',
        'product_id': 'ProductId',
        'resource_type': 'ResourceType',
        'tag_id': 'TagId',
        'up_bandwidth_limit': 'UpBandwidthLimit',
        'use_phone_template': 'UsePhoneTemplate'
    }

    def __init__(self, app_list=None, configuration_code=None, custom_route_id=None, dnsid=None, data_size=None, dc=None, display_layout_id=None, down_bandwidth_limit=None, host_id=None, ip_white_list=None, image_id=None, is_preinstall=None, is_selinux_on=None, overlay_persist_property=None, overlay_property=None, overlay_settings=None, phone_template_id=None, pod_name=None, port_mapping_rule_id_list=None, product_id=None, resource_type=None, tag_id=None, up_bandwidth_limit=None, use_phone_template=None, _configuration=None):  # noqa: E501
        """CreatePodOneStepRequest - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._app_list = None
        self._configuration_code = None
        self._custom_route_id = None
        self._dnsid = None
        self._data_size = None
        self._dc = None
        self._display_layout_id = None
        self._down_bandwidth_limit = None
        self._host_id = None
        self._ip_white_list = None
        self._image_id = None
        self._is_preinstall = None
        self._is_selinux_on = None
        self._overlay_persist_property = None
        self._overlay_property = None
        self._overlay_settings = None
        self._phone_template_id = None
        self._pod_name = None
        self._port_mapping_rule_id_list = None
        self._product_id = None
        self._resource_type = None
        self._tag_id = None
        self._up_bandwidth_limit = None
        self._use_phone_template = None
        self.discriminator = None

        if app_list is not None:
            self.app_list = app_list
        self.configuration_code = configuration_code
        if custom_route_id is not None:
            self.custom_route_id = custom_route_id
        if dnsid is not None:
            self.dnsid = dnsid
        if data_size is not None:
            self.data_size = data_size
        self.dc = dc
        if display_layout_id is not None:
            self.display_layout_id = display_layout_id
        if down_bandwidth_limit is not None:
            self.down_bandwidth_limit = down_bandwidth_limit
        if host_id is not None:
            self.host_id = host_id
        if ip_white_list is not None:
            self.ip_white_list = ip_white_list
        if image_id is not None:
            self.image_id = image_id
        if is_preinstall is not None:
            self.is_preinstall = is_preinstall
        if is_selinux_on is not None:
            self.is_selinux_on = is_selinux_on
        if overlay_persist_property is not None:
            self.overlay_persist_property = overlay_persist_property
        if overlay_property is not None:
            self.overlay_property = overlay_property
        if overlay_settings is not None:
            self.overlay_settings = overlay_settings
        if phone_template_id is not None:
            self.phone_template_id = phone_template_id
        if pod_name is not None:
            self.pod_name = pod_name
        if port_mapping_rule_id_list is not None:
            self.port_mapping_rule_id_list = port_mapping_rule_id_list
        self.product_id = product_id
        if resource_type is not None:
            self.resource_type = resource_type
        if tag_id is not None:
            self.tag_id = tag_id
        if up_bandwidth_limit is not None:
            self.up_bandwidth_limit = up_bandwidth_limit
        if use_phone_template is not None:
            self.use_phone_template = use_phone_template

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


        :return: The app_list of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: list[AppListForCreatePodOneStepInput]
        """
        return self._app_list

    @app_list.setter
    def app_list(self, app_list):
        """Sets the app_list of this CreatePodOneStepRequest.


        :param app_list: The app_list of this CreatePodOneStepRequest.  # noqa: E501
        :type: list[AppListForCreatePodOneStepInput]
        """

        self._app_list = app_list

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


        :return: The configuration_code of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._configuration_code

    @configuration_code.setter
    def configuration_code(self, configuration_code):
        """Sets the configuration_code of this CreatePodOneStepRequest.


        :param configuration_code: The configuration_code of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """
        if self._configuration.client_side_validation and configuration_code is None:
            raise ValueError("Invalid value for `configuration_code`, must not be `None`")  # noqa: E501

        self._configuration_code = configuration_code

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


        :return: The custom_route_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._custom_route_id

    @custom_route_id.setter
    def custom_route_id(self, custom_route_id):
        """Sets the custom_route_id of this CreatePodOneStepRequest.


        :param custom_route_id: The custom_route_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._custom_route_id = custom_route_id

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


        :return: The dnsid of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._dnsid

    @dnsid.setter
    def dnsid(self, dnsid):
        """Sets the dnsid of this CreatePodOneStepRequest.


        :param dnsid: The dnsid of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._dnsid = dnsid

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


        :return: The data_size of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._data_size

    @data_size.setter
    def data_size(self, data_size):
        """Sets the data_size of this CreatePodOneStepRequest.


        :param data_size: The data_size of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._data_size = data_size

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


        :return: The dc of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._dc

    @dc.setter
    def dc(self, dc):
        """Sets the dc of this CreatePodOneStepRequest.


        :param dc: The dc of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """
        if self._configuration.client_side_validation and dc is None:
            raise ValueError("Invalid value for `dc`, must not be `None`")  # noqa: E501

        self._dc = dc

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


        :return: The display_layout_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._display_layout_id

    @display_layout_id.setter
    def display_layout_id(self, display_layout_id):
        """Sets the display_layout_id of this CreatePodOneStepRequest.


        :param display_layout_id: The display_layout_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._display_layout_id = display_layout_id

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


        :return: The down_bandwidth_limit of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: int
        """
        return self._down_bandwidth_limit

    @down_bandwidth_limit.setter
    def down_bandwidth_limit(self, down_bandwidth_limit):
        """Sets the down_bandwidth_limit of this CreatePodOneStepRequest.


        :param down_bandwidth_limit: The down_bandwidth_limit of this CreatePodOneStepRequest.  # noqa: E501
        :type: int
        """

        self._down_bandwidth_limit = down_bandwidth_limit

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


        :return: The host_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._host_id

    @host_id.setter
    def host_id(self, host_id):
        """Sets the host_id of this CreatePodOneStepRequest.


        :param host_id: The host_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._host_id = host_id

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


        :return: The ip_white_list of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._ip_white_list

    @ip_white_list.setter
    def ip_white_list(self, ip_white_list):
        """Sets the ip_white_list of this CreatePodOneStepRequest.


        :param ip_white_list: The ip_white_list of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._ip_white_list = ip_white_list

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


        :return: The image_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._image_id

    @image_id.setter
    def image_id(self, image_id):
        """Sets the image_id of this CreatePodOneStepRequest.


        :param image_id: The image_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._image_id = image_id

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


        :return: The is_preinstall of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: bool
        """
        return self._is_preinstall

    @is_preinstall.setter
    def is_preinstall(self, is_preinstall):
        """Sets the is_preinstall of this CreatePodOneStepRequest.


        :param is_preinstall: The is_preinstall of this CreatePodOneStepRequest.  # noqa: E501
        :type: bool
        """

        self._is_preinstall = is_preinstall

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


        :return: The is_selinux_on of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: bool
        """
        return self._is_selinux_on

    @is_selinux_on.setter
    def is_selinux_on(self, is_selinux_on):
        """Sets the is_selinux_on of this CreatePodOneStepRequest.


        :param is_selinux_on: The is_selinux_on of this CreatePodOneStepRequest.  # noqa: E501
        :type: bool
        """

        self._is_selinux_on = is_selinux_on

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


        :return: The overlay_persist_property of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: list[OverlayPersistPropertyForCreatePodOneStepInput]
        """
        return self._overlay_persist_property

    @overlay_persist_property.setter
    def overlay_persist_property(self, overlay_persist_property):
        """Sets the overlay_persist_property of this CreatePodOneStepRequest.


        :param overlay_persist_property: The overlay_persist_property of this CreatePodOneStepRequest.  # noqa: E501
        :type: list[OverlayPersistPropertyForCreatePodOneStepInput]
        """

        self._overlay_persist_property = overlay_persist_property

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


        :return: The overlay_property of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: list[OverlayPropertyForCreatePodOneStepInput]
        """
        return self._overlay_property

    @overlay_property.setter
    def overlay_property(self, overlay_property):
        """Sets the overlay_property of this CreatePodOneStepRequest.


        :param overlay_property: The overlay_property of this CreatePodOneStepRequest.  # noqa: E501
        :type: list[OverlayPropertyForCreatePodOneStepInput]
        """

        self._overlay_property = overlay_property

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


        :return: The overlay_settings of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: list[OverlaySettingForCreatePodOneStepInput]
        """
        return self._overlay_settings

    @overlay_settings.setter
    def overlay_settings(self, overlay_settings):
        """Sets the overlay_settings of this CreatePodOneStepRequest.


        :param overlay_settings: The overlay_settings of this CreatePodOneStepRequest.  # noqa: E501
        :type: list[OverlaySettingForCreatePodOneStepInput]
        """

        self._overlay_settings = overlay_settings

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


        :return: The phone_template_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._phone_template_id

    @phone_template_id.setter
    def phone_template_id(self, phone_template_id):
        """Sets the phone_template_id of this CreatePodOneStepRequest.


        :param phone_template_id: The phone_template_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._phone_template_id = phone_template_id

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


        :return: The pod_name of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._pod_name

    @pod_name.setter
    def pod_name(self, pod_name):
        """Sets the pod_name of this CreatePodOneStepRequest.


        :param pod_name: The pod_name of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._pod_name = pod_name

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


        :return: The port_mapping_rule_id_list of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: list[str]
        """
        return self._port_mapping_rule_id_list

    @port_mapping_rule_id_list.setter
    def port_mapping_rule_id_list(self, port_mapping_rule_id_list):
        """Sets the port_mapping_rule_id_list of this CreatePodOneStepRequest.


        :param port_mapping_rule_id_list: The port_mapping_rule_id_list of this CreatePodOneStepRequest.  # noqa: E501
        :type: list[str]
        """

        self._port_mapping_rule_id_list = port_mapping_rule_id_list

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


        :return: The product_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._product_id

    @product_id.setter
    def product_id(self, product_id):
        """Sets the product_id of this CreatePodOneStepRequest.


        :param product_id: The product_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """
        if self._configuration.client_side_validation and product_id is None:
            raise ValueError("Invalid value for `product_id`, must not be `None`")  # noqa: E501

        self._product_id = product_id

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


        :return: The resource_type of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: int
        """
        return self._resource_type

    @resource_type.setter
    def resource_type(self, resource_type):
        """Sets the resource_type of this CreatePodOneStepRequest.


        :param resource_type: The resource_type of this CreatePodOneStepRequest.  # noqa: E501
        :type: int
        """

        self._resource_type = resource_type

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


        :return: The tag_id of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: str
        """
        return self._tag_id

    @tag_id.setter
    def tag_id(self, tag_id):
        """Sets the tag_id of this CreatePodOneStepRequest.


        :param tag_id: The tag_id of this CreatePodOneStepRequest.  # noqa: E501
        :type: str
        """

        self._tag_id = tag_id

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


        :return: The up_bandwidth_limit of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: int
        """
        return self._up_bandwidth_limit

    @up_bandwidth_limit.setter
    def up_bandwidth_limit(self, up_bandwidth_limit):
        """Sets the up_bandwidth_limit of this CreatePodOneStepRequest.


        :param up_bandwidth_limit: The up_bandwidth_limit of this CreatePodOneStepRequest.  # noqa: E501
        :type: int
        """

        self._up_bandwidth_limit = up_bandwidth_limit

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


        :return: The use_phone_template of this CreatePodOneStepRequest.  # noqa: E501
        :rtype: int
        """
        return self._use_phone_template

    @use_phone_template.setter
    def use_phone_template(self, use_phone_template):
        """Sets the use_phone_template of this CreatePodOneStepRequest.


        :param use_phone_template: The use_phone_template of this CreatePodOneStepRequest.  # noqa: E501
        :type: int
        """

        self._use_phone_template = use_phone_template

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

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(CreatePodOneStepRequest, dict):
            for key, value in self.items():
                result[key] = 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, CreatePodOneStepRequest):
            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, CreatePodOneStepRequest):
            return True

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