"""
    HCL AppScan on Cloud (v2)

    This API allows you to interact with the service. The API allows you to perform many of the operations available in the UI and more.</br>For authentication, use the relevant APIs in the Account section. A successful authentication response includes a bearer token for use in subsequent API calls. Pasting this token in the 'Access token' field above will automatically add the authorization header to any API call that requires a valid session.

    OpenAPI spec version: v2

    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

from pyasoc.configuration import Configuration


class UtilitiesStructuresSecurityReportOptions:
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        "summary": "bool",
        "details": "bool",
        "discussion": "bool",
        "overview": "bool",
        "table_of_content": "bool",
        "advisories": "bool",
        "fix_recommendation": "bool",
        "history": "bool",
        "coverage": "bool",
        "minimize_details": "bool",
        "articles": "bool",
        "report_file_type": "str",
        "title": "str",
        "notes": "str",
        "locale": "str",
    }

    attribute_map = {
        "summary": "Summary",
        "details": "Details",
        "discussion": "Discussion",
        "overview": "Overview",
        "table_of_content": "TableOfContent",
        "advisories": "Advisories",
        "fix_recommendation": "FixRecommendation",
        "history": "History",
        "coverage": "Coverage",
        "minimize_details": "MinimizeDetails",
        "articles": "Articles",
        "report_file_type": "ReportFileType",
        "title": "Title",
        "notes": "Notes",
        "locale": "Locale",
    }

    def __init__(
        self,
        summary=None,
        details=None,
        discussion=None,
        overview=None,
        table_of_content=None,
        advisories=None,
        fix_recommendation=None,
        history=None,
        coverage=None,
        minimize_details=None,
        articles=None,
        report_file_type=None,
        title=None,
        notes=None,
        locale=None,
        _configuration=None,
    ):
        """UtilitiesStructuresSecurityReportOptions - a model defined in Swagger"""
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._summary = None
        self._details = None
        self._discussion = None
        self._overview = None
        self._table_of_content = None
        self._advisories = None
        self._fix_recommendation = None
        self._history = None
        self._coverage = None
        self._minimize_details = None
        self._articles = None
        self._report_file_type = None
        self._title = None
        self._notes = None
        self._locale = None
        self.discriminator = None

        if summary is not None:
            self.summary = summary
        if details is not None:
            self.details = details
        if discussion is not None:
            self.discussion = discussion
        if overview is not None:
            self.overview = overview
        if table_of_content is not None:
            self.table_of_content = table_of_content
        if advisories is not None:
            self.advisories = advisories
        if fix_recommendation is not None:
            self.fix_recommendation = fix_recommendation
        if history is not None:
            self.history = history
        if coverage is not None:
            self.coverage = coverage
        if minimize_details is not None:
            self.minimize_details = minimize_details
        if articles is not None:
            self.articles = articles
        if report_file_type is not None:
            self.report_file_type = report_file_type
        if title is not None:
            self.title = title
        if notes is not None:
            self.notes = notes
        if locale is not None:
            self.locale = locale

    @property
    def summary(self):
        # type: () -> bool
        """Gets the summary of this UtilitiesStructuresSecurityReportOptions.


        :return: The summary of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._summary

    @summary.setter
    def summary(self, summary):
        """Sets the summary of this UtilitiesStructuresSecurityReportOptions.


        :param summary: The summary of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._summary = summary

    @property
    def details(self):
        # type: () -> bool
        """Gets the details of this UtilitiesStructuresSecurityReportOptions.


        :return: The details of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._details

    @details.setter
    def details(self, details):
        """Sets the details of this UtilitiesStructuresSecurityReportOptions.


        :param details: The details of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._details = details

    @property
    def discussion(self):
        # type: () -> bool
        """Gets the discussion of this UtilitiesStructuresSecurityReportOptions.


        :return: The discussion of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._discussion

    @discussion.setter
    def discussion(self, discussion):
        """Sets the discussion of this UtilitiesStructuresSecurityReportOptions.


        :param discussion: The discussion of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._discussion = discussion

    @property
    def overview(self):
        # type: () -> bool
        """Gets the overview of this UtilitiesStructuresSecurityReportOptions.


        :return: The overview of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._overview

    @overview.setter
    def overview(self, overview):
        """Sets the overview of this UtilitiesStructuresSecurityReportOptions.


        :param overview: The overview of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._overview = overview

    @property
    def table_of_content(self):
        # type: () -> bool
        """Gets the table_of_content of this UtilitiesStructuresSecurityReportOptions.


        :return: The table_of_content of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._table_of_content

    @table_of_content.setter
    def table_of_content(self, table_of_content):
        """Sets the table_of_content of this UtilitiesStructuresSecurityReportOptions.


        :param table_of_content: The table_of_content of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._table_of_content = table_of_content

    @property
    def advisories(self):
        # type: () -> bool
        """Gets the advisories of this UtilitiesStructuresSecurityReportOptions.


        :return: The advisories of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._advisories

    @advisories.setter
    def advisories(self, advisories):
        """Sets the advisories of this UtilitiesStructuresSecurityReportOptions.


        :param advisories: The advisories of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._advisories = advisories

    @property
    def fix_recommendation(self):
        # type: () -> bool
        """Gets the fix_recommendation of this UtilitiesStructuresSecurityReportOptions.


        :return: The fix_recommendation of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._fix_recommendation

    @fix_recommendation.setter
    def fix_recommendation(self, fix_recommendation):
        """Sets the fix_recommendation of this UtilitiesStructuresSecurityReportOptions.


        :param fix_recommendation: The fix_recommendation of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._fix_recommendation = fix_recommendation

    @property
    def history(self):
        # type: () -> bool
        """Gets the history of this UtilitiesStructuresSecurityReportOptions.


        :return: The history of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._history

    @history.setter
    def history(self, history):
        """Sets the history of this UtilitiesStructuresSecurityReportOptions.


        :param history: The history of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._history = history

    @property
    def coverage(self):
        # type: () -> bool
        """Gets the coverage of this UtilitiesStructuresSecurityReportOptions.


        :return: The coverage of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._coverage

    @coverage.setter
    def coverage(self, coverage):
        """Sets the coverage of this UtilitiesStructuresSecurityReportOptions.


        :param coverage: The coverage of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._coverage = coverage

    @property
    def minimize_details(self):
        # type: () -> bool
        """Gets the minimize_details of this UtilitiesStructuresSecurityReportOptions.


        :return: The minimize_details of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._minimize_details

    @minimize_details.setter
    def minimize_details(self, minimize_details):
        """Sets the minimize_details of this UtilitiesStructuresSecurityReportOptions.


        :param minimize_details: The minimize_details of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._minimize_details = minimize_details

    @property
    def articles(self):
        # type: () -> bool
        """Gets the articles of this UtilitiesStructuresSecurityReportOptions.


        :return: The articles of this UtilitiesStructuresSecurityReportOptions.
        :rtype: bool
        """
        return self._articles

    @articles.setter
    def articles(self, articles):
        """Sets the articles of this UtilitiesStructuresSecurityReportOptions.


        :param articles: The articles of this UtilitiesStructuresSecurityReportOptions.
        :type: bool
        """

        self._articles = articles

    @property
    def report_file_type(self):
        # type: () -> str
        """Gets the report_file_type of this UtilitiesStructuresSecurityReportOptions.


        :return: The report_file_type of this UtilitiesStructuresSecurityReportOptions.
        :rtype: str
        """
        return self._report_file_type

    @report_file_type.setter
    def report_file_type(self, report_file_type):
        """Sets the report_file_type of this UtilitiesStructuresSecurityReportOptions.


        :param report_file_type: The report_file_type of this UtilitiesStructuresSecurityReportOptions.
        :type: str
        """
        allowed_values = ["Pdf", "Html", "Xml", "Csv", "Sarif"]
        if self._configuration.client_side_validation and report_file_type not in allowed_values:
            raise ValueError(
                "Invalid value for `report_file_type` ({}), must be one of {}".format(
                    report_file_type, allowed_values
                )
            )

        self._report_file_type = report_file_type

    @property
    def title(self):
        # type: () -> str
        """Gets the title of this UtilitiesStructuresSecurityReportOptions.


        :return: The title of this UtilitiesStructuresSecurityReportOptions.
        :rtype: str
        """
        return self._title

    @title.setter
    def title(self, title):
        """Sets the title of this UtilitiesStructuresSecurityReportOptions.


        :param title: The title of this UtilitiesStructuresSecurityReportOptions.
        :type: str
        """

        self._title = title

    @property
    def notes(self):
        # type: () -> str
        """Gets the notes of this UtilitiesStructuresSecurityReportOptions.


        :return: The notes of this UtilitiesStructuresSecurityReportOptions.
        :rtype: str
        """
        return self._notes

    @notes.setter
    def notes(self, notes):
        """Sets the notes of this UtilitiesStructuresSecurityReportOptions.


        :param notes: The notes of this UtilitiesStructuresSecurityReportOptions.
        :type: str
        """

        self._notes = notes

    @property
    def locale(self):
        # type: () -> str
        """Gets the locale of this UtilitiesStructuresSecurityReportOptions.


        :return: The locale of this UtilitiesStructuresSecurityReportOptions.
        :rtype: str
        """
        return self._locale

    @locale.setter
    def locale(self, locale):
        """Sets the locale of this UtilitiesStructuresSecurityReportOptions.


        :param locale: The locale of this UtilitiesStructuresSecurityReportOptions.
        :type: str
        """

        self._locale = locale

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

        for attr, _ in self.swagger_types.items():
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(
                    map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value)
                )
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(
                    map(
                        lambda item: (item[0], item[1].to_dict())
                        if hasattr(item[1], "to_dict")
                        else item,
                        value.items(),
                    )
                )
            else:
                result[attr] = value
        if issubclass(UtilitiesStructuresSecurityReportOptions, dict):
            for key, value in self.items():
                result[key] = 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, UtilitiesStructuresSecurityReportOptions):
            return False

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

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

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