# coding: utf-8

"""
    Statuspage API

    # Code of Conduct Please don't abuse the API, and please report all feature requests and issues to https://support.atlassian.com/contact  # Rate Limiting Each API token is limited to 1 request / second as measured on a 60 second rolling window. To get this limit increased, please contact us at https://support.atlassian.com/contact  Error codes 420 or 429 indicate that you have exceeded the rate limit and the request has been rejected.  # Basics  ## HTTPS It's required  ## URL Prefix In order to maintain version integrity into the future, the API is versioned. All calls currently begin with the following prefix:    https://api.statuspage.io/v1/  ## RESTful Interface Wherever possible, the API seeks to implement repeatable patterns with logical, representative URLs and descriptive HTTP verbs. Below are some examples and conventions you will see throughout the documentation.  * Collections are buckets: https://api.statuspage.io/v1/pages/asdf123/incidents.json * Elements have unique IDs: https://api.statuspage.io/v1/pages/asdf123/incidents/jklm456.json * GET will retrieve information about a collection/element * POST will create an element in a collection * PATCH will update a single element * PUT will replace a single element in a collection (rarely used) * DELETE will destroy a single element  ## Sending Data Information can be sent in the body as form urlencoded or JSON, but make sure the Content-Type header matches the body structure or the server gremlins will be angry.  All examples are provided in JSON format, however they can easily be converted to form encoding if required.  Some examples of how to convert things are below:      // JSON     {       \"incident\": {         \"name\": \"test incident\",         \"components\": [\"8kbf7d35c070\", \"vtnh60py4yd7\"]       }     }      // Form Encoded (using curl as an example):     curl -X POST https://api.statuspage.io/v1/example \\       -d \"incident[name]=test incident\" \\       -d \"incident[components][]=8kbf7d35c070\" \\       -d \"incident[components][]=vtnh60py4yd7\"  # Authentication  <!-- ReDoc-Inject: <security-definitions> -->  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class PostPagesPageIdIncidentsIncident(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'name': 'str',
        'status': 'str',
        'impact_override': 'str',
        'scheduled_for': 'datetime',
        'scheduled_until': 'datetime',
        'scheduled_remind_prior': 'bool',
        'auto_transition_to_maintenance_state': 'bool',
        'auto_transition_to_operational_state': 'bool',
        'scheduled_auto_in_progress': 'bool',
        'scheduled_auto_completed': 'bool',
        'auto_transition_deliver_notifications_at_start': 'bool',
        'auto_transition_deliver_notifications_at_end': 'bool',
        'metadata': 'object',
        'deliver_notifications': 'bool',
        'auto_tweet_at_beginning': 'bool',
        'auto_tweet_on_completion': 'bool',
        'auto_tweet_on_creation': 'bool',
        'auto_tweet_one_hour_before': 'bool',
        'backfill_date': 'str',
        'backfilled': 'bool',
        'body': 'str',
        'components': 'PostPagesPageIdIncidentsIncidentComponents',
        'component_ids': 'list[str]',
        'scheduled_auto_transition': 'bool'
    }

    attribute_map = {
        'name': 'name',
        'status': 'status',
        'impact_override': 'impact_override',
        'scheduled_for': 'scheduled_for',
        'scheduled_until': 'scheduled_until',
        'scheduled_remind_prior': 'scheduled_remind_prior',
        'auto_transition_to_maintenance_state': 'auto_transition_to_maintenance_state',
        'auto_transition_to_operational_state': 'auto_transition_to_operational_state',
        'scheduled_auto_in_progress': 'scheduled_auto_in_progress',
        'scheduled_auto_completed': 'scheduled_auto_completed',
        'auto_transition_deliver_notifications_at_start': 'auto_transition_deliver_notifications_at_start',
        'auto_transition_deliver_notifications_at_end': 'auto_transition_deliver_notifications_at_end',
        'metadata': 'metadata',
        'deliver_notifications': 'deliver_notifications',
        'auto_tweet_at_beginning': 'auto_tweet_at_beginning',
        'auto_tweet_on_completion': 'auto_tweet_on_completion',
        'auto_tweet_on_creation': 'auto_tweet_on_creation',
        'auto_tweet_one_hour_before': 'auto_tweet_one_hour_before',
        'backfill_date': 'backfill_date',
        'backfilled': 'backfilled',
        'body': 'body',
        'components': 'components',
        'component_ids': 'component_ids',
        'scheduled_auto_transition': 'scheduled_auto_transition'
    }

    def __init__(self, name=None, status=None, impact_override=None, scheduled_for=None, scheduled_until=None, scheduled_remind_prior=None, auto_transition_to_maintenance_state=None, auto_transition_to_operational_state=None, scheduled_auto_in_progress=None, scheduled_auto_completed=None, auto_transition_deliver_notifications_at_start=None, auto_transition_deliver_notifications_at_end=None, metadata=None, deliver_notifications=True, auto_tweet_at_beginning=None, auto_tweet_on_completion=None, auto_tweet_on_creation=None, auto_tweet_one_hour_before=None, backfill_date=None, backfilled=None, body=None, components=None, component_ids=None, scheduled_auto_transition=None):  # noqa: E501
        """PostPagesPageIdIncidentsIncident - a model defined in Swagger"""  # noqa: E501
        self._name = None
        self._status = None
        self._impact_override = None
        self._scheduled_for = None
        self._scheduled_until = None
        self._scheduled_remind_prior = None
        self._auto_transition_to_maintenance_state = None
        self._auto_transition_to_operational_state = None
        self._scheduled_auto_in_progress = None
        self._scheduled_auto_completed = None
        self._auto_transition_deliver_notifications_at_start = None
        self._auto_transition_deliver_notifications_at_end = None
        self._metadata = None
        self._deliver_notifications = None
        self._auto_tweet_at_beginning = None
        self._auto_tweet_on_completion = None
        self._auto_tweet_on_creation = None
        self._auto_tweet_one_hour_before = None
        self._backfill_date = None
        self._backfilled = None
        self._body = None
        self._components = None
        self._component_ids = None
        self._scheduled_auto_transition = None
        self.discriminator = None
        self.name = name
        if status is not None:
            self.status = status
        if impact_override is not None:
            self.impact_override = impact_override
        if scheduled_for is not None:
            self.scheduled_for = scheduled_for
        if scheduled_until is not None:
            self.scheduled_until = scheduled_until
        if scheduled_remind_prior is not None:
            self.scheduled_remind_prior = scheduled_remind_prior
        if auto_transition_to_maintenance_state is not None:
            self.auto_transition_to_maintenance_state = auto_transition_to_maintenance_state
        if auto_transition_to_operational_state is not None:
            self.auto_transition_to_operational_state = auto_transition_to_operational_state
        if scheduled_auto_in_progress is not None:
            self.scheduled_auto_in_progress = scheduled_auto_in_progress
        if scheduled_auto_completed is not None:
            self.scheduled_auto_completed = scheduled_auto_completed
        if auto_transition_deliver_notifications_at_start is not None:
            self.auto_transition_deliver_notifications_at_start = auto_transition_deliver_notifications_at_start
        if auto_transition_deliver_notifications_at_end is not None:
            self.auto_transition_deliver_notifications_at_end = auto_transition_deliver_notifications_at_end
        if metadata is not None:
            self.metadata = metadata
        if deliver_notifications is not None:
            self.deliver_notifications = deliver_notifications
        if auto_tweet_at_beginning is not None:
            self.auto_tweet_at_beginning = auto_tweet_at_beginning
        if auto_tweet_on_completion is not None:
            self.auto_tweet_on_completion = auto_tweet_on_completion
        if auto_tweet_on_creation is not None:
            self.auto_tweet_on_creation = auto_tweet_on_creation
        if auto_tweet_one_hour_before is not None:
            self.auto_tweet_one_hour_before = auto_tweet_one_hour_before
        if backfill_date is not None:
            self.backfill_date = backfill_date
        if backfilled is not None:
            self.backfilled = backfilled
        if body is not None:
            self.body = body
        if components is not None:
            self.components = components
        if component_ids is not None:
            self.component_ids = component_ids
        if scheduled_auto_transition is not None:
            self.scheduled_auto_transition = scheduled_auto_transition

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

        Incident Name. There is a maximum limit of 255 characters.  # noqa: E501

        :return: The name of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this PostPagesPageIdIncidentsIncident.

        Incident Name. There is a maximum limit of 255 characters.  # noqa: E501

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

        self._name = name

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

        The incident status. For realtime incidents, valid values are investigating, identified, monitoring, and resolved. For scheduled incidents, valid values are scheduled, in_progress, verifying, and completed.  # noqa: E501

        :return: The status of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this PostPagesPageIdIncidentsIncident.

        The incident status. For realtime incidents, valid values are investigating, identified, monitoring, and resolved. For scheduled incidents, valid values are scheduled, in_progress, verifying, and completed.  # noqa: E501

        :param status: The status of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: str
        """
        allowed_values = ["investigating", "identified", "monitoring", "resolved", "scheduled", "in_progress", "verifying", "completed"]  # noqa: E501
        if status not in allowed_values:
            raise ValueError(
                "Invalid value for `status` ({0}), must be one of {1}"  # noqa: E501
                .format(status, allowed_values)
            )

        self._status = status

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

        value to override calculated impact value  # noqa: E501

        :return: The impact_override of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: str
        """
        return self._impact_override

    @impact_override.setter
    def impact_override(self, impact_override):
        """Sets the impact_override of this PostPagesPageIdIncidentsIncident.

        value to override calculated impact value  # noqa: E501

        :param impact_override: The impact_override of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: str
        """
        allowed_values = ["none", "maintenance", "minor", "major", "critical"]  # noqa: E501
        if impact_override not in allowed_values:
            raise ValueError(
                "Invalid value for `impact_override` ({0}), must be one of {1}"  # noqa: E501
                .format(impact_override, allowed_values)
            )

        self._impact_override = impact_override

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

        The timestamp the incident is scheduled for.  # noqa: E501

        :return: The scheduled_for of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: datetime
        """
        return self._scheduled_for

    @scheduled_for.setter
    def scheduled_for(self, scheduled_for):
        """Sets the scheduled_for of this PostPagesPageIdIncidentsIncident.

        The timestamp the incident is scheduled for.  # noqa: E501

        :param scheduled_for: The scheduled_for of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: datetime
        """

        self._scheduled_for = scheduled_for

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

        The timestamp the incident is scheduled until.  # noqa: E501

        :return: The scheduled_until of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: datetime
        """
        return self._scheduled_until

    @scheduled_until.setter
    def scheduled_until(self, scheduled_until):
        """Sets the scheduled_until of this PostPagesPageIdIncidentsIncident.

        The timestamp the incident is scheduled until.  # noqa: E501

        :param scheduled_until: The scheduled_until of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: datetime
        """

        self._scheduled_until = scheduled_until

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

        Controls whether to remind subscribers prior to scheduled incidents.  # noqa: E501

        :return: The scheduled_remind_prior of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._scheduled_remind_prior

    @scheduled_remind_prior.setter
    def scheduled_remind_prior(self, scheduled_remind_prior):
        """Sets the scheduled_remind_prior of this PostPagesPageIdIncidentsIncident.

        Controls whether to remind subscribers prior to scheduled incidents.  # noqa: E501

        :param scheduled_remind_prior: The scheduled_remind_prior of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._scheduled_remind_prior = scheduled_remind_prior

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

        Controls whether change components status to under_maintenance once scheduled maintenance is in progress.  # noqa: E501

        :return: The auto_transition_to_maintenance_state of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_transition_to_maintenance_state

    @auto_transition_to_maintenance_state.setter
    def auto_transition_to_maintenance_state(self, auto_transition_to_maintenance_state):
        """Sets the auto_transition_to_maintenance_state of this PostPagesPageIdIncidentsIncident.

        Controls whether change components status to under_maintenance once scheduled maintenance is in progress.  # noqa: E501

        :param auto_transition_to_maintenance_state: The auto_transition_to_maintenance_state of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_transition_to_maintenance_state = auto_transition_to_maintenance_state

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

        Controls whether change components status to operational once scheduled maintenance completes.  # noqa: E501

        :return: The auto_transition_to_operational_state of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_transition_to_operational_state

    @auto_transition_to_operational_state.setter
    def auto_transition_to_operational_state(self, auto_transition_to_operational_state):
        """Sets the auto_transition_to_operational_state of this PostPagesPageIdIncidentsIncident.

        Controls whether change components status to operational once scheduled maintenance completes.  # noqa: E501

        :param auto_transition_to_operational_state: The auto_transition_to_operational_state of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_transition_to_operational_state = auto_transition_to_operational_state

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

        Controls whether the incident is scheduled to automatically change to in progress.  # noqa: E501

        :return: The scheduled_auto_in_progress of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._scheduled_auto_in_progress

    @scheduled_auto_in_progress.setter
    def scheduled_auto_in_progress(self, scheduled_auto_in_progress):
        """Sets the scheduled_auto_in_progress of this PostPagesPageIdIncidentsIncident.

        Controls whether the incident is scheduled to automatically change to in progress.  # noqa: E501

        :param scheduled_auto_in_progress: The scheduled_auto_in_progress of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._scheduled_auto_in_progress = scheduled_auto_in_progress

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

        Controls whether the incident is scheduled to automatically change to complete.  # noqa: E501

        :return: The scheduled_auto_completed of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._scheduled_auto_completed

    @scheduled_auto_completed.setter
    def scheduled_auto_completed(self, scheduled_auto_completed):
        """Sets the scheduled_auto_completed of this PostPagesPageIdIncidentsIncident.

        Controls whether the incident is scheduled to automatically change to complete.  # noqa: E501

        :param scheduled_auto_completed: The scheduled_auto_completed of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._scheduled_auto_completed = scheduled_auto_completed

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

        Controls whether send notification when scheduled maintenances auto transition to started.  # noqa: E501

        :return: The auto_transition_deliver_notifications_at_start of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_transition_deliver_notifications_at_start

    @auto_transition_deliver_notifications_at_start.setter
    def auto_transition_deliver_notifications_at_start(self, auto_transition_deliver_notifications_at_start):
        """Sets the auto_transition_deliver_notifications_at_start of this PostPagesPageIdIncidentsIncident.

        Controls whether send notification when scheduled maintenances auto transition to started.  # noqa: E501

        :param auto_transition_deliver_notifications_at_start: The auto_transition_deliver_notifications_at_start of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_transition_deliver_notifications_at_start = auto_transition_deliver_notifications_at_start

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

        Controls whether send notification when scheduled maintenances auto transition to completed.  # noqa: E501

        :return: The auto_transition_deliver_notifications_at_end of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_transition_deliver_notifications_at_end

    @auto_transition_deliver_notifications_at_end.setter
    def auto_transition_deliver_notifications_at_end(self, auto_transition_deliver_notifications_at_end):
        """Sets the auto_transition_deliver_notifications_at_end of this PostPagesPageIdIncidentsIncident.

        Controls whether send notification when scheduled maintenances auto transition to completed.  # noqa: E501

        :param auto_transition_deliver_notifications_at_end: The auto_transition_deliver_notifications_at_end of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_transition_deliver_notifications_at_end = auto_transition_deliver_notifications_at_end

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

        Attach a json object to the incident. All top-level values in the object must also be objects.  # noqa: E501

        :return: The metadata of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: object
        """
        return self._metadata

    @metadata.setter
    def metadata(self, metadata):
        """Sets the metadata of this PostPagesPageIdIncidentsIncident.

        Attach a json object to the incident. All top-level values in the object must also be objects.  # noqa: E501

        :param metadata: The metadata of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: object
        """

        self._metadata = metadata

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

        Deliver notifications to subscribers if this is true. If this is false, create an incident without notifying customers.  # noqa: E501

        :return: The deliver_notifications of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._deliver_notifications

    @deliver_notifications.setter
    def deliver_notifications(self, deliver_notifications):
        """Sets the deliver_notifications of this PostPagesPageIdIncidentsIncident.

        Deliver notifications to subscribers if this is true. If this is false, create an incident without notifying customers.  # noqa: E501

        :param deliver_notifications: The deliver_notifications of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._deliver_notifications = deliver_notifications

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

        Controls whether tweet automatically when scheduled maintenance starts.  # noqa: E501

        :return: The auto_tweet_at_beginning of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_tweet_at_beginning

    @auto_tweet_at_beginning.setter
    def auto_tweet_at_beginning(self, auto_tweet_at_beginning):
        """Sets the auto_tweet_at_beginning of this PostPagesPageIdIncidentsIncident.

        Controls whether tweet automatically when scheduled maintenance starts.  # noqa: E501

        :param auto_tweet_at_beginning: The auto_tweet_at_beginning of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_tweet_at_beginning = auto_tweet_at_beginning

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

        Controls whether tweet automatically when scheduled maintenance completes.  # noqa: E501

        :return: The auto_tweet_on_completion of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_tweet_on_completion

    @auto_tweet_on_completion.setter
    def auto_tweet_on_completion(self, auto_tweet_on_completion):
        """Sets the auto_tweet_on_completion of this PostPagesPageIdIncidentsIncident.

        Controls whether tweet automatically when scheduled maintenance completes.  # noqa: E501

        :param auto_tweet_on_completion: The auto_tweet_on_completion of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_tweet_on_completion = auto_tweet_on_completion

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

        Controls whether tweet automatically when scheduled maintenance is created.  # noqa: E501

        :return: The auto_tweet_on_creation of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_tweet_on_creation

    @auto_tweet_on_creation.setter
    def auto_tweet_on_creation(self, auto_tweet_on_creation):
        """Sets the auto_tweet_on_creation of this PostPagesPageIdIncidentsIncident.

        Controls whether tweet automatically when scheduled maintenance is created.  # noqa: E501

        :param auto_tweet_on_creation: The auto_tweet_on_creation of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_tweet_on_creation = auto_tweet_on_creation

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

        Controls whether tweet automatically one hour before scheduled maintenance starts.  # noqa: E501

        :return: The auto_tweet_one_hour_before of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._auto_tweet_one_hour_before

    @auto_tweet_one_hour_before.setter
    def auto_tweet_one_hour_before(self, auto_tweet_one_hour_before):
        """Sets the auto_tweet_one_hour_before of this PostPagesPageIdIncidentsIncident.

        Controls whether tweet automatically one hour before scheduled maintenance starts.  # noqa: E501

        :param auto_tweet_one_hour_before: The auto_tweet_one_hour_before of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._auto_tweet_one_hour_before = auto_tweet_one_hour_before

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

        TimeStamp when incident was backfilled.  # noqa: E501

        :return: The backfill_date of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: str
        """
        return self._backfill_date

    @backfill_date.setter
    def backfill_date(self, backfill_date):
        """Sets the backfill_date of this PostPagesPageIdIncidentsIncident.

        TimeStamp when incident was backfilled.  # noqa: E501

        :param backfill_date: The backfill_date of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: str
        """

        self._backfill_date = backfill_date

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

        Controls whether incident is backfilled. If true, components cannot be specified.  # noqa: E501

        :return: The backfilled of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._backfilled

    @backfilled.setter
    def backfilled(self, backfilled):
        """Sets the backfilled of this PostPagesPageIdIncidentsIncident.

        Controls whether incident is backfilled. If true, components cannot be specified.  # noqa: E501

        :param backfilled: The backfilled of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._backfilled = backfilled

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

        The initial message, created as the first incident update. There is a maximum limit of 25000 characters  # noqa: E501

        :return: The body of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: str
        """
        return self._body

    @body.setter
    def body(self, body):
        """Sets the body of this PostPagesPageIdIncidentsIncident.

        The initial message, created as the first incident update. There is a maximum limit of 25000 characters  # noqa: E501

        :param body: The body of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: str
        """

        self._body = body

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


        :return: The components of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: PostPagesPageIdIncidentsIncidentComponents
        """
        return self._components

    @components.setter
    def components(self, components):
        """Sets the components of this PostPagesPageIdIncidentsIncident.


        :param components: The components of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: PostPagesPageIdIncidentsIncidentComponents
        """

        self._components = components

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

        List of component_ids affected by this incident  # noqa: E501

        :return: The component_ids of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: list[str]
        """
        return self._component_ids

    @component_ids.setter
    def component_ids(self, component_ids):
        """Sets the component_ids of this PostPagesPageIdIncidentsIncident.

        List of component_ids affected by this incident  # noqa: E501

        :param component_ids: The component_ids of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: list[str]
        """

        self._component_ids = component_ids

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

        Same as :scheduled_auto_transition_in_progress. Controls whether the incident is scheduled to automatically change to in progress.  # noqa: E501

        :return: The scheduled_auto_transition of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :rtype: bool
        """
        return self._scheduled_auto_transition

    @scheduled_auto_transition.setter
    def scheduled_auto_transition(self, scheduled_auto_transition):
        """Sets the scheduled_auto_transition of this PostPagesPageIdIncidentsIncident.

        Same as :scheduled_auto_transition_in_progress. Controls whether the incident is scheduled to automatically change to in progress.  # noqa: E501

        :param scheduled_auto_transition: The scheduled_auto_transition of this PostPagesPageIdIncidentsIncident.  # noqa: E501
        :type: bool
        """

        self._scheduled_auto_transition = scheduled_auto_transition

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

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

        return self.__dict__ == other.__dict__

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