# coding: utf-8

"""
    Adobe Experience Manager OSGI config (AEM) API

    Swagger AEM OSGI is an OpenAPI specification for Adobe Experience Manager (AEM) OSGI Configurations API  # noqa: E501

    OpenAPI spec version: 1.0.0-pre.0
    Contact: opensource@shinesolutions.com
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six


class OrgApacheSlingDatasourceDataSourceFactoryProperties(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'datasource_name': 'ConfigNodePropertyString',
        'datasource_svc_prop_name': 'ConfigNodePropertyString',
        'driver_class_name': 'ConfigNodePropertyString',
        'url': 'ConfigNodePropertyString',
        'username': 'ConfigNodePropertyString',
        'password': 'ConfigNodePropertyString',
        'default_auto_commit': 'ConfigNodePropertyDropDown',
        'default_read_only': 'ConfigNodePropertyDropDown',
        'default_transaction_isolation': 'ConfigNodePropertyDropDown',
        'default_catalog': 'ConfigNodePropertyString',
        'max_active': 'ConfigNodePropertyInteger',
        'max_idle': 'ConfigNodePropertyInteger',
        'min_idle': 'ConfigNodePropertyInteger',
        'initial_size': 'ConfigNodePropertyInteger',
        'max_wait': 'ConfigNodePropertyInteger',
        'max_age': 'ConfigNodePropertyInteger',
        'test_on_borrow': 'ConfigNodePropertyBoolean',
        'test_on_return': 'ConfigNodePropertyBoolean',
        'test_while_idle': 'ConfigNodePropertyBoolean',
        'validation_query': 'ConfigNodePropertyString',
        'validation_query_timeout': 'ConfigNodePropertyInteger',
        'time_between_eviction_runs_millis': 'ConfigNodePropertyInteger',
        'min_evictable_idle_time_millis': 'ConfigNodePropertyInteger',
        'connection_properties': 'ConfigNodePropertyString',
        'init_sql': 'ConfigNodePropertyString',
        'jdbc_interceptors': 'ConfigNodePropertyString',
        'validation_interval': 'ConfigNodePropertyInteger',
        'log_validation_errors': 'ConfigNodePropertyBoolean',
        'datasource_svc_properties': 'ConfigNodePropertyArray'
    }

    attribute_map = {
        'datasource_name': 'datasource.name',
        'datasource_svc_prop_name': 'datasource.svc.prop.name',
        'driver_class_name': 'driverClassName',
        'url': 'url',
        'username': 'username',
        'password': 'password',
        'default_auto_commit': 'defaultAutoCommit',
        'default_read_only': 'defaultReadOnly',
        'default_transaction_isolation': 'defaultTransactionIsolation',
        'default_catalog': 'defaultCatalog',
        'max_active': 'maxActive',
        'max_idle': 'maxIdle',
        'min_idle': 'minIdle',
        'initial_size': 'initialSize',
        'max_wait': 'maxWait',
        'max_age': 'maxAge',
        'test_on_borrow': 'testOnBorrow',
        'test_on_return': 'testOnReturn',
        'test_while_idle': 'testWhileIdle',
        'validation_query': 'validationQuery',
        'validation_query_timeout': 'validationQueryTimeout',
        'time_between_eviction_runs_millis': 'timeBetweenEvictionRunsMillis',
        'min_evictable_idle_time_millis': 'minEvictableIdleTimeMillis',
        'connection_properties': 'connectionProperties',
        'init_sql': 'initSQL',
        'jdbc_interceptors': 'jdbcInterceptors',
        'validation_interval': 'validationInterval',
        'log_validation_errors': 'logValidationErrors',
        'datasource_svc_properties': 'datasource.svc.properties'
    }

    def __init__(self, datasource_name=None, datasource_svc_prop_name=None, driver_class_name=None, url=None, username=None, password=None, default_auto_commit=None, default_read_only=None, default_transaction_isolation=None, default_catalog=None, max_active=None, max_idle=None, min_idle=None, initial_size=None, max_wait=None, max_age=None, test_on_borrow=None, test_on_return=None, test_while_idle=None, validation_query=None, validation_query_timeout=None, time_between_eviction_runs_millis=None, min_evictable_idle_time_millis=None, connection_properties=None, init_sql=None, jdbc_interceptors=None, validation_interval=None, log_validation_errors=None, datasource_svc_properties=None):  # noqa: E501
        """OrgApacheSlingDatasourceDataSourceFactoryProperties - a model defined in OpenAPI"""  # noqa: E501

        self._datasource_name = None
        self._datasource_svc_prop_name = None
        self._driver_class_name = None
        self._url = None
        self._username = None
        self._password = None
        self._default_auto_commit = None
        self._default_read_only = None
        self._default_transaction_isolation = None
        self._default_catalog = None
        self._max_active = None
        self._max_idle = None
        self._min_idle = None
        self._initial_size = None
        self._max_wait = None
        self._max_age = None
        self._test_on_borrow = None
        self._test_on_return = None
        self._test_while_idle = None
        self._validation_query = None
        self._validation_query_timeout = None
        self._time_between_eviction_runs_millis = None
        self._min_evictable_idle_time_millis = None
        self._connection_properties = None
        self._init_sql = None
        self._jdbc_interceptors = None
        self._validation_interval = None
        self._log_validation_errors = None
        self._datasource_svc_properties = None
        self.discriminator = None

        if datasource_name is not None:
            self.datasource_name = datasource_name
        if datasource_svc_prop_name is not None:
            self.datasource_svc_prop_name = datasource_svc_prop_name
        if driver_class_name is not None:
            self.driver_class_name = driver_class_name
        if url is not None:
            self.url = url
        if username is not None:
            self.username = username
        if password is not None:
            self.password = password
        if default_auto_commit is not None:
            self.default_auto_commit = default_auto_commit
        if default_read_only is not None:
            self.default_read_only = default_read_only
        if default_transaction_isolation is not None:
            self.default_transaction_isolation = default_transaction_isolation
        if default_catalog is not None:
            self.default_catalog = default_catalog
        if max_active is not None:
            self.max_active = max_active
        if max_idle is not None:
            self.max_idle = max_idle
        if min_idle is not None:
            self.min_idle = min_idle
        if initial_size is not None:
            self.initial_size = initial_size
        if max_wait is not None:
            self.max_wait = max_wait
        if max_age is not None:
            self.max_age = max_age
        if test_on_borrow is not None:
            self.test_on_borrow = test_on_borrow
        if test_on_return is not None:
            self.test_on_return = test_on_return
        if test_while_idle is not None:
            self.test_while_idle = test_while_idle
        if validation_query is not None:
            self.validation_query = validation_query
        if validation_query_timeout is not None:
            self.validation_query_timeout = validation_query_timeout
        if time_between_eviction_runs_millis is not None:
            self.time_between_eviction_runs_millis = time_between_eviction_runs_millis
        if min_evictable_idle_time_millis is not None:
            self.min_evictable_idle_time_millis = min_evictable_idle_time_millis
        if connection_properties is not None:
            self.connection_properties = connection_properties
        if init_sql is not None:
            self.init_sql = init_sql
        if jdbc_interceptors is not None:
            self.jdbc_interceptors = jdbc_interceptors
        if validation_interval is not None:
            self.validation_interval = validation_interval
        if log_validation_errors is not None:
            self.log_validation_errors = log_validation_errors
        if datasource_svc_properties is not None:
            self.datasource_svc_properties = datasource_svc_properties

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


        :return: The datasource_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._datasource_name

    @datasource_name.setter
    def datasource_name(self, datasource_name):
        """Sets the datasource_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param datasource_name: The datasource_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._datasource_name = datasource_name

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


        :return: The datasource_svc_prop_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._datasource_svc_prop_name

    @datasource_svc_prop_name.setter
    def datasource_svc_prop_name(self, datasource_svc_prop_name):
        """Sets the datasource_svc_prop_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param datasource_svc_prop_name: The datasource_svc_prop_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._datasource_svc_prop_name = datasource_svc_prop_name

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


        :return: The driver_class_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._driver_class_name

    @driver_class_name.setter
    def driver_class_name(self, driver_class_name):
        """Sets the driver_class_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param driver_class_name: The driver_class_name of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._driver_class_name = driver_class_name

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


        :return: The url of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._url

    @url.setter
    def url(self, url):
        """Sets the url of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param url: The url of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._url = url

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


        :return: The username of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._username

    @username.setter
    def username(self, username):
        """Sets the username of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param username: The username of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._username = username

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


        :return: The password of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._password

    @password.setter
    def password(self, password):
        """Sets the password of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param password: The password of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._password = password

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


        :return: The default_auto_commit of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._default_auto_commit

    @default_auto_commit.setter
    def default_auto_commit(self, default_auto_commit):
        """Sets the default_auto_commit of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param default_auto_commit: The default_auto_commit of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._default_auto_commit = default_auto_commit

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


        :return: The default_read_only of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._default_read_only

    @default_read_only.setter
    def default_read_only(self, default_read_only):
        """Sets the default_read_only of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param default_read_only: The default_read_only of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._default_read_only = default_read_only

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


        :return: The default_transaction_isolation of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._default_transaction_isolation

    @default_transaction_isolation.setter
    def default_transaction_isolation(self, default_transaction_isolation):
        """Sets the default_transaction_isolation of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param default_transaction_isolation: The default_transaction_isolation of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._default_transaction_isolation = default_transaction_isolation

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


        :return: The default_catalog of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._default_catalog

    @default_catalog.setter
    def default_catalog(self, default_catalog):
        """Sets the default_catalog of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param default_catalog: The default_catalog of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._default_catalog = default_catalog

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


        :return: The max_active of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._max_active

    @max_active.setter
    def max_active(self, max_active):
        """Sets the max_active of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param max_active: The max_active of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._max_active = max_active

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


        :return: The max_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._max_idle

    @max_idle.setter
    def max_idle(self, max_idle):
        """Sets the max_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param max_idle: The max_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._max_idle = max_idle

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


        :return: The min_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._min_idle

    @min_idle.setter
    def min_idle(self, min_idle):
        """Sets the min_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param min_idle: The min_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._min_idle = min_idle

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


        :return: The initial_size of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._initial_size

    @initial_size.setter
    def initial_size(self, initial_size):
        """Sets the initial_size of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param initial_size: The initial_size of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._initial_size = initial_size

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


        :return: The max_wait of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._max_wait

    @max_wait.setter
    def max_wait(self, max_wait):
        """Sets the max_wait of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param max_wait: The max_wait of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._max_wait = max_wait

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


        :return: The max_age of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._max_age

    @max_age.setter
    def max_age(self, max_age):
        """Sets the max_age of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param max_age: The max_age of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._max_age = max_age

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


        :return: The test_on_borrow of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyBoolean
        """
        return self._test_on_borrow

    @test_on_borrow.setter
    def test_on_borrow(self, test_on_borrow):
        """Sets the test_on_borrow of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param test_on_borrow: The test_on_borrow of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyBoolean
        """

        self._test_on_borrow = test_on_borrow

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


        :return: The test_on_return of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyBoolean
        """
        return self._test_on_return

    @test_on_return.setter
    def test_on_return(self, test_on_return):
        """Sets the test_on_return of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param test_on_return: The test_on_return of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyBoolean
        """

        self._test_on_return = test_on_return

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


        :return: The test_while_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyBoolean
        """
        return self._test_while_idle

    @test_while_idle.setter
    def test_while_idle(self, test_while_idle):
        """Sets the test_while_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param test_while_idle: The test_while_idle of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyBoolean
        """

        self._test_while_idle = test_while_idle

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


        :return: The validation_query of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._validation_query

    @validation_query.setter
    def validation_query(self, validation_query):
        """Sets the validation_query of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param validation_query: The validation_query of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._validation_query = validation_query

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


        :return: The validation_query_timeout of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._validation_query_timeout

    @validation_query_timeout.setter
    def validation_query_timeout(self, validation_query_timeout):
        """Sets the validation_query_timeout of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param validation_query_timeout: The validation_query_timeout of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._validation_query_timeout = validation_query_timeout

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


        :return: The time_between_eviction_runs_millis of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._time_between_eviction_runs_millis

    @time_between_eviction_runs_millis.setter
    def time_between_eviction_runs_millis(self, time_between_eviction_runs_millis):
        """Sets the time_between_eviction_runs_millis of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param time_between_eviction_runs_millis: The time_between_eviction_runs_millis of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._time_between_eviction_runs_millis = time_between_eviction_runs_millis

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


        :return: The min_evictable_idle_time_millis of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._min_evictable_idle_time_millis

    @min_evictable_idle_time_millis.setter
    def min_evictable_idle_time_millis(self, min_evictable_idle_time_millis):
        """Sets the min_evictable_idle_time_millis of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param min_evictable_idle_time_millis: The min_evictable_idle_time_millis of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._min_evictable_idle_time_millis = min_evictable_idle_time_millis

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


        :return: The connection_properties of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._connection_properties

    @connection_properties.setter
    def connection_properties(self, connection_properties):
        """Sets the connection_properties of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param connection_properties: The connection_properties of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._connection_properties = connection_properties

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


        :return: The init_sql of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._init_sql

    @init_sql.setter
    def init_sql(self, init_sql):
        """Sets the init_sql of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param init_sql: The init_sql of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._init_sql = init_sql

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


        :return: The jdbc_interceptors of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._jdbc_interceptors

    @jdbc_interceptors.setter
    def jdbc_interceptors(self, jdbc_interceptors):
        """Sets the jdbc_interceptors of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param jdbc_interceptors: The jdbc_interceptors of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._jdbc_interceptors = jdbc_interceptors

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


        :return: The validation_interval of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyInteger
        """
        return self._validation_interval

    @validation_interval.setter
    def validation_interval(self, validation_interval):
        """Sets the validation_interval of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param validation_interval: The validation_interval of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyInteger
        """

        self._validation_interval = validation_interval

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


        :return: The log_validation_errors of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyBoolean
        """
        return self._log_validation_errors

    @log_validation_errors.setter
    def log_validation_errors(self, log_validation_errors):
        """Sets the log_validation_errors of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param log_validation_errors: The log_validation_errors of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyBoolean
        """

        self._log_validation_errors = log_validation_errors

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


        :return: The datasource_svc_properties of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :rtype: ConfigNodePropertyArray
        """
        return self._datasource_svc_properties

    @datasource_svc_properties.setter
    def datasource_svc_properties(self, datasource_svc_properties):
        """Sets the datasource_svc_properties of this OrgApacheSlingDatasourceDataSourceFactoryProperties.


        :param datasource_svc_properties: The datasource_svc_properties of this OrgApacheSlingDatasourceDataSourceFactoryProperties.  # noqa: E501
        :type: ConfigNodePropertyArray
        """

        self._datasource_svc_properties = datasource_svc_properties

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

        for attr, _ in six.iteritems(self.openapi_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 pprint.pformat(self.to_dict())

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

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, OrgApacheSlingDatasourceDataSourceFactoryProperties):
            return False

        return self.__dict__ == other.__dict__

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