# coding: utf-8

"""
    Street Manager API

    See API specification Resource Guide > Work API for more information on endpoints NOTE: Swagger Editor/UI does not display all description text for enumerations and child elements, check swagger.json for full description text  # 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 WorkResponse(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 = {
        'work_reference_number': 'str',
        'workstream_prefix': 'str',
        'promoter_swa_code': 'str',
        'promoter_organisation': 'str',
        'promoter_organisation_industry_type': 'AllOfWorkResponsePromoterOrganisationIndustryType',
        'promoter_organisation_industry_type_string': 'str',
        'highway_authority_swa_code': 'str',
        'highway_authority': 'str',
        'street_name': 'str',
        'town': 'str',
        'area_name': 'str',
        'road_category': 'float',
        'works_coordinates': 'object',
        'usrn': 'float',
        'inspection_units': 'float',
        'work_status': 'WorkStatusResponse',
        'work_status_string': 'str',
        'works_location_description': 'str',
        'work_start_date': 'datetime',
        'work_end_date': 'datetime',
        'work_start_time': 'datetime',
        'work_end_time': 'datetime',
        'description_of_work': 'str',
        'active_permit': 'AllOfWorkResponseActivePermit',
        'forward_plan': 'AllOfWorkResponseForwardPlan',
        'permits': 'list[PermitSummaryResponse]',
        'history': 'list[WorkHistorySummaryResponse]',
        'sites': 'list[SiteSummaryResponse]',
        'inspections': 'list[InspectionSummaryResponse]',
        'fpns': 'list[FPNSummaryResponse]',
        'section_81': 'AllOfWorkResponseSection81',
        'files': 'list[FileResponse]',
        'pbi_sample_inspections': 'list[PbiSampleInspectionSummaryResponse]',
        'number_of_sites': 'float',
        'section74s': 'list[Section74SummaryResponse]',
        'street_line': 'object',
        'private_street_notice': 'AllOfWorkResponsePrivateStreetNotice',
        'non_compliances': 'list[NonComplianceSummaryResponse]',
        'latest_comments': 'list[CommentResponse]'
    }

    attribute_map = {
        'work_reference_number': 'work_reference_number',
        'workstream_prefix': 'workstream_prefix',
        'promoter_swa_code': 'promoter_swa_code',
        'promoter_organisation': 'promoter_organisation',
        'promoter_organisation_industry_type': 'promoter_organisation_industry_type',
        'promoter_organisation_industry_type_string': 'promoter_organisation_industry_type_string',
        'highway_authority_swa_code': 'highway_authority_swa_code',
        'highway_authority': 'highway_authority',
        'street_name': 'street_name',
        'town': 'town',
        'area_name': 'area_name',
        'road_category': 'road_category',
        'works_coordinates': 'works_coordinates',
        'usrn': 'usrn',
        'inspection_units': 'inspection_units',
        'work_status': 'work_status',
        'work_status_string': 'work_status_string',
        'works_location_description': 'works_location_description',
        'work_start_date': 'work_start_date',
        'work_end_date': 'work_end_date',
        'work_start_time': 'work_start_time',
        'work_end_time': 'work_end_time',
        'description_of_work': 'description_of_work',
        'active_permit': 'active_permit',
        'forward_plan': 'forward_plan',
        'permits': 'permits',
        'history': 'history',
        'sites': 'sites',
        'inspections': 'inspections',
        'fpns': 'fpns',
        'section_81': 'section_81',
        'files': 'files',
        'pbi_sample_inspections': 'pbi_sample_inspections',
        'number_of_sites': 'number_of_sites',
        'section74s': 'section74s',
        'street_line': 'street_line',
        'private_street_notice': 'private_street_notice',
        'non_compliances': 'non_compliances',
        'latest_comments': 'latest_comments'
    }

    def __init__(self, work_reference_number=None, workstream_prefix=None, promoter_swa_code=None, promoter_organisation=None, promoter_organisation_industry_type=None, promoter_organisation_industry_type_string=None, highway_authority_swa_code=None, highway_authority=None, street_name=None, town=None, area_name=None, road_category=None, works_coordinates=None, usrn=None, inspection_units=None, work_status=None, work_status_string=None, works_location_description=None, work_start_date=None, work_end_date=None, work_start_time=None, work_end_time=None, description_of_work=None, active_permit=None, forward_plan=None, permits=None, history=None, sites=None, inspections=None, fpns=None, section_81=None, files=None, pbi_sample_inspections=None, number_of_sites=None, section74s=None, street_line=None, private_street_notice=None, non_compliances=None, latest_comments=None):  # noqa: E501
        """WorkResponse - a model defined in Swagger"""  # noqa: E501
        self._work_reference_number = None
        self._workstream_prefix = None
        self._promoter_swa_code = None
        self._promoter_organisation = None
        self._promoter_organisation_industry_type = None
        self._promoter_organisation_industry_type_string = None
        self._highway_authority_swa_code = None
        self._highway_authority = None
        self._street_name = None
        self._town = None
        self._area_name = None
        self._road_category = None
        self._works_coordinates = None
        self._usrn = None
        self._inspection_units = None
        self._work_status = None
        self._work_status_string = None
        self._works_location_description = None
        self._work_start_date = None
        self._work_end_date = None
        self._work_start_time = None
        self._work_end_time = None
        self._description_of_work = None
        self._active_permit = None
        self._forward_plan = None
        self._permits = None
        self._history = None
        self._sites = None
        self._inspections = None
        self._fpns = None
        self._section_81 = None
        self._files = None
        self._pbi_sample_inspections = None
        self._number_of_sites = None
        self._section74s = None
        self._street_line = None
        self._private_street_notice = None
        self._non_compliances = None
        self._latest_comments = None
        self.discriminator = None
        self.work_reference_number = work_reference_number
        self.workstream_prefix = workstream_prefix
        self.promoter_swa_code = promoter_swa_code
        self.promoter_organisation = promoter_organisation
        if promoter_organisation_industry_type is not None:
            self.promoter_organisation_industry_type = promoter_organisation_industry_type
        if promoter_organisation_industry_type_string is not None:
            self.promoter_organisation_industry_type_string = promoter_organisation_industry_type_string
        self.highway_authority_swa_code = highway_authority_swa_code
        self.highway_authority = highway_authority
        self.street_name = street_name
        if town is not None:
            self.town = town
        if area_name is not None:
            self.area_name = area_name
        self.road_category = road_category
        self.works_coordinates = works_coordinates
        self.usrn = usrn
        if inspection_units is not None:
            self.inspection_units = inspection_units
        self.work_status = work_status
        self.work_status_string = work_status_string
        self.works_location_description = works_location_description
        if work_start_date is not None:
            self.work_start_date = work_start_date
        if work_end_date is not None:
            self.work_end_date = work_end_date
        if work_start_time is not None:
            self.work_start_time = work_start_time
        if work_end_time is not None:
            self.work_end_time = work_end_time
        if description_of_work is not None:
            self.description_of_work = description_of_work
        if active_permit is not None:
            self.active_permit = active_permit
        if forward_plan is not None:
            self.forward_plan = forward_plan
        if permits is not None:
            self.permits = permits
        self.history = history
        if sites is not None:
            self.sites = sites
        if inspections is not None:
            self.inspections = inspections
        if fpns is not None:
            self.fpns = fpns
        if section_81 is not None:
            self.section_81 = section_81
        if files is not None:
            self.files = files
        if pbi_sample_inspections is not None:
            self.pbi_sample_inspections = pbi_sample_inspections
        if number_of_sites is not None:
            self.number_of_sites = number_of_sites
        if section74s is not None:
            self.section74s = section74s
        if street_line is not None:
            self.street_line = street_line
        if private_street_notice is not None:
            self.private_street_notice = private_street_notice
        if non_compliances is not None:
            self.non_compliances = non_compliances
        if latest_comments is not None:
            self.latest_comments = latest_comments

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


        :return: The work_reference_number of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._work_reference_number

    @work_reference_number.setter
    def work_reference_number(self, work_reference_number):
        """Sets the work_reference_number of this WorkResponse.


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

        self._work_reference_number = work_reference_number

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


        :return: The workstream_prefix of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._workstream_prefix

    @workstream_prefix.setter
    def workstream_prefix(self, workstream_prefix):
        """Sets the workstream_prefix of this WorkResponse.


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

        self._workstream_prefix = workstream_prefix

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


        :return: The promoter_swa_code of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._promoter_swa_code

    @promoter_swa_code.setter
    def promoter_swa_code(self, promoter_swa_code):
        """Sets the promoter_swa_code of this WorkResponse.


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

        self._promoter_swa_code = promoter_swa_code

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


        :return: The promoter_organisation of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._promoter_organisation

    @promoter_organisation.setter
    def promoter_organisation(self, promoter_organisation):
        """Sets the promoter_organisation of this WorkResponse.


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

        self._promoter_organisation = promoter_organisation

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


        :return: The promoter_organisation_industry_type of this WorkResponse.  # noqa: E501
        :rtype: AllOfWorkResponsePromoterOrganisationIndustryType
        """
        return self._promoter_organisation_industry_type

    @promoter_organisation_industry_type.setter
    def promoter_organisation_industry_type(self, promoter_organisation_industry_type):
        """Sets the promoter_organisation_industry_type of this WorkResponse.


        :param promoter_organisation_industry_type: The promoter_organisation_industry_type of this WorkResponse.  # noqa: E501
        :type: AllOfWorkResponsePromoterOrganisationIndustryType
        """

        self._promoter_organisation_industry_type = promoter_organisation_industry_type

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


        :return: The promoter_organisation_industry_type_string of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._promoter_organisation_industry_type_string

    @promoter_organisation_industry_type_string.setter
    def promoter_organisation_industry_type_string(self, promoter_organisation_industry_type_string):
        """Sets the promoter_organisation_industry_type_string of this WorkResponse.


        :param promoter_organisation_industry_type_string: The promoter_organisation_industry_type_string of this WorkResponse.  # noqa: E501
        :type: str
        """

        self._promoter_organisation_industry_type_string = promoter_organisation_industry_type_string

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


        :return: The highway_authority_swa_code of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._highway_authority_swa_code

    @highway_authority_swa_code.setter
    def highway_authority_swa_code(self, highway_authority_swa_code):
        """Sets the highway_authority_swa_code of this WorkResponse.


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

        self._highway_authority_swa_code = highway_authority_swa_code

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


        :return: The highway_authority of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._highway_authority

    @highway_authority.setter
    def highway_authority(self, highway_authority):
        """Sets the highway_authority of this WorkResponse.


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

        self._highway_authority = highway_authority

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


        :return: The street_name of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._street_name

    @street_name.setter
    def street_name(self, street_name):
        """Sets the street_name of this WorkResponse.


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

        self._street_name = street_name

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


        :return: The town of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._town

    @town.setter
    def town(self, town):
        """Sets the town of this WorkResponse.


        :param town: The town of this WorkResponse.  # noqa: E501
        :type: str
        """

        self._town = town

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


        :return: The area_name of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._area_name

    @area_name.setter
    def area_name(self, area_name):
        """Sets the area_name of this WorkResponse.


        :param area_name: The area_name of this WorkResponse.  # noqa: E501
        :type: str
        """

        self._area_name = area_name

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


        :return: The road_category of this WorkResponse.  # noqa: E501
        :rtype: float
        """
        return self._road_category

    @road_category.setter
    def road_category(self, road_category):
        """Sets the road_category of this WorkResponse.


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

        self._road_category = road_category

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


        :return: The works_coordinates of this WorkResponse.  # noqa: E501
        :rtype: object
        """
        return self._works_coordinates

    @works_coordinates.setter
    def works_coordinates(self, works_coordinates):
        """Sets the works_coordinates of this WorkResponse.


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

        self._works_coordinates = works_coordinates

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


        :return: The usrn of this WorkResponse.  # noqa: E501
        :rtype: float
        """
        return self._usrn

    @usrn.setter
    def usrn(self, usrn):
        """Sets the usrn of this WorkResponse.


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

        self._usrn = usrn

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


        :return: The inspection_units of this WorkResponse.  # noqa: E501
        :rtype: float
        """
        return self._inspection_units

    @inspection_units.setter
    def inspection_units(self, inspection_units):
        """Sets the inspection_units of this WorkResponse.


        :param inspection_units: The inspection_units of this WorkResponse.  # noqa: E501
        :type: float
        """

        self._inspection_units = inspection_units

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


        :return: The work_status of this WorkResponse.  # noqa: E501
        :rtype: WorkStatusResponse
        """
        return self._work_status

    @work_status.setter
    def work_status(self, work_status):
        """Sets the work_status of this WorkResponse.


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

        self._work_status = work_status

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


        :return: The work_status_string of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._work_status_string

    @work_status_string.setter
    def work_status_string(self, work_status_string):
        """Sets the work_status_string of this WorkResponse.


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

        self._work_status_string = work_status_string

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


        :return: The works_location_description of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._works_location_description

    @works_location_description.setter
    def works_location_description(self, works_location_description):
        """Sets the works_location_description of this WorkResponse.


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

        self._works_location_description = works_location_description

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


        :return: The work_start_date of this WorkResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._work_start_date

    @work_start_date.setter
    def work_start_date(self, work_start_date):
        """Sets the work_start_date of this WorkResponse.


        :param work_start_date: The work_start_date of this WorkResponse.  # noqa: E501
        :type: datetime
        """

        self._work_start_date = work_start_date

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


        :return: The work_end_date of this WorkResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._work_end_date

    @work_end_date.setter
    def work_end_date(self, work_end_date):
        """Sets the work_end_date of this WorkResponse.


        :param work_end_date: The work_end_date of this WorkResponse.  # noqa: E501
        :type: datetime
        """

        self._work_end_date = work_end_date

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


        :return: The work_start_time of this WorkResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._work_start_time

    @work_start_time.setter
    def work_start_time(self, work_start_time):
        """Sets the work_start_time of this WorkResponse.


        :param work_start_time: The work_start_time of this WorkResponse.  # noqa: E501
        :type: datetime
        """

        self._work_start_time = work_start_time

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


        :return: The work_end_time of this WorkResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._work_end_time

    @work_end_time.setter
    def work_end_time(self, work_end_time):
        """Sets the work_end_time of this WorkResponse.


        :param work_end_time: The work_end_time of this WorkResponse.  # noqa: E501
        :type: datetime
        """

        self._work_end_time = work_end_time

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


        :return: The description_of_work of this WorkResponse.  # noqa: E501
        :rtype: str
        """
        return self._description_of_work

    @description_of_work.setter
    def description_of_work(self, description_of_work):
        """Sets the description_of_work of this WorkResponse.


        :param description_of_work: The description_of_work of this WorkResponse.  # noqa: E501
        :type: str
        """

        self._description_of_work = description_of_work

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


        :return: The active_permit of this WorkResponse.  # noqa: E501
        :rtype: AllOfWorkResponseActivePermit
        """
        return self._active_permit

    @active_permit.setter
    def active_permit(self, active_permit):
        """Sets the active_permit of this WorkResponse.


        :param active_permit: The active_permit of this WorkResponse.  # noqa: E501
        :type: AllOfWorkResponseActivePermit
        """

        self._active_permit = active_permit

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


        :return: The forward_plan of this WorkResponse.  # noqa: E501
        :rtype: AllOfWorkResponseForwardPlan
        """
        return self._forward_plan

    @forward_plan.setter
    def forward_plan(self, forward_plan):
        """Sets the forward_plan of this WorkResponse.


        :param forward_plan: The forward_plan of this WorkResponse.  # noqa: E501
        :type: AllOfWorkResponseForwardPlan
        """

        self._forward_plan = forward_plan

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


        :return: The permits of this WorkResponse.  # noqa: E501
        :rtype: list[PermitSummaryResponse]
        """
        return self._permits

    @permits.setter
    def permits(self, permits):
        """Sets the permits of this WorkResponse.


        :param permits: The permits of this WorkResponse.  # noqa: E501
        :type: list[PermitSummaryResponse]
        """

        self._permits = permits

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


        :return: The history of this WorkResponse.  # noqa: E501
        :rtype: list[WorkHistorySummaryResponse]
        """
        return self._history

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


        :param history: The history of this WorkResponse.  # noqa: E501
        :type: list[WorkHistorySummaryResponse]
        """
        if history is None:
            raise ValueError("Invalid value for `history`, must not be `None`")  # noqa: E501

        self._history = history

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


        :return: The sites of this WorkResponse.  # noqa: E501
        :rtype: list[SiteSummaryResponse]
        """
        return self._sites

    @sites.setter
    def sites(self, sites):
        """Sets the sites of this WorkResponse.


        :param sites: The sites of this WorkResponse.  # noqa: E501
        :type: list[SiteSummaryResponse]
        """

        self._sites = sites

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


        :return: The inspections of this WorkResponse.  # noqa: E501
        :rtype: list[InspectionSummaryResponse]
        """
        return self._inspections

    @inspections.setter
    def inspections(self, inspections):
        """Sets the inspections of this WorkResponse.


        :param inspections: The inspections of this WorkResponse.  # noqa: E501
        :type: list[InspectionSummaryResponse]
        """

        self._inspections = inspections

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


        :return: The fpns of this WorkResponse.  # noqa: E501
        :rtype: list[FPNSummaryResponse]
        """
        return self._fpns

    @fpns.setter
    def fpns(self, fpns):
        """Sets the fpns of this WorkResponse.


        :param fpns: The fpns of this WorkResponse.  # noqa: E501
        :type: list[FPNSummaryResponse]
        """

        self._fpns = fpns

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


        :return: The section_81 of this WorkResponse.  # noqa: E501
        :rtype: AllOfWorkResponseSection81
        """
        return self._section_81

    @section_81.setter
    def section_81(self, section_81):
        """Sets the section_81 of this WorkResponse.


        :param section_81: The section_81 of this WorkResponse.  # noqa: E501
        :type: AllOfWorkResponseSection81
        """

        self._section_81 = section_81

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


        :return: The files of this WorkResponse.  # noqa: E501
        :rtype: list[FileResponse]
        """
        return self._files

    @files.setter
    def files(self, files):
        """Sets the files of this WorkResponse.


        :param files: The files of this WorkResponse.  # noqa: E501
        :type: list[FileResponse]
        """

        self._files = files

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


        :return: The pbi_sample_inspections of this WorkResponse.  # noqa: E501
        :rtype: list[PbiSampleInspectionSummaryResponse]
        """
        return self._pbi_sample_inspections

    @pbi_sample_inspections.setter
    def pbi_sample_inspections(self, pbi_sample_inspections):
        """Sets the pbi_sample_inspections of this WorkResponse.


        :param pbi_sample_inspections: The pbi_sample_inspections of this WorkResponse.  # noqa: E501
        :type: list[PbiSampleInspectionSummaryResponse]
        """

        self._pbi_sample_inspections = pbi_sample_inspections

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


        :return: The number_of_sites of this WorkResponse.  # noqa: E501
        :rtype: float
        """
        return self._number_of_sites

    @number_of_sites.setter
    def number_of_sites(self, number_of_sites):
        """Sets the number_of_sites of this WorkResponse.


        :param number_of_sites: The number_of_sites of this WorkResponse.  # noqa: E501
        :type: float
        """

        self._number_of_sites = number_of_sites

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


        :return: The section74s of this WorkResponse.  # noqa: E501
        :rtype: list[Section74SummaryResponse]
        """
        return self._section74s

    @section74s.setter
    def section74s(self, section74s):
        """Sets the section74s of this WorkResponse.


        :param section74s: The section74s of this WorkResponse.  # noqa: E501
        :type: list[Section74SummaryResponse]
        """

        self._section74s = section74s

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


        :return: The street_line of this WorkResponse.  # noqa: E501
        :rtype: object
        """
        return self._street_line

    @street_line.setter
    def street_line(self, street_line):
        """Sets the street_line of this WorkResponse.


        :param street_line: The street_line of this WorkResponse.  # noqa: E501
        :type: object
        """

        self._street_line = street_line

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


        :return: The private_street_notice of this WorkResponse.  # noqa: E501
        :rtype: AllOfWorkResponsePrivateStreetNotice
        """
        return self._private_street_notice

    @private_street_notice.setter
    def private_street_notice(self, private_street_notice):
        """Sets the private_street_notice of this WorkResponse.


        :param private_street_notice: The private_street_notice of this WorkResponse.  # noqa: E501
        :type: AllOfWorkResponsePrivateStreetNotice
        """

        self._private_street_notice = private_street_notice

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


        :return: The non_compliances of this WorkResponse.  # noqa: E501
        :rtype: list[NonComplianceSummaryResponse]
        """
        return self._non_compliances

    @non_compliances.setter
    def non_compliances(self, non_compliances):
        """Sets the non_compliances of this WorkResponse.


        :param non_compliances: The non_compliances of this WorkResponse.  # noqa: E501
        :type: list[NonComplianceSummaryResponse]
        """

        self._non_compliances = non_compliances

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


        :return: The latest_comments of this WorkResponse.  # noqa: E501
        :rtype: list[CommentResponse]
        """
        return self._latest_comments

    @latest_comments.setter
    def latest_comments(self, latest_comments):
        """Sets the latest_comments of this WorkResponse.


        :param latest_comments: The latest_comments of this WorkResponse.  # noqa: E501
        :type: list[CommentResponse]
        """

        self._latest_comments = latest_comments

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

        return self.__dict__ == other.__dict__

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