from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from chromestatus_openapi.models.base_model import Model
from chromestatus_openapi.models.field_info import FieldInfo
from chromestatus_openapi import util

from chromestatus_openapi.models.field_info import FieldInfo  # noqa: E501

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

    Do not edit the class manually.
    """

    def __init__(self, desktop_first=None, desktop_last=None, android_first=None, android_last=None, ios_first=None, ios_last=None, webview_first=None, webview_last=None):  # noqa: E501
        """MilestoneSetField - a model defined in OpenAPI

        :param desktop_first: The desktop_first of this MilestoneSetField.  # noqa: E501
        :type desktop_first: FieldInfo
        :param desktop_last: The desktop_last of this MilestoneSetField.  # noqa: E501
        :type desktop_last: FieldInfo
        :param android_first: The android_first of this MilestoneSetField.  # noqa: E501
        :type android_first: FieldInfo
        :param android_last: The android_last of this MilestoneSetField.  # noqa: E501
        :type android_last: FieldInfo
        :param ios_first: The ios_first of this MilestoneSetField.  # noqa: E501
        :type ios_first: FieldInfo
        :param ios_last: The ios_last of this MilestoneSetField.  # noqa: E501
        :type ios_last: FieldInfo
        :param webview_first: The webview_first of this MilestoneSetField.  # noqa: E501
        :type webview_first: FieldInfo
        :param webview_last: The webview_last of this MilestoneSetField.  # noqa: E501
        :type webview_last: FieldInfo
        """
        self.openapi_types = {
            'desktop_first': FieldInfo,
            'desktop_last': FieldInfo,
            'android_first': FieldInfo,
            'android_last': FieldInfo,
            'ios_first': FieldInfo,
            'ios_last': FieldInfo,
            'webview_first': FieldInfo,
            'webview_last': FieldInfo
        }

        self.attribute_map = {
            'desktop_first': 'desktop_first',
            'desktop_last': 'desktop_last',
            'android_first': 'android_first',
            'android_last': 'android_last',
            'ios_first': 'ios_first',
            'ios_last': 'ios_last',
            'webview_first': 'webview_first',
            'webview_last': 'webview_last'
        }

        self._desktop_first = desktop_first
        self._desktop_last = desktop_last
        self._android_first = android_first
        self._android_last = android_last
        self._ios_first = ios_first
        self._ios_last = ios_last
        self._webview_first = webview_first
        self._webview_last = webview_last

    @classmethod
    def from_dict(cls, dikt) -> 'MilestoneSetField':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The MilestoneSetField of this MilestoneSetField.  # noqa: E501
        :rtype: MilestoneSetField
        """
        return util.deserialize_model(dikt, cls)

    @property
    def desktop_first(self) -> FieldInfo:
        """Gets the desktop_first of this MilestoneSetField.


        :return: The desktop_first of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._desktop_first

    @desktop_first.setter
    def desktop_first(self, desktop_first: FieldInfo):
        """Sets the desktop_first of this MilestoneSetField.


        :param desktop_first: The desktop_first of this MilestoneSetField.
        :type desktop_first: FieldInfo
        """

        self._desktop_first = desktop_first

    @property
    def desktop_last(self) -> FieldInfo:
        """Gets the desktop_last of this MilestoneSetField.


        :return: The desktop_last of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._desktop_last

    @desktop_last.setter
    def desktop_last(self, desktop_last: FieldInfo):
        """Sets the desktop_last of this MilestoneSetField.


        :param desktop_last: The desktop_last of this MilestoneSetField.
        :type desktop_last: FieldInfo
        """

        self._desktop_last = desktop_last

    @property
    def android_first(self) -> FieldInfo:
        """Gets the android_first of this MilestoneSetField.


        :return: The android_first of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._android_first

    @android_first.setter
    def android_first(self, android_first: FieldInfo):
        """Sets the android_first of this MilestoneSetField.


        :param android_first: The android_first of this MilestoneSetField.
        :type android_first: FieldInfo
        """

        self._android_first = android_first

    @property
    def android_last(self) -> FieldInfo:
        """Gets the android_last of this MilestoneSetField.


        :return: The android_last of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._android_last

    @android_last.setter
    def android_last(self, android_last: FieldInfo):
        """Sets the android_last of this MilestoneSetField.


        :param android_last: The android_last of this MilestoneSetField.
        :type android_last: FieldInfo
        """

        self._android_last = android_last

    @property
    def ios_first(self) -> FieldInfo:
        """Gets the ios_first of this MilestoneSetField.


        :return: The ios_first of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._ios_first

    @ios_first.setter
    def ios_first(self, ios_first: FieldInfo):
        """Sets the ios_first of this MilestoneSetField.


        :param ios_first: The ios_first of this MilestoneSetField.
        :type ios_first: FieldInfo
        """

        self._ios_first = ios_first

    @property
    def ios_last(self) -> FieldInfo:
        """Gets the ios_last of this MilestoneSetField.


        :return: The ios_last of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._ios_last

    @ios_last.setter
    def ios_last(self, ios_last: FieldInfo):
        """Sets the ios_last of this MilestoneSetField.


        :param ios_last: The ios_last of this MilestoneSetField.
        :type ios_last: FieldInfo
        """

        self._ios_last = ios_last

    @property
    def webview_first(self) -> FieldInfo:
        """Gets the webview_first of this MilestoneSetField.


        :return: The webview_first of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._webview_first

    @webview_first.setter
    def webview_first(self, webview_first: FieldInfo):
        """Sets the webview_first of this MilestoneSetField.


        :param webview_first: The webview_first of this MilestoneSetField.
        :type webview_first: FieldInfo
        """

        self._webview_first = webview_first

    @property
    def webview_last(self) -> FieldInfo:
        """Gets the webview_last of this MilestoneSetField.


        :return: The webview_last of this MilestoneSetField.
        :rtype: FieldInfo
        """
        return self._webview_last

    @webview_last.setter
    def webview_last(self, webview_last: FieldInfo):
        """Sets the webview_last of this MilestoneSetField.


        :param webview_last: The webview_last of this MilestoneSetField.
        :type webview_last: FieldInfo
        """

        self._webview_last = webview_last
