# coding: utf-8

"""
    herd

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    OpenAPI spec version: 0.178.0-SNAPSHOT
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six


class BusinessObjectDataDdlRequest(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 = {
        'namespace': 'str',
        'business_object_definition_name': 'str',
        'business_object_format_usage': 'str',
        'business_object_format_file_type': 'str',
        'business_object_format_version': 'int',
        'partition_value_filters': 'list[PartitionValueFilter]',
        'partition_value_filter': 'PartitionValueFilter',
        'business_object_data_version': 'int',
        'business_object_data_status': 'str',
        'storage_names': 'list[str]',
        'storage_name': 'str',
        'output_format': 'str',
        'table_name': 'str',
        'custom_ddl_name': 'str',
        'include_drop_table_statement': 'bool',
        'include_if_not_exists_option': 'bool',
        'include_drop_partitions': 'bool',
        'include_single_location': 'bool',
        'allow_missing_data': 'bool',
        'include_all_registered_sub_partitions': 'bool',
        'suppress_scan_for_unregistered_sub_partitions': 'bool',
        'combine_multiple_partitions_in_single_alter_table': 'bool',
        'combined_alter_table_max_partitions': 'int',
        'as_of_time': 'datetime',
        'suppress_quotes_in_numeric_type_partition_values': 'bool'
    }

    attribute_map = {
        'namespace': 'namespace',
        'business_object_definition_name': 'businessObjectDefinitionName',
        'business_object_format_usage': 'businessObjectFormatUsage',
        'business_object_format_file_type': 'businessObjectFormatFileType',
        'business_object_format_version': 'businessObjectFormatVersion',
        'partition_value_filters': 'partitionValueFilters',
        'partition_value_filter': 'partitionValueFilter',
        'business_object_data_version': 'businessObjectDataVersion',
        'business_object_data_status': 'businessObjectDataStatus',
        'storage_names': 'storageNames',
        'storage_name': 'storageName',
        'output_format': 'outputFormat',
        'table_name': 'tableName',
        'custom_ddl_name': 'customDdlName',
        'include_drop_table_statement': 'includeDropTableStatement',
        'include_if_not_exists_option': 'includeIfNotExistsOption',
        'include_drop_partitions': 'includeDropPartitions',
        'include_single_location': 'includeSingleLocation',
        'allow_missing_data': 'allowMissingData',
        'include_all_registered_sub_partitions': 'includeAllRegisteredSubPartitions',
        'suppress_scan_for_unregistered_sub_partitions': 'suppressScanForUnregisteredSubPartitions',
        'combine_multiple_partitions_in_single_alter_table': 'combineMultiplePartitionsInSingleAlterTable',
        'combined_alter_table_max_partitions': 'combinedAlterTableMaxPartitions',
        'as_of_time': 'asOfTime',
        'suppress_quotes_in_numeric_type_partition_values': 'suppressQuotesInNumericTypePartitionValues'
    }

    def __init__(self, namespace=None, business_object_definition_name=None, business_object_format_usage=None, business_object_format_file_type=None, business_object_format_version=None, partition_value_filters=None, partition_value_filter=None, business_object_data_version=None, business_object_data_status=None, storage_names=None, storage_name=None, output_format=None, table_name=None, custom_ddl_name=None, include_drop_table_statement=None, include_if_not_exists_option=None, include_drop_partitions=None, include_single_location=None, allow_missing_data=None, include_all_registered_sub_partitions=None, suppress_scan_for_unregistered_sub_partitions=None, combine_multiple_partitions_in_single_alter_table=None, combined_alter_table_max_partitions=None, as_of_time=None, suppress_quotes_in_numeric_type_partition_values=None):  # noqa: E501
        """BusinessObjectDataDdlRequest - a model defined in OpenAPI"""  # noqa: E501

        self._namespace = None
        self._business_object_definition_name = None
        self._business_object_format_usage = None
        self._business_object_format_file_type = None
        self._business_object_format_version = None
        self._partition_value_filters = None
        self._partition_value_filter = None
        self._business_object_data_version = None
        self._business_object_data_status = None
        self._storage_names = None
        self._storage_name = None
        self._output_format = None
        self._table_name = None
        self._custom_ddl_name = None
        self._include_drop_table_statement = None
        self._include_if_not_exists_option = None
        self._include_drop_partitions = None
        self._include_single_location = None
        self._allow_missing_data = None
        self._include_all_registered_sub_partitions = None
        self._suppress_scan_for_unregistered_sub_partitions = None
        self._combine_multiple_partitions_in_single_alter_table = None
        self._combined_alter_table_max_partitions = None
        self._as_of_time = None
        self._suppress_quotes_in_numeric_type_partition_values = None
        self.discriminator = None

        self.namespace = namespace
        self.business_object_definition_name = business_object_definition_name
        self.business_object_format_usage = business_object_format_usage
        self.business_object_format_file_type = business_object_format_file_type
        if business_object_format_version is not None:
            self.business_object_format_version = business_object_format_version
        if partition_value_filters is not None:
            self.partition_value_filters = partition_value_filters
        if partition_value_filter is not None:
            self.partition_value_filter = partition_value_filter
        if business_object_data_version is not None:
            self.business_object_data_version = business_object_data_version
        if business_object_data_status is not None:
            self.business_object_data_status = business_object_data_status
        if storage_names is not None:
            self.storage_names = storage_names
        if storage_name is not None:
            self.storage_name = storage_name
        self.output_format = output_format
        self.table_name = table_name
        if custom_ddl_name is not None:
            self.custom_ddl_name = custom_ddl_name
        if include_drop_table_statement is not None:
            self.include_drop_table_statement = include_drop_table_statement
        if include_if_not_exists_option is not None:
            self.include_if_not_exists_option = include_if_not_exists_option
        if include_drop_partitions is not None:
            self.include_drop_partitions = include_drop_partitions
        if include_single_location is not None:
            self.include_single_location = include_single_location
        if allow_missing_data is not None:
            self.allow_missing_data = allow_missing_data
        if include_all_registered_sub_partitions is not None:
            self.include_all_registered_sub_partitions = include_all_registered_sub_partitions
        if suppress_scan_for_unregistered_sub_partitions is not None:
            self.suppress_scan_for_unregistered_sub_partitions = suppress_scan_for_unregistered_sub_partitions
        if combine_multiple_partitions_in_single_alter_table is not None:
            self.combine_multiple_partitions_in_single_alter_table = combine_multiple_partitions_in_single_alter_table
        if combined_alter_table_max_partitions is not None:
            self.combined_alter_table_max_partitions = combined_alter_table_max_partitions
        if as_of_time is not None:
            self.as_of_time = as_of_time
        if suppress_quotes_in_numeric_type_partition_values is not None:
            self.suppress_quotes_in_numeric_type_partition_values = suppress_quotes_in_numeric_type_partition_values

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


        :return: The namespace of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._namespace

    @namespace.setter
    def namespace(self, namespace):
        """Sets the namespace of this BusinessObjectDataDdlRequest.


        :param namespace: The namespace of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """
        if namespace is None:
            raise ValueError("Invalid value for `namespace`, must not be `None`")  # noqa: E501

        self._namespace = namespace

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


        :return: The business_object_definition_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._business_object_definition_name

    @business_object_definition_name.setter
    def business_object_definition_name(self, business_object_definition_name):
        """Sets the business_object_definition_name of this BusinessObjectDataDdlRequest.


        :param business_object_definition_name: The business_object_definition_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """
        if business_object_definition_name is None:
            raise ValueError("Invalid value for `business_object_definition_name`, must not be `None`")  # noqa: E501

        self._business_object_definition_name = business_object_definition_name

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


        :return: The business_object_format_usage of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._business_object_format_usage

    @business_object_format_usage.setter
    def business_object_format_usage(self, business_object_format_usage):
        """Sets the business_object_format_usage of this BusinessObjectDataDdlRequest.


        :param business_object_format_usage: The business_object_format_usage of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """
        if business_object_format_usage is None:
            raise ValueError("Invalid value for `business_object_format_usage`, must not be `None`")  # noqa: E501

        self._business_object_format_usage = business_object_format_usage

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


        :return: The business_object_format_file_type of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._business_object_format_file_type

    @business_object_format_file_type.setter
    def business_object_format_file_type(self, business_object_format_file_type):
        """Sets the business_object_format_file_type of this BusinessObjectDataDdlRequest.


        :param business_object_format_file_type: The business_object_format_file_type of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """
        if business_object_format_file_type is None:
            raise ValueError("Invalid value for `business_object_format_file_type`, must not be `None`")  # noqa: E501

        self._business_object_format_file_type = business_object_format_file_type

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


        :return: The business_object_format_version of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: int
        """
        return self._business_object_format_version

    @business_object_format_version.setter
    def business_object_format_version(self, business_object_format_version):
        """Sets the business_object_format_version of this BusinessObjectDataDdlRequest.


        :param business_object_format_version: The business_object_format_version of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: int
        """

        self._business_object_format_version = business_object_format_version

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


        :return: The partition_value_filters of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: list[PartitionValueFilter]
        """
        return self._partition_value_filters

    @partition_value_filters.setter
    def partition_value_filters(self, partition_value_filters):
        """Sets the partition_value_filters of this BusinessObjectDataDdlRequest.


        :param partition_value_filters: The partition_value_filters of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: list[PartitionValueFilter]
        """

        self._partition_value_filters = partition_value_filters

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


        :return: The partition_value_filter of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: PartitionValueFilter
        """
        return self._partition_value_filter

    @partition_value_filter.setter
    def partition_value_filter(self, partition_value_filter):
        """Sets the partition_value_filter of this BusinessObjectDataDdlRequest.


        :param partition_value_filter: The partition_value_filter of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: PartitionValueFilter
        """

        self._partition_value_filter = partition_value_filter

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


        :return: The business_object_data_version of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: int
        """
        return self._business_object_data_version

    @business_object_data_version.setter
    def business_object_data_version(self, business_object_data_version):
        """Sets the business_object_data_version of this BusinessObjectDataDdlRequest.


        :param business_object_data_version: The business_object_data_version of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: int
        """

        self._business_object_data_version = business_object_data_version

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

        An optional Business Object Data Status value for available Business Object Data. Accepted values are VALID and all                   pre-registration status values, such as PROCESSING, UPLOADING, and PENDING_VALID. Default value is VALID. The request cannot                   contain both businessObjectDataVersion and businessObjectDataStatus values                  # noqa: E501

        :return: The business_object_data_status of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._business_object_data_status

    @business_object_data_status.setter
    def business_object_data_status(self, business_object_data_status):
        """Sets the business_object_data_status of this BusinessObjectDataDdlRequest.

        An optional Business Object Data Status value for available Business Object Data. Accepted values are VALID and all                   pre-registration status values, such as PROCESSING, UPLOADING, and PENDING_VALID. Default value is VALID. The request cannot                   contain both businessObjectDataVersion and businessObjectDataStatus values                  # noqa: E501

        :param business_object_data_status: The business_object_data_status of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """

        self._business_object_data_status = business_object_data_status

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


        :return: The storage_names of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: list[str]
        """
        return self._storage_names

    @storage_names.setter
    def storage_names(self, storage_names):
        """Sets the storage_names of this BusinessObjectDataDdlRequest.


        :param storage_names: The storage_names of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: list[str]
        """

        self._storage_names = storage_names

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


        :return: The storage_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._storage_name

    @storage_name.setter
    def storage_name(self, storage_name):
        """Sets the storage_name of this BusinessObjectDataDdlRequest.


        :param storage_name: The storage_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """

        self._storage_name = storage_name

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


        :return: The output_format of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._output_format

    @output_format.setter
    def output_format(self, output_format):
        """Sets the output_format of this BusinessObjectDataDdlRequest.


        :param output_format: The output_format of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """
        if output_format is None:
            raise ValueError("Invalid value for `output_format`, must not be `None`")  # noqa: E501
        allowed_values = ["HIVE_13_DDL"]  # noqa: E501
        if output_format not in allowed_values:
            raise ValueError(
                "Invalid value for `output_format` ({0}), must be one of {1}"  # noqa: E501
                .format(output_format, allowed_values)
            )

        self._output_format = output_format

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


        :return: The table_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._table_name

    @table_name.setter
    def table_name(self, table_name):
        """Sets the table_name of this BusinessObjectDataDdlRequest.


        :param table_name: The table_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """
        if table_name is None:
            raise ValueError("Invalid value for `table_name`, must not be `None`")  # noqa: E501

        self._table_name = table_name

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


        :return: The custom_ddl_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: str
        """
        return self._custom_ddl_name

    @custom_ddl_name.setter
    def custom_ddl_name(self, custom_ddl_name):
        """Sets the custom_ddl_name of this BusinessObjectDataDdlRequest.


        :param custom_ddl_name: The custom_ddl_name of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: str
        """

        self._custom_ddl_name = custom_ddl_name

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


        :return: The include_drop_table_statement of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._include_drop_table_statement

    @include_drop_table_statement.setter
    def include_drop_table_statement(self, include_drop_table_statement):
        """Sets the include_drop_table_statement of this BusinessObjectDataDdlRequest.


        :param include_drop_table_statement: The include_drop_table_statement of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._include_drop_table_statement = include_drop_table_statement

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


        :return: The include_if_not_exists_option of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._include_if_not_exists_option

    @include_if_not_exists_option.setter
    def include_if_not_exists_option(self, include_if_not_exists_option):
        """Sets the include_if_not_exists_option of this BusinessObjectDataDdlRequest.


        :param include_if_not_exists_option: The include_if_not_exists_option of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._include_if_not_exists_option = include_if_not_exists_option

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


        :return: The include_drop_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._include_drop_partitions

    @include_drop_partitions.setter
    def include_drop_partitions(self, include_drop_partitions):
        """Sets the include_drop_partitions of this BusinessObjectDataDdlRequest.


        :param include_drop_partitions: The include_drop_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._include_drop_partitions = include_drop_partitions

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

        If true, for partitioned table, LOCATION statement will be added to the generated DDL with the value set to the first partition                   bucket name followed by the namespace prefix                  # noqa: E501

        :return: The include_single_location of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._include_single_location

    @include_single_location.setter
    def include_single_location(self, include_single_location):
        """Sets the include_single_location of this BusinessObjectDataDdlRequest.

        If true, for partitioned table, LOCATION statement will be added to the generated DDL with the value set to the first partition                   bucket name followed by the namespace prefix                  # noqa: E501

        :param include_single_location: The include_single_location of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._include_single_location = include_single_location

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


        :return: The allow_missing_data of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._allow_missing_data

    @allow_missing_data.setter
    def allow_missing_data(self, allow_missing_data):
        """Sets the allow_missing_data of this BusinessObjectDataDdlRequest.


        :param allow_missing_data: The allow_missing_data of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._allow_missing_data = allow_missing_data

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

        Specifies to perform an exhaustive search to return availability for ALL registered sub-partitions (registered as individual                   business object data instances) except for the ones with \"DELETED\" status. This parameter has no impact when business object data version is                   specified. Default value is false, which means that this endpoint ignores any \"not available\" registered sub-partitions when it finds at least                   one \"VALID\" registered sub-partition for a requested business object data partition value.                   If true, the call would fail with a \"Not Found\" (status code 404) error when it finds at least one \"not available\" (except for \"DELETED\")                   registered sub-partition for a requested business object data partition value                  # noqa: E501

        :return: The include_all_registered_sub_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._include_all_registered_sub_partitions

    @include_all_registered_sub_partitions.setter
    def include_all_registered_sub_partitions(self, include_all_registered_sub_partitions):
        """Sets the include_all_registered_sub_partitions of this BusinessObjectDataDdlRequest.

        Specifies to perform an exhaustive search to return availability for ALL registered sub-partitions (registered as individual                   business object data instances) except for the ones with \"DELETED\" status. This parameter has no impact when business object data version is                   specified. Default value is false, which means that this endpoint ignores any \"not available\" registered sub-partitions when it finds at least                   one \"VALID\" registered sub-partition for a requested business object data partition value.                   If true, the call would fail with a \"Not Found\" (status code 404) error when it finds at least one \"not available\" (except for \"DELETED\")                   registered sub-partition for a requested business object data partition value                  # noqa: E501

        :param include_all_registered_sub_partitions: The include_all_registered_sub_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._include_all_registered_sub_partitions = include_all_registered_sub_partitions

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

        Specifies to suppress scanning of registered storage files to discover sub-partitions and instead of that relies on business                   object data registration information to extract primary and sub-partition (if any) values required to identify Hive table partitions. Default                   value is false. If true, the call would fail with a \"Bad Request\" (status code 400) error when number of partitions in any of the discovered                   business object data instances does not match to the number of partition columns in the business object format being used to generate the DDL                   or retrieve business object partitions                  # noqa: E501

        :return: The suppress_scan_for_unregistered_sub_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._suppress_scan_for_unregistered_sub_partitions

    @suppress_scan_for_unregistered_sub_partitions.setter
    def suppress_scan_for_unregistered_sub_partitions(self, suppress_scan_for_unregistered_sub_partitions):
        """Sets the suppress_scan_for_unregistered_sub_partitions of this BusinessObjectDataDdlRequest.

        Specifies to suppress scanning of registered storage files to discover sub-partitions and instead of that relies on business                   object data registration information to extract primary and sub-partition (if any) values required to identify Hive table partitions. Default                   value is false. If true, the call would fail with a \"Bad Request\" (status code 400) error when number of partitions in any of the discovered                   business object data instances does not match to the number of partition columns in the business object format being used to generate the DDL                   or retrieve business object partitions                  # noqa: E501

        :param suppress_scan_for_unregistered_sub_partitions: The suppress_scan_for_unregistered_sub_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._suppress_scan_for_unregistered_sub_partitions = suppress_scan_for_unregistered_sub_partitions

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

        Specifies to add multiple partitions in a single ALTER TABLE statement. If includeDropPartitions is set to true, this flag also                   specifies to drop multiple partitions in a single ALTER TABLE statement                  # noqa: E501

        :return: The combine_multiple_partitions_in_single_alter_table of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._combine_multiple_partitions_in_single_alter_table

    @combine_multiple_partitions_in_single_alter_table.setter
    def combine_multiple_partitions_in_single_alter_table(self, combine_multiple_partitions_in_single_alter_table):
        """Sets the combine_multiple_partitions_in_single_alter_table of this BusinessObjectDataDdlRequest.

        Specifies to add multiple partitions in a single ALTER TABLE statement. If includeDropPartitions is set to true, this flag also                   specifies to drop multiple partitions in a single ALTER TABLE statement                  # noqa: E501

        :param combine_multiple_partitions_in_single_alter_table: The combine_multiple_partitions_in_single_alter_table of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._combine_multiple_partitions_in_single_alter_table = combine_multiple_partitions_in_single_alter_table

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

        Specifies the maximum number of add partition statements to include in a single ALTER TABLE statement. If includeDropPartitions                   is set to true, this parameter also applies to maximum number of drop partition statements in a single ALTER TABLE statement                  # noqa: E501

        :return: The combined_alter_table_max_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: int
        """
        return self._combined_alter_table_max_partitions

    @combined_alter_table_max_partitions.setter
    def combined_alter_table_max_partitions(self, combined_alter_table_max_partitions):
        """Sets the combined_alter_table_max_partitions of this BusinessObjectDataDdlRequest.

        Specifies the maximum number of add partition statements to include in a single ALTER TABLE statement. If includeDropPartitions                   is set to true, this parameter also applies to maximum number of drop partition statements in a single ALTER TABLE statement                  # noqa: E501

        :param combined_alter_table_max_partitions: The combined_alter_table_max_partitions of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: int
        """

        self._combined_alter_table_max_partitions = combined_alter_table_max_partitions

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

        Specifies the date and time when the business object status was effective at that time, (ex 2015-12-30T11:08:40).                   The feature of 'asOfTime' looks for business object data SOLELY based on business object data status history,                   and it does NOT look for storage file status history for the business object selected                  # noqa: E501

        :return: The as_of_time of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: datetime
        """
        return self._as_of_time

    @as_of_time.setter
    def as_of_time(self, as_of_time):
        """Sets the as_of_time of this BusinessObjectDataDdlRequest.

        Specifies the date and time when the business object status was effective at that time, (ex 2015-12-30T11:08:40).                   The feature of 'asOfTime' looks for business object data SOLELY based on business object data status history,                   and it does NOT look for storage file status history for the business object selected                  # noqa: E501

        :param as_of_time: The as_of_time of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: datetime
        """

        self._as_of_time = as_of_time

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

        Specifies not to place single quotes around partition values where the columns are of numeric datatype  # noqa: E501

        :return: The suppress_quotes_in_numeric_type_partition_values of this BusinessObjectDataDdlRequest.  # noqa: E501
        :rtype: bool
        """
        return self._suppress_quotes_in_numeric_type_partition_values

    @suppress_quotes_in_numeric_type_partition_values.setter
    def suppress_quotes_in_numeric_type_partition_values(self, suppress_quotes_in_numeric_type_partition_values):
        """Sets the suppress_quotes_in_numeric_type_partition_values of this BusinessObjectDataDdlRequest.

        Specifies not to place single quotes around partition values where the columns are of numeric datatype  # noqa: E501

        :param suppress_quotes_in_numeric_type_partition_values: The suppress_quotes_in_numeric_type_partition_values of this BusinessObjectDataDdlRequest.  # noqa: E501
        :type: bool
        """

        self._suppress_quotes_in_numeric_type_partition_values = suppress_quotes_in_numeric_type_partition_values

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

        return self.__dict__ == other.__dict__

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