# 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 BusinessObjectFormat(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 = {
        'id': 'int',
        'namespace': 'str',
        'business_object_definition_name': 'str',
        'business_object_format_usage': 'str',
        'business_object_format_file_type': 'str',
        'business_object_format_version': 'int',
        'latest_version': 'bool',
        'partition_key': 'str',
        'description': 'str',
        'document_schema': 'str',
        'document_schema_url': 'str',
        'attributes': 'list[Attribute]',
        'attribute_definitions': 'list[AttributeDefinition]',
        'enable_business_object_data_published_attributes_change_event_notification': 'bool',
        'schema': 'Schema',
        'business_object_format_parents': 'list[BusinessObjectFormatKey]',
        'business_object_format_children': 'list[BusinessObjectFormatKey]',
        'business_object_format_external_interfaces': 'list[BusinessObjectFormatExternalInterfaceKey]',
        'record_flag': 'bool',
        'legal_hold': 'bool',
        'retention_period_in_days': 'int',
        'retention_type': 'str',
        'allow_non_backwards_compatible_changes': 'bool',
        'relational_schema_name': 'str',
        'relational_table_name': 'str'
    }

    attribute_map = {
        'id': 'id',
        'namespace': 'namespace',
        'business_object_definition_name': 'businessObjectDefinitionName',
        'business_object_format_usage': 'businessObjectFormatUsage',
        'business_object_format_file_type': 'businessObjectFormatFileType',
        'business_object_format_version': 'businessObjectFormatVersion',
        'latest_version': 'latestVersion',
        'partition_key': 'partitionKey',
        'description': 'description',
        'document_schema': 'documentSchema',
        'document_schema_url': 'documentSchemaUrl',
        'attributes': 'attributes',
        'attribute_definitions': 'attributeDefinitions',
        'enable_business_object_data_published_attributes_change_event_notification': 'enableBusinessObjectDataPublishedAttributesChangeEventNotification',
        'schema': 'schema',
        'business_object_format_parents': 'businessObjectFormatParents',
        'business_object_format_children': 'businessObjectFormatChildren',
        'business_object_format_external_interfaces': 'businessObjectFormatExternalInterfaces',
        'record_flag': 'recordFlag',
        'legal_hold': 'legalHold',
        'retention_period_in_days': 'retentionPeriodInDays',
        'retention_type': 'retentionType',
        'allow_non_backwards_compatible_changes': 'allowNonBackwardsCompatibleChanges',
        'relational_schema_name': 'relationalSchemaName',
        'relational_table_name': 'relationalTableName'
    }

    def __init__(self, id=None, namespace=None, business_object_definition_name=None, business_object_format_usage=None, business_object_format_file_type=None, business_object_format_version=None, latest_version=None, partition_key=None, description=None, document_schema=None, document_schema_url=None, attributes=None, attribute_definitions=None, enable_business_object_data_published_attributes_change_event_notification=None, schema=None, business_object_format_parents=None, business_object_format_children=None, business_object_format_external_interfaces=None, record_flag=None, legal_hold=None, retention_period_in_days=None, retention_type=None, allow_non_backwards_compatible_changes=None, relational_schema_name=None, relational_table_name=None):  # noqa: E501
        """BusinessObjectFormat - a model defined in OpenAPI"""  # noqa: E501

        self._id = None
        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._latest_version = None
        self._partition_key = None
        self._description = None
        self._document_schema = None
        self._document_schema_url = None
        self._attributes = None
        self._attribute_definitions = None
        self._enable_business_object_data_published_attributes_change_event_notification = None
        self._schema = None
        self._business_object_format_parents = None
        self._business_object_format_children = None
        self._business_object_format_external_interfaces = None
        self._record_flag = None
        self._legal_hold = None
        self._retention_period_in_days = None
        self._retention_type = None
        self._allow_non_backwards_compatible_changes = None
        self._relational_schema_name = None
        self._relational_table_name = None
        self.discriminator = None

        if id is not None:
            self.id = id
        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 latest_version is not None:
            self.latest_version = latest_version
        self.partition_key = partition_key
        if description is not None:
            self.description = description
        if document_schema is not None:
            self.document_schema = document_schema
        if document_schema_url is not None:
            self.document_schema_url = document_schema_url
        if attributes is not None:
            self.attributes = attributes
        if attribute_definitions is not None:
            self.attribute_definitions = attribute_definitions
        if enable_business_object_data_published_attributes_change_event_notification is not None:
            self.enable_business_object_data_published_attributes_change_event_notification = enable_business_object_data_published_attributes_change_event_notification
        if schema is not None:
            self.schema = schema
        if business_object_format_parents is not None:
            self.business_object_format_parents = business_object_format_parents
        if business_object_format_children is not None:
            self.business_object_format_children = business_object_format_children
        if business_object_format_external_interfaces is not None:
            self.business_object_format_external_interfaces = business_object_format_external_interfaces
        if record_flag is not None:
            self.record_flag = record_flag
        if legal_hold is not None:
            self.legal_hold = legal_hold
        if retention_period_in_days is not None:
            self.retention_period_in_days = retention_period_in_days
        if retention_type is not None:
            self.retention_type = retention_type
        if allow_non_backwards_compatible_changes is not None:
            self.allow_non_backwards_compatible_changes = allow_non_backwards_compatible_changes
        if relational_schema_name is not None:
            self.relational_schema_name = relational_schema_name
        if relational_table_name is not None:
            self.relational_table_name = relational_table_name

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

        The internal identifier that uniquely identifies a Business Object Format  # noqa: E501

        :return: The id of this BusinessObjectFormat.  # noqa: E501
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this BusinessObjectFormat.

        The internal identifier that uniquely identifies a Business Object Format  # noqa: E501

        :param id: The id of this BusinessObjectFormat.  # noqa: E501
        :type: int
        """

        self._id = id

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

        The Namespace to which a Business Object Format is related  # noqa: E501

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

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

        The Namespace to which a Business Object Format is related  # noqa: E501

        :param namespace: The namespace of this BusinessObjectFormat.  # 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 BusinessObjectFormat.  # noqa: E501

        The name of the Business Object Definition to which a Business Object Format is related  # noqa: E501

        :return: The business_object_definition_name of this BusinessObjectFormat.  # 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 BusinessObjectFormat.

        The name of the Business Object Definition to which a Business Object Format is related  # noqa: E501

        :param business_object_definition_name: The business_object_definition_name of this BusinessObjectFormat.  # 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 BusinessObjectFormat.  # noqa: E501

        The Usage of this Business Object Format - a string describing how this format is used. Often used as a label for the Business                   Object Format. Does not have to be unique in the system, the Usage string is frequently shared across formats for multiple Business Object                   Definitions                  # noqa: E501

        :return: The business_object_format_usage of this BusinessObjectFormat.  # 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 BusinessObjectFormat.

        The Usage of this Business Object Format - a string describing how this format is used. Often used as a label for the Business                   Object Format. Does not have to be unique in the system, the Usage string is frequently shared across formats for multiple Business Object                   Definitions                  # noqa: E501

        :param business_object_format_usage: The business_object_format_usage of this BusinessObjectFormat.  # 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 BusinessObjectFormat.  # noqa: E501

        A File Type known to the system that describes the file type of data stored under a Business Object Format  # noqa: E501

        :return: The business_object_format_file_type of this BusinessObjectFormat.  # 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 BusinessObjectFormat.

        A File Type known to the system that describes the file type of data stored under a Business Object Format  # noqa: E501

        :param business_object_format_file_type: The business_object_format_file_type of this BusinessObjectFormat.  # 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 BusinessObjectFormat.  # noqa: E501

        The numeric version of a Business Object Format. Each time a format is registered, the new version will be the previous version                   + 1                  # noqa: E501

        :return: The business_object_format_version of this BusinessObjectFormat.  # 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 BusinessObjectFormat.

        The numeric version of a Business Object Format. Each time a format is registered, the new version will be the previous version                   + 1                  # noqa: E501

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

        self._business_object_format_version = business_object_format_version

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

        A Y/N flag that shows whether this instance of format is the latest or not. Once a new version of format is registered, any                   previous versions will no longer be the latest                  # noqa: E501

        :return: The latest_version of this BusinessObjectFormat.  # noqa: E501
        :rtype: bool
        """
        return self._latest_version

    @latest_version.setter
    def latest_version(self, latest_version):
        """Sets the latest_version of this BusinessObjectFormat.

        A Y/N flag that shows whether this instance of format is the latest or not. Once a new version of format is registered, any                   previous versions will no longer be the latest                  # noqa: E501

        :param latest_version: The latest_version of this BusinessObjectFormat.  # noqa: E501
        :type: bool
        """

        self._latest_version = latest_version

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

        The partition key for this Business Object Format  # noqa: E501

        :return: The partition_key of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._partition_key

    @partition_key.setter
    def partition_key(self, partition_key):
        """Sets the partition_key of this BusinessObjectFormat.

        The partition key for this Business Object Format  # noqa: E501

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

        self._partition_key = partition_key

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

        Description of the Business Object Format  # noqa: E501

        :return: The description of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._description

    @description.setter
    def description(self, description):
        """Sets the description of this BusinessObjectFormat.

        Description of the Business Object Format  # noqa: E501

        :param description: The description of this BusinessObjectFormat.  # noqa: E501
        :type: str
        """

        self._description = description

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

        The schema for document-style business object data registered with Herd  # noqa: E501

        :return: The document_schema of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._document_schema

    @document_schema.setter
    def document_schema(self, document_schema):
        """Sets the document_schema of this BusinessObjectFormat.

        The schema for document-style business object data registered with Herd  # noqa: E501

        :param document_schema: The document_schema of this BusinessObjectFormat.  # noqa: E501
        :type: str
        """

        self._document_schema = document_schema

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

        An optional URL of the documentSchema to an externally hosted XSD or JSON. Herd will not access this URL,                   it will simply store and retrieve the URL and teams can then access the URL                  # noqa: E501

        :return: The document_schema_url of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._document_schema_url

    @document_schema_url.setter
    def document_schema_url(self, document_schema_url):
        """Sets the document_schema_url of this BusinessObjectFormat.

        An optional URL of the documentSchema to an externally hosted XSD or JSON. Herd will not access this URL,                   it will simply store and retrieve the URL and teams can then access the URL                  # noqa: E501

        :param document_schema_url: The document_schema_url of this BusinessObjectFormat.  # noqa: E501
        :type: str
        """

        self._document_schema_url = document_schema_url

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

        Custom user-defined metadata associated with this Business Object Format. \"name\" is the attribute name (i.e. the key) and                   \"value\" is the attribute value.                  # noqa: E501

        :return: The attributes of this BusinessObjectFormat.  # noqa: E501
        :rtype: list[Attribute]
        """
        return self._attributes

    @attributes.setter
    def attributes(self, attributes):
        """Sets the attributes of this BusinessObjectFormat.

        Custom user-defined metadata associated with this Business Object Format. \"name\" is the attribute name (i.e. the key) and                   \"value\" is the attribute value.                  # noqa: E501

        :param attributes: The attributes of this BusinessObjectFormat.  # noqa: E501
        :type: list[Attribute]
        """

        self._attributes = attributes

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

        List of attribute definitions (for storage of custom user-defined metadata with objects) which are required to be specified                   when registering Business Object Data against this format. This list will define which metadata must be specified, but additional metadata can                   still be registered which is not specified in this list. The metadata (attributes) will allow applications to store custom data with                   registered data for use by consumers of the data                  # noqa: E501

        :return: The attribute_definitions of this BusinessObjectFormat.  # noqa: E501
        :rtype: list[AttributeDefinition]
        """
        return self._attribute_definitions

    @attribute_definitions.setter
    def attribute_definitions(self, attribute_definitions):
        """Sets the attribute_definitions of this BusinessObjectFormat.

        List of attribute definitions (for storage of custom user-defined metadata with objects) which are required to be specified                   when registering Business Object Data against this format. This list will define which metadata must be specified, but additional metadata can                   still be registered which is not specified in this list. The metadata (attributes) will allow applications to store custom data with                   registered data for use by consumers of the data                  # noqa: E501

        :param attribute_definitions: The attribute_definitions of this BusinessObjectFormat.  # noqa: E501
        :type: list[AttributeDefinition]
        """

        self._attribute_definitions = attribute_definitions

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

        If true, enables Business Object Data Published Attributes Change Event Notification for all business object data registered                   under this business object format version                  # noqa: E501

        :return: The enable_business_object_data_published_attributes_change_event_notification of this BusinessObjectFormat.  # noqa: E501
        :rtype: bool
        """
        return self._enable_business_object_data_published_attributes_change_event_notification

    @enable_business_object_data_published_attributes_change_event_notification.setter
    def enable_business_object_data_published_attributes_change_event_notification(self, enable_business_object_data_published_attributes_change_event_notification):
        """Sets the enable_business_object_data_published_attributes_change_event_notification of this BusinessObjectFormat.

        If true, enables Business Object Data Published Attributes Change Event Notification for all business object data registered                   under this business object format version                  # noqa: E501

        :param enable_business_object_data_published_attributes_change_event_notification: The enable_business_object_data_published_attributes_change_event_notification of this BusinessObjectFormat.  # noqa: E501
        :type: bool
        """

        self._enable_business_object_data_published_attributes_change_event_notification = enable_business_object_data_published_attributes_change_event_notification

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


        :return: The schema of this BusinessObjectFormat.  # noqa: E501
        :rtype: Schema
        """
        return self._schema

    @schema.setter
    def schema(self, schema):
        """Sets the schema of this BusinessObjectFormat.


        :param schema: The schema of this BusinessObjectFormat.  # noqa: E501
        :type: Schema
        """

        self._schema = schema

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

        A list of Business Object Data parents (i.e. predecessors) that were used/needed in the creation of this data. This is used for                   data lineage. Each parent consists of the key data that uniquely defines a reference to a single Business Object Data.                  # noqa: E501

        :return: The business_object_format_parents of this BusinessObjectFormat.  # noqa: E501
        :rtype: list[BusinessObjectFormatKey]
        """
        return self._business_object_format_parents

    @business_object_format_parents.setter
    def business_object_format_parents(self, business_object_format_parents):
        """Sets the business_object_format_parents of this BusinessObjectFormat.

        A list of Business Object Data parents (i.e. predecessors) that were used/needed in the creation of this data. This is used for                   data lineage. Each parent consists of the key data that uniquely defines a reference to a single Business Object Data.                  # noqa: E501

        :param business_object_format_parents: The business_object_format_parents of this BusinessObjectFormat.  # noqa: E501
        :type: list[BusinessObjectFormatKey]
        """

        self._business_object_format_parents = business_object_format_parents

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

        A list of Business Object Data children that were creation from this data. This is used for data lineage. Each child consists                   of the key data that uniquely defines a reference to a single Business Object Data.                  # noqa: E501

        :return: The business_object_format_children of this BusinessObjectFormat.  # noqa: E501
        :rtype: list[BusinessObjectFormatKey]
        """
        return self._business_object_format_children

    @business_object_format_children.setter
    def business_object_format_children(self, business_object_format_children):
        """Sets the business_object_format_children of this BusinessObjectFormat.

        A list of Business Object Data children that were creation from this data. This is used for data lineage. Each child consists                   of the key data that uniquely defines a reference to a single Business Object Data.                  # noqa: E501

        :param business_object_format_children: The business_object_format_children of this BusinessObjectFormat.  # noqa: E501
        :type: list[BusinessObjectFormatKey]
        """

        self._business_object_format_children = business_object_format_children

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

        A list of business object format to external interface mappings  # noqa: E501

        :return: The business_object_format_external_interfaces of this BusinessObjectFormat.  # noqa: E501
        :rtype: list[BusinessObjectFormatExternalInterfaceKey]
        """
        return self._business_object_format_external_interfaces

    @business_object_format_external_interfaces.setter
    def business_object_format_external_interfaces(self, business_object_format_external_interfaces):
        """Sets the business_object_format_external_interfaces of this BusinessObjectFormat.

        A list of business object format to external interface mappings  # noqa: E501

        :param business_object_format_external_interfaces: The business_object_format_external_interfaces of this BusinessObjectFormat.  # noqa: E501
        :type: list[BusinessObjectFormatExternalInterfaceKey]
        """

        self._business_object_format_external_interfaces = business_object_format_external_interfaces

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

        Indicates if business object data registered with this format is a record                  # noqa: E501

        :return: The record_flag of this BusinessObjectFormat.  # noqa: E501
        :rtype: bool
        """
        return self._record_flag

    @record_flag.setter
    def record_flag(self, record_flag):
        """Sets the record_flag of this BusinessObjectFormat.

        Indicates if business object data registered with this format is a record                  # noqa: E501

        :param record_flag: The record_flag of this BusinessObjectFormat.  # noqa: E501
        :type: bool
        """

        self._record_flag = record_flag

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

        Indicate if this Business Object Format is under legal hold  # noqa: E501

        :return: The legal_hold of this BusinessObjectFormat.  # noqa: E501
        :rtype: bool
        """
        return self._legal_hold

    @legal_hold.setter
    def legal_hold(self, legal_hold):
        """Sets the legal_hold of this BusinessObjectFormat.

        Indicate if this Business Object Format is under legal hold  # noqa: E501

        :param legal_hold: The legal_hold of this BusinessObjectFormat.  # noqa: E501
        :type: bool
        """

        self._legal_hold = legal_hold

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

        Retention period (in days) for business object data registered with this format.                  # noqa: E501

        :return: The retention_period_in_days of this BusinessObjectFormat.  # noqa: E501
        :rtype: int
        """
        return self._retention_period_in_days

    @retention_period_in_days.setter
    def retention_period_in_days(self, retention_period_in_days):
        """Sets the retention_period_in_days of this BusinessObjectFormat.

        Retention period (in days) for business object data registered with this format.                  # noqa: E501

        :param retention_period_in_days: The retention_period_in_days of this BusinessObjectFormat.  # noqa: E501
        :type: int
        """

        self._retention_period_in_days = retention_period_in_days

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

        Retention type. Supported retention types: PARTITION_VALUE, BDATA_RETENTION_TYPE.                  # noqa: E501

        :return: The retention_type of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._retention_type

    @retention_type.setter
    def retention_type(self, retention_type):
        """Sets the retention_type of this BusinessObjectFormat.

        Retention type. Supported retention types: PARTITION_VALUE, BDATA_RETENTION_TYPE.                  # noqa: E501

        :param retention_type: The retention_type of this BusinessObjectFormat.  # noqa: E501
        :type: str
        """

        self._retention_type = retention_type

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

        If true, allows non backwards compatible changes to the schema                  # noqa: E501

        :return: The allow_non_backwards_compatible_changes of this BusinessObjectFormat.  # noqa: E501
        :rtype: bool
        """
        return self._allow_non_backwards_compatible_changes

    @allow_non_backwards_compatible_changes.setter
    def allow_non_backwards_compatible_changes(self, allow_non_backwards_compatible_changes):
        """Sets the allow_non_backwards_compatible_changes of this BusinessObjectFormat.

        If true, allows non backwards compatible changes to the schema                  # noqa: E501

        :param allow_non_backwards_compatible_changes: The allow_non_backwards_compatible_changes of this BusinessObjectFormat.  # noqa: E501
        :type: bool
        """

        self._allow_non_backwards_compatible_changes = allow_non_backwards_compatible_changes

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

        Contains Relational Schema Name if the Format is of type Relational Table  # noqa: E501

        :return: The relational_schema_name of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._relational_schema_name

    @relational_schema_name.setter
    def relational_schema_name(self, relational_schema_name):
        """Sets the relational_schema_name of this BusinessObjectFormat.

        Contains Relational Schema Name if the Format is of type Relational Table  # noqa: E501

        :param relational_schema_name: The relational_schema_name of this BusinessObjectFormat.  # noqa: E501
        :type: str
        """

        self._relational_schema_name = relational_schema_name

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

        Contains Relational Table Name if the Format is of type Relational Table  # noqa: E501

        :return: The relational_table_name of this BusinessObjectFormat.  # noqa: E501
        :rtype: str
        """
        return self._relational_table_name

    @relational_table_name.setter
    def relational_table_name(self, relational_table_name):
        """Sets the relational_table_name of this BusinessObjectFormat.

        Contains Relational Table Name if the Format is of type Relational Table  # noqa: E501

        :param relational_table_name: The relational_table_name of this BusinessObjectFormat.  # noqa: E501
        :type: str
        """

        self._relational_table_name = relational_table_name

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

        return self.__dict__ == other.__dict__

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