# coding: utf-8

"""
    external/v1/external_session_service.proto

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

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

    NOTE
    ----
    standard swagger-codegen-cli for this python client has been modified
    by custom templates. The purpose of these templates is to include
    typing information in the API and Model code. Please refer to the
    main grid repository for more info
"""


import pprint
import re  # noqa: F401
from typing import TYPE_CHECKING

import six

from grid.openapi.configuration import Configuration

if TYPE_CHECKING:
    from datetime import datetime
    from grid.openapi.models import *

class V1AWSClusterDriverSpec(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 = {
        'abort_incomplete_datastore_num_days': 'int',
        'az_skip_ids': 'list[str]',
        'bastion_ami_override': 'str',
        'bucket_name': 'str',
        'builder_ami_name_override': 'str',
        'builder_ami_override': 'str',
        'builder_node_instance_type': 'str',
        'cpu_ami_override': 'str',
        'datastore_transition_to_intelligent_tiering_num_days': 'int',
        'enable_datastore_transition_to_intelligent_tiering': 'bool',
        'enable_dns_firewall': 'bool',
        'enable_experiment_transition_to_intelligent_tiering': 'bool',
        'experiment_transition_to_intelligent_tiering_num_days': 'int',
        'external_id': 'str',
        'fsx_enabled': 'bool',
        'gpu_ami_override': 'str',
        'guardduty_integration': 'bool',
        'instance_types': 'list[V1InstanceSpec]',
        'internal_gc_ttl': 'str',
        'internal_test_cluster': 'bool',
        'kubernetes_version': 'str',
        'management_node_instance_type': 'str',
        'original_cluster_name': 'str',
        'region': 'str',
        'role_arn': 'str',
        'tensorboard_node_instance_type': 'str',
        'x_multi_az_count': 'int'
    }

    attribute_map = {
        'abort_incomplete_datastore_num_days': 'abortIncompleteDatastoreNumDays',
        'az_skip_ids': 'azSkipIds',
        'bastion_ami_override': 'bastionAmiOverride',
        'bucket_name': 'bucketName',
        'builder_ami_name_override': 'builderAmiNameOverride',
        'builder_ami_override': 'builderAmiOverride',
        'builder_node_instance_type': 'builderNodeInstanceType',
        'cpu_ami_override': 'cpuAmiOverride',
        'datastore_transition_to_intelligent_tiering_num_days': 'datastoreTransitionToIntelligentTieringNumDays',
        'enable_datastore_transition_to_intelligent_tiering': 'enableDatastoreTransitionToIntelligentTiering',
        'enable_dns_firewall': 'enableDnsFirewall',
        'enable_experiment_transition_to_intelligent_tiering': 'enableExperimentTransitionToIntelligentTiering',
        'experiment_transition_to_intelligent_tiering_num_days': 'experimentTransitionToIntelligentTieringNumDays',
        'external_id': 'externalId',
        'fsx_enabled': 'fsxEnabled',
        'gpu_ami_override': 'gpuAmiOverride',
        'guardduty_integration': 'guarddutyIntegration',
        'instance_types': 'instanceTypes',
        'internal_gc_ttl': 'internalGcTtl',
        'internal_test_cluster': 'internalTestCluster',
        'kubernetes_version': 'kubernetesVersion',
        'management_node_instance_type': 'managementNodeInstanceType',
        'original_cluster_name': 'originalClusterName',
        'region': 'region',
        'role_arn': 'roleArn',
        'tensorboard_node_instance_type': 'tensorboardNodeInstanceType',
        'x_multi_az_count': 'xMultiAzCount'
    }

    def __init__(self, abort_incomplete_datastore_num_days: 'int' = None, az_skip_ids: 'list[str]' = None, bastion_ami_override: 'str' = None, bucket_name: 'str' = None, builder_ami_name_override: 'str' = None, builder_ami_override: 'str' = None, builder_node_instance_type: 'str' = None, cpu_ami_override: 'str' = None, datastore_transition_to_intelligent_tiering_num_days: 'int' = None, enable_datastore_transition_to_intelligent_tiering: 'bool' = None, enable_dns_firewall: 'bool' = None, enable_experiment_transition_to_intelligent_tiering: 'bool' = None, experiment_transition_to_intelligent_tiering_num_days: 'int' = None, external_id: 'str' = None, fsx_enabled: 'bool' = None, gpu_ami_override: 'str' = None, guardduty_integration: 'bool' = None, instance_types: 'list[V1InstanceSpec]' = None, internal_gc_ttl: 'str' = None, internal_test_cluster: 'bool' = None, kubernetes_version: 'str' = None, management_node_instance_type: 'str' = None, original_cluster_name: 'str' = None, region: 'str' = None, role_arn: 'str' = None, tensorboard_node_instance_type: 'str' = None, x_multi_az_count: 'int' = None, _configuration=None):  # noqa: E501
        """V1AWSClusterDriverSpec - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._abort_incomplete_datastore_num_days = None
        self._az_skip_ids = None
        self._bastion_ami_override = None
        self._bucket_name = None
        self._builder_ami_name_override = None
        self._builder_ami_override = None
        self._builder_node_instance_type = None
        self._cpu_ami_override = None
        self._datastore_transition_to_intelligent_tiering_num_days = None
        self._enable_datastore_transition_to_intelligent_tiering = None
        self._enable_dns_firewall = None
        self._enable_experiment_transition_to_intelligent_tiering = None
        self._experiment_transition_to_intelligent_tiering_num_days = None
        self._external_id = None
        self._fsx_enabled = None
        self._gpu_ami_override = None
        self._guardduty_integration = None
        self._instance_types = None
        self._internal_gc_ttl = None
        self._internal_test_cluster = None
        self._kubernetes_version = None
        self._management_node_instance_type = None
        self._original_cluster_name = None
        self._region = None
        self._role_arn = None
        self._tensorboard_node_instance_type = None
        self._x_multi_az_count = None
        self.discriminator = None

        if abort_incomplete_datastore_num_days is not None:
            self.abort_incomplete_datastore_num_days = abort_incomplete_datastore_num_days
        if az_skip_ids is not None:
            self.az_skip_ids = az_skip_ids
        if bastion_ami_override is not None:
            self.bastion_ami_override = bastion_ami_override
        if bucket_name is not None:
            self.bucket_name = bucket_name
        if builder_ami_name_override is not None:
            self.builder_ami_name_override = builder_ami_name_override
        if builder_ami_override is not None:
            self.builder_ami_override = builder_ami_override
        if builder_node_instance_type is not None:
            self.builder_node_instance_type = builder_node_instance_type
        if cpu_ami_override is not None:
            self.cpu_ami_override = cpu_ami_override
        if datastore_transition_to_intelligent_tiering_num_days is not None:
            self.datastore_transition_to_intelligent_tiering_num_days = datastore_transition_to_intelligent_tiering_num_days
        if enable_datastore_transition_to_intelligent_tiering is not None:
            self.enable_datastore_transition_to_intelligent_tiering = enable_datastore_transition_to_intelligent_tiering
        if enable_dns_firewall is not None:
            self.enable_dns_firewall = enable_dns_firewall
        if enable_experiment_transition_to_intelligent_tiering is not None:
            self.enable_experiment_transition_to_intelligent_tiering = enable_experiment_transition_to_intelligent_tiering
        if experiment_transition_to_intelligent_tiering_num_days is not None:
            self.experiment_transition_to_intelligent_tiering_num_days = experiment_transition_to_intelligent_tiering_num_days
        if external_id is not None:
            self.external_id = external_id
        if fsx_enabled is not None:
            self.fsx_enabled = fsx_enabled
        if gpu_ami_override is not None:
            self.gpu_ami_override = gpu_ami_override
        if guardduty_integration is not None:
            self.guardduty_integration = guardduty_integration
        if instance_types is not None:
            self.instance_types = instance_types
        if internal_gc_ttl is not None:
            self.internal_gc_ttl = internal_gc_ttl
        if internal_test_cluster is not None:
            self.internal_test_cluster = internal_test_cluster
        if kubernetes_version is not None:
            self.kubernetes_version = kubernetes_version
        if management_node_instance_type is not None:
            self.management_node_instance_type = management_node_instance_type
        if original_cluster_name is not None:
            self.original_cluster_name = original_cluster_name
        if region is not None:
            self.region = region
        if role_arn is not None:
            self.role_arn = role_arn
        if tensorboard_node_instance_type is not None:
            self.tensorboard_node_instance_type = tensorboard_node_instance_type
        if x_multi_az_count is not None:
            self.x_multi_az_count = x_multi_az_count

    @property
    def abort_incomplete_datastore_num_days(self) -> 'int':
        """Gets the abort_incomplete_datastore_num_days of this V1AWSClusterDriverSpec.  # noqa: E501

        how many days after initiating a datastore upload should the datastore be marked as failed and all data deleted if the \"upload\" is not complete. The value for tf abort_incomplete_datastore_mpu_days is derived from this value (this value + 1). Must be value >= 1 or a default value will be silently updated in place.  # noqa: E501

        :return: The abort_incomplete_datastore_num_days of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: int
        """
        return self._abort_incomplete_datastore_num_days

    @abort_incomplete_datastore_num_days.setter
    def abort_incomplete_datastore_num_days(self, abort_incomplete_datastore_num_days: 'int'):
        """Sets the abort_incomplete_datastore_num_days of this V1AWSClusterDriverSpec.

        how many days after initiating a datastore upload should the datastore be marked as failed and all data deleted if the \"upload\" is not complete. The value for tf abort_incomplete_datastore_mpu_days is derived from this value (this value + 1). Must be value >= 1 or a default value will be silently updated in place.  # noqa: E501

        :param abort_incomplete_datastore_num_days: The abort_incomplete_datastore_num_days of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: int
        """

        self._abort_incomplete_datastore_num_days = abort_incomplete_datastore_num_days

    @property
    def az_skip_ids(self) -> 'list[str]':
        """Gets the az_skip_ids of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The az_skip_ids of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: list[str]
        """
        return self._az_skip_ids

    @az_skip_ids.setter
    def az_skip_ids(self, az_skip_ids: 'list[str]'):
        """Sets the az_skip_ids of this V1AWSClusterDriverSpec.


        :param az_skip_ids: The az_skip_ids of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: list[str]
        """

        self._az_skip_ids = az_skip_ids

    @property
    def bastion_ami_override(self) -> 'str':
        """Gets the bastion_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The bastion_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._bastion_ami_override

    @bastion_ami_override.setter
    def bastion_ami_override(self, bastion_ami_override: 'str'):
        """Sets the bastion_ami_override of this V1AWSClusterDriverSpec.


        :param bastion_ami_override: The bastion_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._bastion_ami_override = bastion_ami_override

    @property
    def bucket_name(self) -> 'str':
        """Gets the bucket_name of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The bucket_name of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._bucket_name

    @bucket_name.setter
    def bucket_name(self, bucket_name: 'str'):
        """Sets the bucket_name of this V1AWSClusterDriverSpec.


        :param bucket_name: The bucket_name of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._bucket_name = bucket_name

    @property
    def builder_ami_name_override(self) -> 'str':
        """Gets the builder_ami_name_override of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The builder_ami_name_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._builder_ami_name_override

    @builder_ami_name_override.setter
    def builder_ami_name_override(self, builder_ami_name_override: 'str'):
        """Sets the builder_ami_name_override of this V1AWSClusterDriverSpec.


        :param builder_ami_name_override: The builder_ami_name_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._builder_ami_name_override = builder_ami_name_override

    @property
    def builder_ami_override(self) -> 'str':
        """Gets the builder_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The builder_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._builder_ami_override

    @builder_ami_override.setter
    def builder_ami_override(self, builder_ami_override: 'str'):
        """Sets the builder_ami_override of this V1AWSClusterDriverSpec.


        :param builder_ami_override: The builder_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._builder_ami_override = builder_ami_override

    @property
    def builder_node_instance_type(self) -> 'str':
        """Gets the builder_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The builder_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._builder_node_instance_type

    @builder_node_instance_type.setter
    def builder_node_instance_type(self, builder_node_instance_type: 'str'):
        """Sets the builder_node_instance_type of this V1AWSClusterDriverSpec.


        :param builder_node_instance_type: The builder_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._builder_node_instance_type = builder_node_instance_type

    @property
    def cpu_ami_override(self) -> 'str':
        """Gets the cpu_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The cpu_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._cpu_ami_override

    @cpu_ami_override.setter
    def cpu_ami_override(self, cpu_ami_override: 'str'):
        """Sets the cpu_ami_override of this V1AWSClusterDriverSpec.


        :param cpu_ami_override: The cpu_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._cpu_ami_override = cpu_ami_override

    @property
    def datastore_transition_to_intelligent_tiering_num_days(self) -> 'int':
        """Gets the datastore_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.  # noqa: E501

        how many days after datastore blob upload should the object transition to INTELLIGENT_TIERING storage class. If variable `enable_datastore_transition_to_intelligent_tiering` is `false` then this value is ignored.  # noqa: E501

        :return: The datastore_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: int
        """
        return self._datastore_transition_to_intelligent_tiering_num_days

    @datastore_transition_to_intelligent_tiering_num_days.setter
    def datastore_transition_to_intelligent_tiering_num_days(self, datastore_transition_to_intelligent_tiering_num_days: 'int'):
        """Sets the datastore_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.

        how many days after datastore blob upload should the object transition to INTELLIGENT_TIERING storage class. If variable `enable_datastore_transition_to_intelligent_tiering` is `false` then this value is ignored.  # noqa: E501

        :param datastore_transition_to_intelligent_tiering_num_days: The datastore_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: int
        """

        self._datastore_transition_to_intelligent_tiering_num_days = datastore_transition_to_intelligent_tiering_num_days

    @property
    def enable_datastore_transition_to_intelligent_tiering(self) -> 'bool':
        """Gets the enable_datastore_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The enable_datastore_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: bool
        """
        return self._enable_datastore_transition_to_intelligent_tiering

    @enable_datastore_transition_to_intelligent_tiering.setter
    def enable_datastore_transition_to_intelligent_tiering(self, enable_datastore_transition_to_intelligent_tiering: 'bool'):
        """Sets the enable_datastore_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.


        :param enable_datastore_transition_to_intelligent_tiering: The enable_datastore_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: bool
        """

        self._enable_datastore_transition_to_intelligent_tiering = enable_datastore_transition_to_intelligent_tiering

    @property
    def enable_dns_firewall(self) -> 'bool':
        """Gets the enable_dns_firewall of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The enable_dns_firewall of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: bool
        """
        return self._enable_dns_firewall

    @enable_dns_firewall.setter
    def enable_dns_firewall(self, enable_dns_firewall: 'bool'):
        """Sets the enable_dns_firewall of this V1AWSClusterDriverSpec.


        :param enable_dns_firewall: The enable_dns_firewall of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: bool
        """

        self._enable_dns_firewall = enable_dns_firewall

    @property
    def enable_experiment_transition_to_intelligent_tiering(self) -> 'bool':
        """Gets the enable_experiment_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The enable_experiment_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: bool
        """
        return self._enable_experiment_transition_to_intelligent_tiering

    @enable_experiment_transition_to_intelligent_tiering.setter
    def enable_experiment_transition_to_intelligent_tiering(self, enable_experiment_transition_to_intelligent_tiering: 'bool'):
        """Sets the enable_experiment_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.


        :param enable_experiment_transition_to_intelligent_tiering: The enable_experiment_transition_to_intelligent_tiering of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: bool
        """

        self._enable_experiment_transition_to_intelligent_tiering = enable_experiment_transition_to_intelligent_tiering

    @property
    def experiment_transition_to_intelligent_tiering_num_days(self) -> 'int':
        """Gets the experiment_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.  # noqa: E501

        how many days after datastore blob upload should the object transition to INTELLIGENT_TIERING storage class. If variable `enable_experiment_transition_to_intelligent_tiering` is `false` then this value is ignored.  # noqa: E501

        :return: The experiment_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: int
        """
        return self._experiment_transition_to_intelligent_tiering_num_days

    @experiment_transition_to_intelligent_tiering_num_days.setter
    def experiment_transition_to_intelligent_tiering_num_days(self, experiment_transition_to_intelligent_tiering_num_days: 'int'):
        """Sets the experiment_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.

        how many days after datastore blob upload should the object transition to INTELLIGENT_TIERING storage class. If variable `enable_experiment_transition_to_intelligent_tiering` is `false` then this value is ignored.  # noqa: E501

        :param experiment_transition_to_intelligent_tiering_num_days: The experiment_transition_to_intelligent_tiering_num_days of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: int
        """

        self._experiment_transition_to_intelligent_tiering_num_days = experiment_transition_to_intelligent_tiering_num_days

    @property
    def external_id(self) -> 'str':
        """Gets the external_id of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The external_id of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._external_id

    @external_id.setter
    def external_id(self, external_id: 'str'):
        """Sets the external_id of this V1AWSClusterDriverSpec.


        :param external_id: The external_id of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._external_id = external_id

    @property
    def fsx_enabled(self) -> 'bool':
        """Gets the fsx_enabled of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The fsx_enabled of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: bool
        """
        return self._fsx_enabled

    @fsx_enabled.setter
    def fsx_enabled(self, fsx_enabled: 'bool'):
        """Sets the fsx_enabled of this V1AWSClusterDriverSpec.


        :param fsx_enabled: The fsx_enabled of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: bool
        """

        self._fsx_enabled = fsx_enabled

    @property
    def gpu_ami_override(self) -> 'str':
        """Gets the gpu_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The gpu_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._gpu_ami_override

    @gpu_ami_override.setter
    def gpu_ami_override(self, gpu_ami_override: 'str'):
        """Sets the gpu_ami_override of this V1AWSClusterDriverSpec.


        :param gpu_ami_override: The gpu_ami_override of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._gpu_ami_override = gpu_ami_override

    @property
    def guardduty_integration(self) -> 'bool':
        """Gets the guardduty_integration of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The guardduty_integration of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: bool
        """
        return self._guardduty_integration

    @guardduty_integration.setter
    def guardduty_integration(self, guardduty_integration: 'bool'):
        """Sets the guardduty_integration of this V1AWSClusterDriverSpec.


        :param guardduty_integration: The guardduty_integration of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: bool
        """

        self._guardduty_integration = guardduty_integration

    @property
    def instance_types(self) -> 'list[V1InstanceSpec]':
        """Gets the instance_types of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The instance_types of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: list[V1InstanceSpec]
        """
        return self._instance_types

    @instance_types.setter
    def instance_types(self, instance_types: 'list[V1InstanceSpec]'):
        """Sets the instance_types of this V1AWSClusterDriverSpec.


        :param instance_types: The instance_types of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: list[V1InstanceSpec]
        """

        self._instance_types = instance_types

    @property
    def internal_gc_ttl(self) -> 'str':
        """Gets the internal_gc_ttl of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The internal_gc_ttl of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._internal_gc_ttl

    @internal_gc_ttl.setter
    def internal_gc_ttl(self, internal_gc_ttl: 'str'):
        """Sets the internal_gc_ttl of this V1AWSClusterDriverSpec.


        :param internal_gc_ttl: The internal_gc_ttl of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._internal_gc_ttl = internal_gc_ttl

    @property
    def internal_test_cluster(self) -> 'bool':
        """Gets the internal_test_cluster of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The internal_test_cluster of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: bool
        """
        return self._internal_test_cluster

    @internal_test_cluster.setter
    def internal_test_cluster(self, internal_test_cluster: 'bool'):
        """Sets the internal_test_cluster of this V1AWSClusterDriverSpec.


        :param internal_test_cluster: The internal_test_cluster of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: bool
        """

        self._internal_test_cluster = internal_test_cluster

    @property
    def kubernetes_version(self) -> 'str':
        """Gets the kubernetes_version of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The kubernetes_version of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._kubernetes_version

    @kubernetes_version.setter
    def kubernetes_version(self, kubernetes_version: 'str'):
        """Sets the kubernetes_version of this V1AWSClusterDriverSpec.


        :param kubernetes_version: The kubernetes_version of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._kubernetes_version = kubernetes_version

    @property
    def management_node_instance_type(self) -> 'str':
        """Gets the management_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The management_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._management_node_instance_type

    @management_node_instance_type.setter
    def management_node_instance_type(self, management_node_instance_type: 'str'):
        """Sets the management_node_instance_type of this V1AWSClusterDriverSpec.


        :param management_node_instance_type: The management_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._management_node_instance_type = management_node_instance_type

    @property
    def original_cluster_name(self) -> 'str':
        """Gets the original_cluster_name of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The original_cluster_name of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._original_cluster_name

    @original_cluster_name.setter
    def original_cluster_name(self, original_cluster_name: 'str'):
        """Sets the original_cluster_name of this V1AWSClusterDriverSpec.


        :param original_cluster_name: The original_cluster_name of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._original_cluster_name = original_cluster_name

    @property
    def region(self) -> 'str':
        """Gets the region of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The region of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._region

    @region.setter
    def region(self, region: 'str'):
        """Sets the region of this V1AWSClusterDriverSpec.


        :param region: The region of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._region = region

    @property
    def role_arn(self) -> 'str':
        """Gets the role_arn of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The role_arn of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._role_arn

    @role_arn.setter
    def role_arn(self, role_arn: 'str'):
        """Sets the role_arn of this V1AWSClusterDriverSpec.


        :param role_arn: The role_arn of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._role_arn = role_arn

    @property
    def tensorboard_node_instance_type(self) -> 'str':
        """Gets the tensorboard_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The tensorboard_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: str
        """
        return self._tensorboard_node_instance_type

    @tensorboard_node_instance_type.setter
    def tensorboard_node_instance_type(self, tensorboard_node_instance_type: 'str'):
        """Sets the tensorboard_node_instance_type of this V1AWSClusterDriverSpec.


        :param tensorboard_node_instance_type: The tensorboard_node_instance_type of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: str
        """

        self._tensorboard_node_instance_type = tensorboard_node_instance_type

    @property
    def x_multi_az_count(self) -> 'int':
        """Gets the x_multi_az_count of this V1AWSClusterDriverSpec.  # noqa: E501


        :return: The x_multi_az_count of this V1AWSClusterDriverSpec.  # noqa: E501
        :rtype: int
        """
        return self._x_multi_az_count

    @x_multi_az_count.setter
    def x_multi_az_count(self, x_multi_az_count: 'int'):
        """Sets the x_multi_az_count of this V1AWSClusterDriverSpec.


        :param x_multi_az_count: The x_multi_az_count of this V1AWSClusterDriverSpec.  # noqa: E501
        :type: int
        """

        self._x_multi_az_count = x_multi_az_count

    def to_dict(self) -> dict:
        """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(V1AWSClusterDriverSpec, dict):
            for key, value in self.items():
                result[key] = value

        return result

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

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

    def __eq__(self, other: 'V1AWSClusterDriverSpec') -> bool:
        """Returns true if both objects are equal"""
        if not isinstance(other, V1AWSClusterDriverSpec):
            return False

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

    def __ne__(self, other: 'V1AWSClusterDriverSpec') -> bool:
        """Returns true if both objects are not equal"""
        if not isinstance(other, V1AWSClusterDriverSpec):
            return True

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