# coding: utf-8

"""
    Cloudera Manager API

    <h1>Cloudera Manager API v57</h1>       <p>Introduced in Cloudera Manager 7.13.1</p>       <p><a href=\"http://www.cloudera.com/documentation.html\">Cloudera Product Documentation</a></p>  # noqa: E501

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

import pprint
import re  # noqa: F401

import six
from cm_client.models.api_command import ApiCommand  # noqa: F401,E501

class ApiReplicationCommand(ApiCommand):
    """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 = {
        'hdfs_result': 'ApiHdfsReplicationResult',
        'ozone_result': 'ApiOzoneReplicationResult',
        'hive_result': 'ApiHiveReplicationResult',
        'hive_on_tez_result': 'ApiHiveOnTezReplicationResult',
        'hbase_info': 'ApiHBaseReplicationInfo',
        'ranger_result': 'ApiRangerReplicationResult',
        'iceberg_result': 'ApiIcebergReplicationResult',
        'api_atlas_replication_result': 'ApiAtlasReplicationResult',
        'api_replication_dump_command': 'ApiReplicationCommand',
        'api_replication_failed_commands': 'list[ApiReplicationCommand]',
        'api_replication_skipped_commands': 'list[ApiReplicationCommand]'
    }
    if hasattr(ApiCommand, "swagger_types"):
        swagger_types.update(ApiCommand.swagger_types)

    attribute_map = {
        'hdfs_result': 'hdfsResult',
        'ozone_result': 'ozoneResult',
        'hive_result': 'hiveResult',
        'hive_on_tez_result': 'hiveOnTezResult',
        'hbase_info': 'hbaseInfo',
        'ranger_result': 'rangerResult',
        'iceberg_result': 'icebergResult',
        'api_atlas_replication_result': 'apiAtlasReplicationResult',
        'api_replication_dump_command': 'apiReplicationDumpCommand',
        'api_replication_failed_commands': 'apiReplicationFailedCommands',
        'api_replication_skipped_commands': 'apiReplicationSkippedCommands'
    }
    if hasattr(ApiCommand, "attribute_map"):
        attribute_map.update(ApiCommand.attribute_map)

    def __init__(self, hdfs_result=None, ozone_result=None, hive_result=None, hive_on_tez_result=None, hbase_info=None, ranger_result=None, iceberg_result=None, api_atlas_replication_result=None, api_replication_dump_command=None, api_replication_failed_commands=None, api_replication_skipped_commands=None, *args, **kwargs):  # noqa: E501
        """ApiReplicationCommand - a model defined in Swagger"""  # noqa: E501
        self._hdfs_result = None
        self._ozone_result = None
        self._hive_result = None
        self._hive_on_tez_result = None
        self._hbase_info = None
        self._ranger_result = None
        self._iceberg_result = None
        self._api_atlas_replication_result = None
        self._api_replication_dump_command = None
        self._api_replication_failed_commands = None
        self._api_replication_skipped_commands = None
        self.discriminator = None
        if hdfs_result is not None:
            self.hdfs_result = hdfs_result
        if ozone_result is not None:
            self.ozone_result = ozone_result
        if hive_result is not None:
            self.hive_result = hive_result
        if hive_on_tez_result is not None:
            self.hive_on_tez_result = hive_on_tez_result
        if hbase_info is not None:
            self.hbase_info = hbase_info
        if ranger_result is not None:
            self.ranger_result = ranger_result
        if iceberg_result is not None:
            self.iceberg_result = iceberg_result
        if api_atlas_replication_result is not None:
            self.api_atlas_replication_result = api_atlas_replication_result
        if api_replication_dump_command is not None:
            self.api_replication_dump_command = api_replication_dump_command
        if api_replication_failed_commands is not None:
            self.api_replication_failed_commands = api_replication_failed_commands
        if api_replication_skipped_commands is not None:
            self.api_replication_skipped_commands = api_replication_skipped_commands
        ApiCommand.__init__(self, *args, **kwargs)

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


        :return: The hdfs_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiHdfsReplicationResult
        """
        return self._hdfs_result

    @hdfs_result.setter
    def hdfs_result(self, hdfs_result):
        """Sets the hdfs_result of this ApiReplicationCommand.


        :param hdfs_result: The hdfs_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiHdfsReplicationResult
        """

        self._hdfs_result = hdfs_result

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


        :return: The ozone_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiOzoneReplicationResult
        """
        return self._ozone_result

    @ozone_result.setter
    def ozone_result(self, ozone_result):
        """Sets the ozone_result of this ApiReplicationCommand.


        :param ozone_result: The ozone_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiOzoneReplicationResult
        """

        self._ozone_result = ozone_result

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


        :return: The hive_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiHiveReplicationResult
        """
        return self._hive_result

    @hive_result.setter
    def hive_result(self, hive_result):
        """Sets the hive_result of this ApiReplicationCommand.


        :param hive_result: The hive_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiHiveReplicationResult
        """

        self._hive_result = hive_result

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


        :return: The hive_on_tez_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiHiveOnTezReplicationResult
        """
        return self._hive_on_tez_result

    @hive_on_tez_result.setter
    def hive_on_tez_result(self, hive_on_tez_result):
        """Sets the hive_on_tez_result of this ApiReplicationCommand.


        :param hive_on_tez_result: The hive_on_tez_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiHiveOnTezReplicationResult
        """

        self._hive_on_tez_result = hive_on_tez_result

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


        :return: The hbase_info of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiHBaseReplicationInfo
        """
        return self._hbase_info

    @hbase_info.setter
    def hbase_info(self, hbase_info):
        """Sets the hbase_info of this ApiReplicationCommand.


        :param hbase_info: The hbase_info of this ApiReplicationCommand.  # noqa: E501
        :type: ApiHBaseReplicationInfo
        """

        self._hbase_info = hbase_info

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


        :return: The ranger_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiRangerReplicationResult
        """
        return self._ranger_result

    @ranger_result.setter
    def ranger_result(self, ranger_result):
        """Sets the ranger_result of this ApiReplicationCommand.


        :param ranger_result: The ranger_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiRangerReplicationResult
        """

        self._ranger_result = ranger_result

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


        :return: The iceberg_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiIcebergReplicationResult
        """
        return self._iceberg_result

    @iceberg_result.setter
    def iceberg_result(self, iceberg_result):
        """Sets the iceberg_result of this ApiReplicationCommand.


        :param iceberg_result: The iceberg_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiIcebergReplicationResult
        """

        self._iceberg_result = iceberg_result

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


        :return: The api_atlas_replication_result of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiAtlasReplicationResult
        """
        return self._api_atlas_replication_result

    @api_atlas_replication_result.setter
    def api_atlas_replication_result(self, api_atlas_replication_result):
        """Sets the api_atlas_replication_result of this ApiReplicationCommand.


        :param api_atlas_replication_result: The api_atlas_replication_result of this ApiReplicationCommand.  # noqa: E501
        :type: ApiAtlasReplicationResult
        """

        self._api_atlas_replication_result = api_atlas_replication_result

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


        :return: The api_replication_dump_command of this ApiReplicationCommand.  # noqa: E501
        :rtype: ApiReplicationCommand
        """
        return self._api_replication_dump_command

    @api_replication_dump_command.setter
    def api_replication_dump_command(self, api_replication_dump_command):
        """Sets the api_replication_dump_command of this ApiReplicationCommand.


        :param api_replication_dump_command: The api_replication_dump_command of this ApiReplicationCommand.  # noqa: E501
        :type: ApiReplicationCommand
        """

        self._api_replication_dump_command = api_replication_dump_command

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


        :return: The api_replication_failed_commands of this ApiReplicationCommand.  # noqa: E501
        :rtype: list[ApiReplicationCommand]
        """
        return self._api_replication_failed_commands

    @api_replication_failed_commands.setter
    def api_replication_failed_commands(self, api_replication_failed_commands):
        """Sets the api_replication_failed_commands of this ApiReplicationCommand.


        :param api_replication_failed_commands: The api_replication_failed_commands of this ApiReplicationCommand.  # noqa: E501
        :type: list[ApiReplicationCommand]
        """

        self._api_replication_failed_commands = api_replication_failed_commands

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


        :return: The api_replication_skipped_commands of this ApiReplicationCommand.  # noqa: E501
        :rtype: list[ApiReplicationCommand]
        """
        return self._api_replication_skipped_commands

    @api_replication_skipped_commands.setter
    def api_replication_skipped_commands(self, api_replication_skipped_commands):
        """Sets the api_replication_skipped_commands of this ApiReplicationCommand.


        :param api_replication_skipped_commands: The api_replication_skipped_commands of this ApiReplicationCommand.  # noqa: E501
        :type: list[ApiReplicationCommand]
        """

        self._api_replication_skipped_commands = api_replication_skipped_commands

    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(ApiReplicationCommand, 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, ApiReplicationCommand):
            return False

        return self.__dict__ == other.__dict__

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