# coding: utf-8

"""
    external/v1/auth_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

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

class V1UserFeatures(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 = {
        'aws_trainium': 'bool',
        'b2c_experience': 'bool',
        'byoc_enabled': 'bool',
        'byom': 'bool',
        'cap_add': 'list[str]',
        'cap_drop': 'list[str]',
        'cluster_running_notification': 'bool',
        'code_tab': 'bool',
        'collab_screen_sharing': 'bool',
        'collab_v2': 'bool',
        'crypto_monitoring': 'bool',
        'custom_app_domain': 'bool',
        'enable_crypto_crackdown': 'bool',
        'filesystem_optimisation': 'bool',
        'interruptible_instances': 'bool',
        'jobs_init': 'bool',
        'landing_studios': 'bool',
        'mmt_app': 'bool',
        'mmt_strategy_selector': 'bool',
        'mountpoint_s3': 'bool',
        'platform_docs': 'bool',
        'plugin_browser': 'bool',
        'plugin_data_prep': 'bool',
        'plugin_distributed': 'bool',
        'plugin_fiftyone': 'bool',
        'plugin_gradio': 'bool',
        'plugin_inference': 'bool',
        'plugin_label_studio': 'bool',
        'plugin_langflow': 'bool',
        'plugin_lightning_apps': 'bool',
        'plugin_lightning_apps_distributed': 'bool',
        'plugin_mage_ai': 'bool',
        'plugin_milvus': 'bool',
        'plugin_os_menu': 'bool',
        'plugin_react': 'bool',
        'plugin_streamlit': 'bool',
        'plugin_sweeps': 'bool',
        'plugin_weviate': 'bool',
        'pricing_tiers': 'bool',
        'pricing_updates': 'bool',
        'product_generator': 'bool',
        'project_selector': 'bool',
        'publish_ai_app': 'bool',
        'restart_ide_on_hang': 'bool',
        'restartable_jobs': 'bool',
        'show_dev_admin': 'bool',
        'show_quotas': 'bool',
        'slurm': 'bool',
        'studio_publication': 'bool',
        'tensorboard_plugin': 'bool',
        'tier_override': 'str',
        'writable_data_connections': 'bool'
    }

    attribute_map = {
        'aws_trainium': 'awsTrainium',
        'b2c_experience': 'b2cExperience',
        'byoc_enabled': 'byocEnabled',
        'byom': 'byom',
        'cap_add': 'capAdd',
        'cap_drop': 'capDrop',
        'cluster_running_notification': 'clusterRunningNotification',
        'code_tab': 'codeTab',
        'collab_screen_sharing': 'collabScreenSharing',
        'collab_v2': 'collabV2',
        'crypto_monitoring': 'cryptoMonitoring',
        'custom_app_domain': 'customAppDomain',
        'enable_crypto_crackdown': 'enableCryptoCrackdown',
        'filesystem_optimisation': 'filesystemOptimisation',
        'interruptible_instances': 'interruptibleInstances',
        'jobs_init': 'jobsInit',
        'landing_studios': 'landingStudios',
        'mmt_app': 'mmtApp',
        'mmt_strategy_selector': 'mmtStrategySelector',
        'mountpoint_s3': 'mountpointS3',
        'platform_docs': 'platformDocs',
        'plugin_browser': 'pluginBrowser',
        'plugin_data_prep': 'pluginDataPrep',
        'plugin_distributed': 'pluginDistributed',
        'plugin_fiftyone': 'pluginFiftyone',
        'plugin_gradio': 'pluginGradio',
        'plugin_inference': 'pluginInference',
        'plugin_label_studio': 'pluginLabelStudio',
        'plugin_langflow': 'pluginLangflow',
        'plugin_lightning_apps': 'pluginLightningApps',
        'plugin_lightning_apps_distributed': 'pluginLightningAppsDistributed',
        'plugin_mage_ai': 'pluginMageAi',
        'plugin_milvus': 'pluginMilvus',
        'plugin_os_menu': 'pluginOsMenu',
        'plugin_react': 'pluginReact',
        'plugin_streamlit': 'pluginStreamlit',
        'plugin_sweeps': 'pluginSweeps',
        'plugin_weviate': 'pluginWeviate',
        'pricing_tiers': 'pricingTiers',
        'pricing_updates': 'pricingUpdates',
        'product_generator': 'productGenerator',
        'project_selector': 'projectSelector',
        'publish_ai_app': 'publishAiApp',
        'restart_ide_on_hang': 'restartIdeOnHang',
        'restartable_jobs': 'restartableJobs',
        'show_dev_admin': 'showDevAdmin',
        'show_quotas': 'showQuotas',
        'slurm': 'slurm',
        'studio_publication': 'studioPublication',
        'tensorboard_plugin': 'tensorboardPlugin',
        'tier_override': 'tierOverride',
        'writable_data_connections': 'writableDataConnections'
    }

    def __init__(self, aws_trainium: 'bool' =None, b2c_experience: 'bool' =None, byoc_enabled: 'bool' =None, byom: 'bool' =None, cap_add: 'list[str]' =None, cap_drop: 'list[str]' =None, cluster_running_notification: 'bool' =None, code_tab: 'bool' =None, collab_screen_sharing: 'bool' =None, collab_v2: 'bool' =None, crypto_monitoring: 'bool' =None, custom_app_domain: 'bool' =None, enable_crypto_crackdown: 'bool' =None, filesystem_optimisation: 'bool' =None, interruptible_instances: 'bool' =None, jobs_init: 'bool' =None, landing_studios: 'bool' =None, mmt_app: 'bool' =None, mmt_strategy_selector: 'bool' =None, mountpoint_s3: 'bool' =None, platform_docs: 'bool' =None, plugin_browser: 'bool' =None, plugin_data_prep: 'bool' =None, plugin_distributed: 'bool' =None, plugin_fiftyone: 'bool' =None, plugin_gradio: 'bool' =None, plugin_inference: 'bool' =None, plugin_label_studio: 'bool' =None, plugin_langflow: 'bool' =None, plugin_lightning_apps: 'bool' =None, plugin_lightning_apps_distributed: 'bool' =None, plugin_mage_ai: 'bool' =None, plugin_milvus: 'bool' =None, plugin_os_menu: 'bool' =None, plugin_react: 'bool' =None, plugin_streamlit: 'bool' =None, plugin_sweeps: 'bool' =None, plugin_weviate: 'bool' =None, pricing_tiers: 'bool' =None, pricing_updates: 'bool' =None, product_generator: 'bool' =None, project_selector: 'bool' =None, publish_ai_app: 'bool' =None, restart_ide_on_hang: 'bool' =None, restartable_jobs: 'bool' =None, show_dev_admin: 'bool' =None, show_quotas: 'bool' =None, slurm: 'bool' =None, studio_publication: 'bool' =None, tensorboard_plugin: 'bool' =None, tier_override: 'str' =None, writable_data_connections: 'bool' =None):  # noqa: E501
        """V1UserFeatures - a model defined in Swagger"""  # noqa: E501
        self._aws_trainium = None
        self._b2c_experience = None
        self._byoc_enabled = None
        self._byom = None
        self._cap_add = None
        self._cap_drop = None
        self._cluster_running_notification = None
        self._code_tab = None
        self._collab_screen_sharing = None
        self._collab_v2 = None
        self._crypto_monitoring = None
        self._custom_app_domain = None
        self._enable_crypto_crackdown = None
        self._filesystem_optimisation = None
        self._interruptible_instances = None
        self._jobs_init = None
        self._landing_studios = None
        self._mmt_app = None
        self._mmt_strategy_selector = None
        self._mountpoint_s3 = None
        self._platform_docs = None
        self._plugin_browser = None
        self._plugin_data_prep = None
        self._plugin_distributed = None
        self._plugin_fiftyone = None
        self._plugin_gradio = None
        self._plugin_inference = None
        self._plugin_label_studio = None
        self._plugin_langflow = None
        self._plugin_lightning_apps = None
        self._plugin_lightning_apps_distributed = None
        self._plugin_mage_ai = None
        self._plugin_milvus = None
        self._plugin_os_menu = None
        self._plugin_react = None
        self._plugin_streamlit = None
        self._plugin_sweeps = None
        self._plugin_weviate = None
        self._pricing_tiers = None
        self._pricing_updates = None
        self._product_generator = None
        self._project_selector = None
        self._publish_ai_app = None
        self._restart_ide_on_hang = None
        self._restartable_jobs = None
        self._show_dev_admin = None
        self._show_quotas = None
        self._slurm = None
        self._studio_publication = None
        self._tensorboard_plugin = None
        self._tier_override = None
        self._writable_data_connections = None
        self.discriminator = None
        if aws_trainium is not None:
            self.aws_trainium = aws_trainium
        if b2c_experience is not None:
            self.b2c_experience = b2c_experience
        if byoc_enabled is not None:
            self.byoc_enabled = byoc_enabled
        if byom is not None:
            self.byom = byom
        if cap_add is not None:
            self.cap_add = cap_add
        if cap_drop is not None:
            self.cap_drop = cap_drop
        if cluster_running_notification is not None:
            self.cluster_running_notification = cluster_running_notification
        if code_tab is not None:
            self.code_tab = code_tab
        if collab_screen_sharing is not None:
            self.collab_screen_sharing = collab_screen_sharing
        if collab_v2 is not None:
            self.collab_v2 = collab_v2
        if crypto_monitoring is not None:
            self.crypto_monitoring = crypto_monitoring
        if custom_app_domain is not None:
            self.custom_app_domain = custom_app_domain
        if enable_crypto_crackdown is not None:
            self.enable_crypto_crackdown = enable_crypto_crackdown
        if filesystem_optimisation is not None:
            self.filesystem_optimisation = filesystem_optimisation
        if interruptible_instances is not None:
            self.interruptible_instances = interruptible_instances
        if jobs_init is not None:
            self.jobs_init = jobs_init
        if landing_studios is not None:
            self.landing_studios = landing_studios
        if mmt_app is not None:
            self.mmt_app = mmt_app
        if mmt_strategy_selector is not None:
            self.mmt_strategy_selector = mmt_strategy_selector
        if mountpoint_s3 is not None:
            self.mountpoint_s3 = mountpoint_s3
        if platform_docs is not None:
            self.platform_docs = platform_docs
        if plugin_browser is not None:
            self.plugin_browser = plugin_browser
        if plugin_data_prep is not None:
            self.plugin_data_prep = plugin_data_prep
        if plugin_distributed is not None:
            self.plugin_distributed = plugin_distributed
        if plugin_fiftyone is not None:
            self.plugin_fiftyone = plugin_fiftyone
        if plugin_gradio is not None:
            self.plugin_gradio = plugin_gradio
        if plugin_inference is not None:
            self.plugin_inference = plugin_inference
        if plugin_label_studio is not None:
            self.plugin_label_studio = plugin_label_studio
        if plugin_langflow is not None:
            self.plugin_langflow = plugin_langflow
        if plugin_lightning_apps is not None:
            self.plugin_lightning_apps = plugin_lightning_apps
        if plugin_lightning_apps_distributed is not None:
            self.plugin_lightning_apps_distributed = plugin_lightning_apps_distributed
        if plugin_mage_ai is not None:
            self.plugin_mage_ai = plugin_mage_ai
        if plugin_milvus is not None:
            self.plugin_milvus = plugin_milvus
        if plugin_os_menu is not None:
            self.plugin_os_menu = plugin_os_menu
        if plugin_react is not None:
            self.plugin_react = plugin_react
        if plugin_streamlit is not None:
            self.plugin_streamlit = plugin_streamlit
        if plugin_sweeps is not None:
            self.plugin_sweeps = plugin_sweeps
        if plugin_weviate is not None:
            self.plugin_weviate = plugin_weviate
        if pricing_tiers is not None:
            self.pricing_tiers = pricing_tiers
        if pricing_updates is not None:
            self.pricing_updates = pricing_updates
        if product_generator is not None:
            self.product_generator = product_generator
        if project_selector is not None:
            self.project_selector = project_selector
        if publish_ai_app is not None:
            self.publish_ai_app = publish_ai_app
        if restart_ide_on_hang is not None:
            self.restart_ide_on_hang = restart_ide_on_hang
        if restartable_jobs is not None:
            self.restartable_jobs = restartable_jobs
        if show_dev_admin is not None:
            self.show_dev_admin = show_dev_admin
        if show_quotas is not None:
            self.show_quotas = show_quotas
        if slurm is not None:
            self.slurm = slurm
        if studio_publication is not None:
            self.studio_publication = studio_publication
        if tensorboard_plugin is not None:
            self.tensorboard_plugin = tensorboard_plugin
        if tier_override is not None:
            self.tier_override = tier_override
        if writable_data_connections is not None:
            self.writable_data_connections = writable_data_connections

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


        :return: The aws_trainium of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._aws_trainium

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


        :param aws_trainium: The aws_trainium of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._aws_trainium = aws_trainium

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


        :return: The b2c_experience of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._b2c_experience

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


        :param b2c_experience: The b2c_experience of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._b2c_experience = b2c_experience

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


        :return: The byoc_enabled of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._byoc_enabled

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


        :param byoc_enabled: The byoc_enabled of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._byoc_enabled = byoc_enabled

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


        :return: The byom of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._byom

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


        :param byom: The byom of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._byom = byom

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


        :return: The cap_add of this V1UserFeatures.  # noqa: E501
        :rtype: list[str]
        """
        return self._cap_add

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


        :param cap_add: The cap_add of this V1UserFeatures.  # noqa: E501
        :type: list[str]
        """

        self._cap_add = cap_add

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


        :return: The cap_drop of this V1UserFeatures.  # noqa: E501
        :rtype: list[str]
        """
        return self._cap_drop

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


        :param cap_drop: The cap_drop of this V1UserFeatures.  # noqa: E501
        :type: list[str]
        """

        self._cap_drop = cap_drop

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


        :return: The cluster_running_notification of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._cluster_running_notification

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


        :param cluster_running_notification: The cluster_running_notification of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._cluster_running_notification = cluster_running_notification

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


        :return: The code_tab of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._code_tab

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


        :param code_tab: The code_tab of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._code_tab = code_tab

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


        :return: The collab_screen_sharing of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._collab_screen_sharing

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


        :param collab_screen_sharing: The collab_screen_sharing of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._collab_screen_sharing = collab_screen_sharing

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


        :return: The collab_v2 of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._collab_v2

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


        :param collab_v2: The collab_v2 of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._collab_v2 = collab_v2

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


        :return: The crypto_monitoring of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._crypto_monitoring

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


        :param crypto_monitoring: The crypto_monitoring of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._crypto_monitoring = crypto_monitoring

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


        :return: The custom_app_domain of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._custom_app_domain

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


        :param custom_app_domain: The custom_app_domain of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._custom_app_domain = custom_app_domain

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


        :return: The enable_crypto_crackdown of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._enable_crypto_crackdown

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


        :param enable_crypto_crackdown: The enable_crypto_crackdown of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._enable_crypto_crackdown = enable_crypto_crackdown

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


        :return: The filesystem_optimisation of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._filesystem_optimisation

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


        :param filesystem_optimisation: The filesystem_optimisation of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._filesystem_optimisation = filesystem_optimisation

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


        :return: The interruptible_instances of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._interruptible_instances

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


        :param interruptible_instances: The interruptible_instances of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._interruptible_instances = interruptible_instances

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


        :return: The jobs_init of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._jobs_init

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


        :param jobs_init: The jobs_init of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._jobs_init = jobs_init

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


        :return: The landing_studios of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._landing_studios

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


        :param landing_studios: The landing_studios of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._landing_studios = landing_studios

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


        :return: The mmt_app of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._mmt_app

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


        :param mmt_app: The mmt_app of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._mmt_app = mmt_app

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


        :return: The mmt_strategy_selector of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._mmt_strategy_selector

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


        :param mmt_strategy_selector: The mmt_strategy_selector of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._mmt_strategy_selector = mmt_strategy_selector

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


        :return: The mountpoint_s3 of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._mountpoint_s3

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


        :param mountpoint_s3: The mountpoint_s3 of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._mountpoint_s3 = mountpoint_s3

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


        :return: The platform_docs of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._platform_docs

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


        :param platform_docs: The platform_docs of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._platform_docs = platform_docs

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


        :return: The plugin_browser of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_browser

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


        :param plugin_browser: The plugin_browser of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_browser = plugin_browser

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


        :return: The plugin_data_prep of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_data_prep

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


        :param plugin_data_prep: The plugin_data_prep of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_data_prep = plugin_data_prep

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


        :return: The plugin_distributed of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_distributed

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


        :param plugin_distributed: The plugin_distributed of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_distributed = plugin_distributed

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


        :return: The plugin_fiftyone of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_fiftyone

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


        :param plugin_fiftyone: The plugin_fiftyone of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_fiftyone = plugin_fiftyone

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


        :return: The plugin_gradio of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_gradio

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


        :param plugin_gradio: The plugin_gradio of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_gradio = plugin_gradio

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


        :return: The plugin_inference of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_inference

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


        :param plugin_inference: The plugin_inference of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_inference = plugin_inference

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


        :return: The plugin_label_studio of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_label_studio

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


        :param plugin_label_studio: The plugin_label_studio of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_label_studio = plugin_label_studio

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


        :return: The plugin_langflow of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_langflow

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


        :param plugin_langflow: The plugin_langflow of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_langflow = plugin_langflow

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


        :return: The plugin_lightning_apps of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_lightning_apps

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


        :param plugin_lightning_apps: The plugin_lightning_apps of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_lightning_apps = plugin_lightning_apps

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


        :return: The plugin_lightning_apps_distributed of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_lightning_apps_distributed

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


        :param plugin_lightning_apps_distributed: The plugin_lightning_apps_distributed of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_lightning_apps_distributed = plugin_lightning_apps_distributed

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


        :return: The plugin_mage_ai of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_mage_ai

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


        :param plugin_mage_ai: The plugin_mage_ai of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_mage_ai = plugin_mage_ai

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


        :return: The plugin_milvus of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_milvus

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


        :param plugin_milvus: The plugin_milvus of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_milvus = plugin_milvus

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


        :return: The plugin_os_menu of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_os_menu

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


        :param plugin_os_menu: The plugin_os_menu of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_os_menu = plugin_os_menu

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


        :return: The plugin_react of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_react

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


        :param plugin_react: The plugin_react of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_react = plugin_react

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


        :return: The plugin_streamlit of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_streamlit

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


        :param plugin_streamlit: The plugin_streamlit of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_streamlit = plugin_streamlit

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


        :return: The plugin_sweeps of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_sweeps

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


        :param plugin_sweeps: The plugin_sweeps of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_sweeps = plugin_sweeps

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


        :return: The plugin_weviate of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._plugin_weviate

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


        :param plugin_weviate: The plugin_weviate of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._plugin_weviate = plugin_weviate

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


        :return: The pricing_tiers of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._pricing_tiers

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


        :param pricing_tiers: The pricing_tiers of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._pricing_tiers = pricing_tiers

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


        :return: The pricing_updates of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._pricing_updates

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


        :param pricing_updates: The pricing_updates of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._pricing_updates = pricing_updates

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


        :return: The product_generator of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._product_generator

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


        :param product_generator: The product_generator of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._product_generator = product_generator

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


        :return: The project_selector of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._project_selector

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


        :param project_selector: The project_selector of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._project_selector = project_selector

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


        :return: The publish_ai_app of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._publish_ai_app

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


        :param publish_ai_app: The publish_ai_app of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._publish_ai_app = publish_ai_app

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


        :return: The restart_ide_on_hang of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._restart_ide_on_hang

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


        :param restart_ide_on_hang: The restart_ide_on_hang of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._restart_ide_on_hang = restart_ide_on_hang

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


        :return: The restartable_jobs of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._restartable_jobs

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


        :param restartable_jobs: The restartable_jobs of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._restartable_jobs = restartable_jobs

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


        :return: The show_dev_admin of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._show_dev_admin

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


        :param show_dev_admin: The show_dev_admin of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._show_dev_admin = show_dev_admin

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


        :return: The show_quotas of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._show_quotas

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


        :param show_quotas: The show_quotas of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._show_quotas = show_quotas

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


        :return: The slurm of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._slurm

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


        :param slurm: The slurm of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._slurm = slurm

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


        :return: The studio_publication of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._studio_publication

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


        :param studio_publication: The studio_publication of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._studio_publication = studio_publication

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


        :return: The tensorboard_plugin of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._tensorboard_plugin

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


        :param tensorboard_plugin: The tensorboard_plugin of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._tensorboard_plugin = tensorboard_plugin

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


        :return: The tier_override of this V1UserFeatures.  # noqa: E501
        :rtype: str
        """
        return self._tier_override

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


        :param tier_override: The tier_override of this V1UserFeatures.  # noqa: E501
        :type: str
        """

        self._tier_override = tier_override

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


        :return: The writable_data_connections of this V1UserFeatures.  # noqa: E501
        :rtype: bool
        """
        return self._writable_data_connections

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


        :param writable_data_connections: The writable_data_connections of this V1UserFeatures.  # noqa: E501
        :type: bool
        """

        self._writable_data_connections = writable_data_connections

    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(V1UserFeatures, 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: 'V1UserFeatures') -> bool:
        """Returns true if both objects are equal"""
        if not isinstance(other, V1UserFeatures):
            return False

        return self.__dict__ == other.__dict__

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