# coding: utf-8

"""
ARVMDefaultAttributes.py

 The Clear BSD License

 Copyright (c) – 2016, NetApp, Inc. All rights reserved.

 Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

 * Neither the name of NetApp, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

 NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""

from pprint import pformat
from six import iteritems


class ARVMDefaultAttributes(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        ARVMDefaultAttributes - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'minimum_repository_capacity_in_bytes': 'int',  # (required parameter)
            'max_repository_capacity_as_percent_of_mirrored_capacity': 'int',  # (required parameter)
            'default_repository_capacity_as_percent_of_mirrored_capacity': 'int',  # (required parameter)
            'default_repository_utilization_warning_threshold': 'int',  # (required parameter)
            'minimum_sync_interval_in_minutes': 'int',  # (required parameter)
            'default_sync_interval_in_minutes': 'int',  # (required parameter)
            'default_sync_completion_time_alert_threshold_in_minutes': 'int',  # (required parameter)
            'default_recovery_point_age_alert_threshold_in_minutes': 'int',  # (required parameter)
            'maximum_connectivity_test_timeout': 'int',  # (required parameter)
            'maximum_link_latency_test_iterations': 'int',  # (required parameter)
            'maximum_link_bandwidth_test_iterations': 'int',  # (required parameter)
            'minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity': 'int',  # (required parameter)
            'default_link_latency_test_iterations': 'int',  # (required parameter)
            'default_link_bandwidth_test_iterations': 'int',  # (required parameter)
            'default_recent_statistics_list_length': 'int',  # (required parameter)
            'max_recent_statistics_list_length': 'int',  # (required parameter)
            'default_longest_statistics_list_length': 'int',  # (required parameter)
            'max_longest_statistics_list_length': 'int',  # (required parameter)
            'default_error_statistics_list_length': 'int',  # (required parameter)
            'max_error_statistics_list_length': 'int',  # (required parameter)
            'max_allowed_link_latency_in_microseconds': 'int'
        }

        self.attribute_map = {
            'minimum_repository_capacity_in_bytes': 'minimumRepositoryCapacityInBytes',  # (required parameter)
            'max_repository_capacity_as_percent_of_mirrored_capacity': 'maxRepositoryCapacityAsPercentOfMirroredCapacity',  # (required parameter)
            'default_repository_capacity_as_percent_of_mirrored_capacity': 'defaultRepositoryCapacityAsPercentOfMirroredCapacity',  # (required parameter)
            'default_repository_utilization_warning_threshold': 'defaultRepositoryUtilizationWarningThreshold',  # (required parameter)
            'minimum_sync_interval_in_minutes': 'minimumSyncIntervalInMinutes',  # (required parameter)
            'default_sync_interval_in_minutes': 'defaultSyncIntervalInMinutes',  # (required parameter)
            'default_sync_completion_time_alert_threshold_in_minutes': 'defaultSyncCompletionTimeAlertThresholdInMinutes',  # (required parameter)
            'default_recovery_point_age_alert_threshold_in_minutes': 'defaultRecoveryPointAgeAlertThresholdInMinutes',  # (required parameter)
            'maximum_connectivity_test_timeout': 'maximumConnectivityTestTimeout',  # (required parameter)
            'maximum_link_latency_test_iterations': 'maximumLinkLatencyTestIterations',  # (required parameter)
            'maximum_link_bandwidth_test_iterations': 'maximumLinkBandwidthTestIterations',  # (required parameter)
            'minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity': 'minimumRepositoryCapacityInHundredthsOfPercentOfMirroredCapacity',  # (required parameter)
            'default_link_latency_test_iterations': 'defaultLinkLatencyTestIterations',  # (required parameter)
            'default_link_bandwidth_test_iterations': 'defaultLinkBandwidthTestIterations',  # (required parameter)
            'default_recent_statistics_list_length': 'defaultRecentStatisticsListLength',  # (required parameter)
            'max_recent_statistics_list_length': 'maxRecentStatisticsListLength',  # (required parameter)
            'default_longest_statistics_list_length': 'defaultLongestStatisticsListLength',  # (required parameter)
            'max_longest_statistics_list_length': 'maxLongestStatisticsListLength',  # (required parameter)
            'default_error_statistics_list_length': 'defaultErrorStatisticsListLength',  # (required parameter)
            'max_error_statistics_list_length': 'maxErrorStatisticsListLength',  # (required parameter)
            'max_allowed_link_latency_in_microseconds': 'maxAllowedLinkLatencyInMicroseconds'
        }

        self._minimum_repository_capacity_in_bytes = None
        self._max_repository_capacity_as_percent_of_mirrored_capacity = None
        self._default_repository_capacity_as_percent_of_mirrored_capacity = None
        self._default_repository_utilization_warning_threshold = None
        self._minimum_sync_interval_in_minutes = None
        self._default_sync_interval_in_minutes = None
        self._default_sync_completion_time_alert_threshold_in_minutes = None
        self._default_recovery_point_age_alert_threshold_in_minutes = None
        self._maximum_connectivity_test_timeout = None
        self._maximum_link_latency_test_iterations = None
        self._maximum_link_bandwidth_test_iterations = None
        self._minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity = None
        self._default_link_latency_test_iterations = None
        self._default_link_bandwidth_test_iterations = None
        self._default_recent_statistics_list_length = None
        self._max_recent_statistics_list_length = None
        self._default_longest_statistics_list_length = None
        self._max_longest_statistics_list_length = None
        self._default_error_statistics_list_length = None
        self._max_error_statistics_list_length = None
        self._max_allowed_link_latency_in_microseconds = None

    @property
    def minimum_repository_capacity_in_bytes(self):
        """
        Gets the minimum_repository_capacity_in_bytes of this ARVMDefaultAttributes.
        The minimum repository size (in bytes) for a mirror repository.

        :return: The minimum_repository_capacity_in_bytes of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._minimum_repository_capacity_in_bytes

    @minimum_repository_capacity_in_bytes.setter
    def minimum_repository_capacity_in_bytes(self, minimum_repository_capacity_in_bytes):
        """
        Sets the minimum_repository_capacity_in_bytes of this ARVMDefaultAttributes.
        The minimum repository size (in bytes) for a mirror repository.

        :param minimum_repository_capacity_in_bytes: The minimum_repository_capacity_in_bytes of this ARVMDefaultAttributes.
        :type: int
        """
        self._minimum_repository_capacity_in_bytes = minimum_repository_capacity_in_bytes

    @property
    def max_repository_capacity_as_percent_of_mirrored_capacity(self):
        """
        Gets the max_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        Maximum repository capacity as a percentage of the mirror capacity..

        :return: The max_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._max_repository_capacity_as_percent_of_mirrored_capacity

    @max_repository_capacity_as_percent_of_mirrored_capacity.setter
    def max_repository_capacity_as_percent_of_mirrored_capacity(self, max_repository_capacity_as_percent_of_mirrored_capacity):
        """
        Sets the max_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        Maximum repository capacity as a percentage of the mirror capacity..

        :param max_repository_capacity_as_percent_of_mirrored_capacity: The max_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        :type: int
        """
        self._max_repository_capacity_as_percent_of_mirrored_capacity = max_repository_capacity_as_percent_of_mirrored_capacity

    @property
    def default_repository_capacity_as_percent_of_mirrored_capacity(self):
        """
        Gets the default_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        Default repository capacity as a percentage of the mirror capacity..

        :return: The default_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_repository_capacity_as_percent_of_mirrored_capacity

    @default_repository_capacity_as_percent_of_mirrored_capacity.setter
    def default_repository_capacity_as_percent_of_mirrored_capacity(self, default_repository_capacity_as_percent_of_mirrored_capacity):
        """
        Sets the default_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        Default repository capacity as a percentage of the mirror capacity..

        :param default_repository_capacity_as_percent_of_mirrored_capacity: The default_repository_capacity_as_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_repository_capacity_as_percent_of_mirrored_capacity = default_repository_capacity_as_percent_of_mirrored_capacity

    @property
    def default_repository_utilization_warning_threshold(self):
        """
        Gets the default_repository_utilization_warning_threshold of this ARVMDefaultAttributes.
        Default repository utilization warning threshold percentage.

        :return: The default_repository_utilization_warning_threshold of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_repository_utilization_warning_threshold

    @default_repository_utilization_warning_threshold.setter
    def default_repository_utilization_warning_threshold(self, default_repository_utilization_warning_threshold):
        """
        Sets the default_repository_utilization_warning_threshold of this ARVMDefaultAttributes.
        Default repository utilization warning threshold percentage.

        :param default_repository_utilization_warning_threshold: The default_repository_utilization_warning_threshold of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_repository_utilization_warning_threshold = default_repository_utilization_warning_threshold

    @property
    def minimum_sync_interval_in_minutes(self):
        """
        Gets the minimum_sync_interval_in_minutes of this ARVMDefaultAttributes.
        Minimum sync interval in minutes.

        :return: The minimum_sync_interval_in_minutes of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._minimum_sync_interval_in_minutes

    @minimum_sync_interval_in_minutes.setter
    def minimum_sync_interval_in_minutes(self, minimum_sync_interval_in_minutes):
        """
        Sets the minimum_sync_interval_in_minutes of this ARVMDefaultAttributes.
        Minimum sync interval in minutes.

        :param minimum_sync_interval_in_minutes: The minimum_sync_interval_in_minutes of this ARVMDefaultAttributes.
        :type: int
        """
        self._minimum_sync_interval_in_minutes = minimum_sync_interval_in_minutes

    @property
    def default_sync_interval_in_minutes(self):
        """
        Gets the default_sync_interval_in_minutes of this ARVMDefaultAttributes.
        Default sync interval in minutes.

        :return: The default_sync_interval_in_minutes of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_sync_interval_in_minutes

    @default_sync_interval_in_minutes.setter
    def default_sync_interval_in_minutes(self, default_sync_interval_in_minutes):
        """
        Sets the default_sync_interval_in_minutes of this ARVMDefaultAttributes.
        Default sync interval in minutes.

        :param default_sync_interval_in_minutes: The default_sync_interval_in_minutes of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_sync_interval_in_minutes = default_sync_interval_in_minutes

    @property
    def default_sync_completion_time_alert_threshold_in_minutes(self):
        """
        Gets the default_sync_completion_time_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        Default sync completion time alert threshold.

        :return: The default_sync_completion_time_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_sync_completion_time_alert_threshold_in_minutes

    @default_sync_completion_time_alert_threshold_in_minutes.setter
    def default_sync_completion_time_alert_threshold_in_minutes(self, default_sync_completion_time_alert_threshold_in_minutes):
        """
        Sets the default_sync_completion_time_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        Default sync completion time alert threshold.

        :param default_sync_completion_time_alert_threshold_in_minutes: The default_sync_completion_time_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_sync_completion_time_alert_threshold_in_minutes = default_sync_completion_time_alert_threshold_in_minutes

    @property
    def default_recovery_point_age_alert_threshold_in_minutes(self):
        """
        Gets the default_recovery_point_age_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        Default recovery point age alert threshold.

        :return: The default_recovery_point_age_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_recovery_point_age_alert_threshold_in_minutes

    @default_recovery_point_age_alert_threshold_in_minutes.setter
    def default_recovery_point_age_alert_threshold_in_minutes(self, default_recovery_point_age_alert_threshold_in_minutes):
        """
        Sets the default_recovery_point_age_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        Default recovery point age alert threshold.

        :param default_recovery_point_age_alert_threshold_in_minutes: The default_recovery_point_age_alert_threshold_in_minutes of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_recovery_point_age_alert_threshold_in_minutes = default_recovery_point_age_alert_threshold_in_minutes

    @property
    def maximum_connectivity_test_timeout(self):
        """
        Gets the maximum_connectivity_test_timeout of this ARVMDefaultAttributes.
        Maximum timeout (in seconds) allowed for AMG connectivity test (specified in AsyncMirrorGroupConnectivityTestDescriptor).

        :return: The maximum_connectivity_test_timeout of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._maximum_connectivity_test_timeout

    @maximum_connectivity_test_timeout.setter
    def maximum_connectivity_test_timeout(self, maximum_connectivity_test_timeout):
        """
        Sets the maximum_connectivity_test_timeout of this ARVMDefaultAttributes.
        Maximum timeout (in seconds) allowed for AMG connectivity test (specified in AsyncMirrorGroupConnectivityTestDescriptor).

        :param maximum_connectivity_test_timeout: The maximum_connectivity_test_timeout of this ARVMDefaultAttributes.
        :type: int
        """
        self._maximum_connectivity_test_timeout = maximum_connectivity_test_timeout

    @property
    def maximum_link_latency_test_iterations(self):
        """
        Gets the maximum_link_latency_test_iterations of this ARVMDefaultAttributes.
        Maximum number of test iterations allowed for link latency test (specified in AsyncMirrorGroupConnectivityTestDescriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_LATENCY_TEST).

        :return: The maximum_link_latency_test_iterations of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._maximum_link_latency_test_iterations

    @maximum_link_latency_test_iterations.setter
    def maximum_link_latency_test_iterations(self, maximum_link_latency_test_iterations):
        """
        Sets the maximum_link_latency_test_iterations of this ARVMDefaultAttributes.
        Maximum number of test iterations allowed for link latency test (specified in AsyncMirrorGroupConnectivityTestDescriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_LATENCY_TEST).

        :param maximum_link_latency_test_iterations: The maximum_link_latency_test_iterations of this ARVMDefaultAttributes.
        :type: int
        """
        self._maximum_link_latency_test_iterations = maximum_link_latency_test_iterations

    @property
    def maximum_link_bandwidth_test_iterations(self):
        """
        Gets the maximum_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        Maximum number of test iterations allowed for bandwidth test (specified in AsyncMirrorGroupConnectivityTestDescriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_BANDWIDTH_TEST).

        :return: The maximum_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._maximum_link_bandwidth_test_iterations

    @maximum_link_bandwidth_test_iterations.setter
    def maximum_link_bandwidth_test_iterations(self, maximum_link_bandwidth_test_iterations):
        """
        Sets the maximum_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        Maximum number of test iterations allowed for bandwidth test (specified in AsyncMirrorGroupConnectivityTestDescriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_BANDWIDTH_TEST).

        :param maximum_link_bandwidth_test_iterations: The maximum_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        :type: int
        """
        self._maximum_link_bandwidth_test_iterations = maximum_link_bandwidth_test_iterations

    @property
    def minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity(self):
        """
        Gets the minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        The minimum repository size as 1/100ths of a percent of mirror capacity.

        :return: The minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity

    @minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity.setter
    def minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity(self, minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity):
        """
        Sets the minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        The minimum repository size as 1/100ths of a percent of mirror capacity.

        :param minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity: The minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity of this ARVMDefaultAttributes.
        :type: int
        """
        self._minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity = minimum_repository_capacity_in_hundredths_of_percent_of_mirrored_capacity

    @property
    def default_link_latency_test_iterations(self):
        """
        Gets the default_link_latency_test_iterations of this ARVMDefaultAttributes.
        The default number of test iterations for a link latency test (specified in AsyncMirrorGroupConnectivityTestDesscriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_LATENCY_TEST).

        :return: The default_link_latency_test_iterations of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_link_latency_test_iterations

    @default_link_latency_test_iterations.setter
    def default_link_latency_test_iterations(self, default_link_latency_test_iterations):
        """
        Sets the default_link_latency_test_iterations of this ARVMDefaultAttributes.
        The default number of test iterations for a link latency test (specified in AsyncMirrorGroupConnectivityTestDesscriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_LATENCY_TEST).

        :param default_link_latency_test_iterations: The default_link_latency_test_iterations of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_link_latency_test_iterations = default_link_latency_test_iterations

    @property
    def default_link_bandwidth_test_iterations(self):
        """
        Gets the default_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        The default number of test iterations for a bandwidth test (specified in AsyncMirrorGroupConnectivityTestDescriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_BANDWIDTH_TEST).

        :return: The default_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_link_bandwidth_test_iterations

    @default_link_bandwidth_test_iterations.setter
    def default_link_bandwidth_test_iterations(self, default_link_bandwidth_test_iterations):
        """
        Sets the default_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        The default number of test iterations for a bandwidth test (specified in AsyncMirrorGroupConnectivityTestDescriptor when AsyncMirrorGroupConnectivityTestType is ASYNC_MIRROR_GROUP_LINK_BANDWIDTH_TEST).

        :param default_link_bandwidth_test_iterations: The default_link_bandwidth_test_iterations of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_link_bandwidth_test_iterations = default_link_bandwidth_test_iterations

    @property
    def default_recent_statistics_list_length(self):
        """
        Gets the default_recent_statistics_list_length of this ARVMDefaultAttributes.
        Recommended default sample list length limit to pass to getAsyncMirrorSyncStatistics for a RECENT statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :return: The default_recent_statistics_list_length of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_recent_statistics_list_length

    @default_recent_statistics_list_length.setter
    def default_recent_statistics_list_length(self, default_recent_statistics_list_length):
        """
        Sets the default_recent_statistics_list_length of this ARVMDefaultAttributes.
        Recommended default sample list length limit to pass to getAsyncMirrorSyncStatistics for a RECENT statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :param default_recent_statistics_list_length: The default_recent_statistics_list_length of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_recent_statistics_list_length = default_recent_statistics_list_length

    @property
    def max_recent_statistics_list_length(self):
        """
        Gets the max_recent_statistics_list_length of this ARVMDefaultAttributes.
        Maximum sample list length limit allowed in a call to getAsyncMirrorSyncStatistics for a RECENT statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :return: The max_recent_statistics_list_length of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._max_recent_statistics_list_length

    @max_recent_statistics_list_length.setter
    def max_recent_statistics_list_length(self, max_recent_statistics_list_length):
        """
        Sets the max_recent_statistics_list_length of this ARVMDefaultAttributes.
        Maximum sample list length limit allowed in a call to getAsyncMirrorSyncStatistics for a RECENT statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :param max_recent_statistics_list_length: The max_recent_statistics_list_length of this ARVMDefaultAttributes.
        :type: int
        """
        self._max_recent_statistics_list_length = max_recent_statistics_list_length

    @property
    def default_longest_statistics_list_length(self):
        """
        Gets the default_longest_statistics_list_length of this ARVMDefaultAttributes.
        Recommended default sample list length limit to pass to getAsyncMirrorSyncStatistics for a LONGEST statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :return: The default_longest_statistics_list_length of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_longest_statistics_list_length

    @default_longest_statistics_list_length.setter
    def default_longest_statistics_list_length(self, default_longest_statistics_list_length):
        """
        Sets the default_longest_statistics_list_length of this ARVMDefaultAttributes.
        Recommended default sample list length limit to pass to getAsyncMirrorSyncStatistics for a LONGEST statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :param default_longest_statistics_list_length: The default_longest_statistics_list_length of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_longest_statistics_list_length = default_longest_statistics_list_length

    @property
    def max_longest_statistics_list_length(self):
        """
        Gets the max_longest_statistics_list_length of this ARVMDefaultAttributes.
        Maximum sample list length limit allowed in a call to getAsyncMirrorSyncStatistics for a LONGEST statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :return: The max_longest_statistics_list_length of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._max_longest_statistics_list_length

    @max_longest_statistics_list_length.setter
    def max_longest_statistics_list_length(self, max_longest_statistics_list_length):
        """
        Sets the max_longest_statistics_list_length of this ARVMDefaultAttributes.
        Maximum sample list length limit allowed in a call to getAsyncMirrorSyncStatistics for a LONGEST statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :param max_longest_statistics_list_length: The max_longest_statistics_list_length of this ARVMDefaultAttributes.
        :type: int
        """
        self._max_longest_statistics_list_length = max_longest_statistics_list_length

    @property
    def default_error_statistics_list_length(self):
        """
        Gets the default_error_statistics_list_length of this ARVMDefaultAttributes.
        Recommended default sample list length limit to pass to getAsyncMirrorSyncStatistics for an ERROR statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :return: The default_error_statistics_list_length of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._default_error_statistics_list_length

    @default_error_statistics_list_length.setter
    def default_error_statistics_list_length(self, default_error_statistics_list_length):
        """
        Sets the default_error_statistics_list_length of this ARVMDefaultAttributes.
        Recommended default sample list length limit to pass to getAsyncMirrorSyncStatistics for an ERROR statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :param default_error_statistics_list_length: The default_error_statistics_list_length of this ARVMDefaultAttributes.
        :type: int
        """
        self._default_error_statistics_list_length = default_error_statistics_list_length

    @property
    def max_error_statistics_list_length(self):
        """
        Gets the max_error_statistics_list_length of this ARVMDefaultAttributes.
        Maximum sample list length limit allowed in a call to getAsyncMirrorSyncStatistics for an ERROR statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :return: The max_error_statistics_list_length of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._max_error_statistics_list_length

    @max_error_statistics_list_length.setter
    def max_error_statistics_list_length(self, max_error_statistics_list_length):
        """
        Sets the max_error_statistics_list_length of this ARVMDefaultAttributes.
        Maximum sample list length limit allowed in a call to getAsyncMirrorSyncStatistics for an ERROR statistics request (AsyncMirrorSyncStatisticsRequestDescriptor::sampleLimit field)

        :param max_error_statistics_list_length: The max_error_statistics_list_length of this ARVMDefaultAttributes.
        :type: int
        """
        self._max_error_statistics_list_length = max_error_statistics_list_length

    @property
    def max_allowed_link_latency_in_microseconds(self):
        """
        Gets the max_allowed_link_latency_in_microseconds of this ARVMDefaultAttributes.
        Indicates the max allowed link latency between two RVM arrays.

        :return: The max_allowed_link_latency_in_microseconds of this ARVMDefaultAttributes.
        :rtype: int
        :required/optional: required
        """
        return self._max_allowed_link_latency_in_microseconds

    @max_allowed_link_latency_in_microseconds.setter
    def max_allowed_link_latency_in_microseconds(self, max_allowed_link_latency_in_microseconds):
        """
        Sets the max_allowed_link_latency_in_microseconds of this ARVMDefaultAttributes.
        Indicates the max allowed link latency between two RVM arrays.

        :param max_allowed_link_latency_in_microseconds: The max_allowed_link_latency_in_microseconds of this ARVMDefaultAttributes.
        :type: int
        """
        self._max_allowed_link_latency_in_microseconds = max_allowed_link_latency_in_microseconds

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

        for attr, _ in 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

        return result

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

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

    def __eq__(self, other):
        """
        Returns true if both objects are equal
        """
        if self is None or other is None:
            return None
        return self.__dict__ == other.__dict__

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

