# 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 PermitResponse(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 = {
        'permit_reference_number': 'str',
        'proposed_start_date': 'datetime',
        'proposed_end_date': 'datetime',
        'actual_start_date': 'datetime',
        'actual_stop_date': 'datetime',
        'permit_status': 'PermitStatusResponse',
        'permit_status_string': 'str',
        'work_category': 'WorkCategoryResponseEnum',
        'work_category_string': 'str',
        'work_reference_number': 'str',
        'promoter_organisation': 'str',
        'promoter_swa_code': 'str',
        'promoter_contact_details': 'str',
        'primary_contact': 'str',
        'primary_contact_number': 'str',
        'primary_contact_email': 'str',
        'secondary_contact': 'str',
        'secondary_contact_number': 'str',
        'secondary_contact_email': 'str',
        'proposed_start_time': 'datetime',
        'proposed_end_time': 'datetime',
        'reasonable_period_end_date': 'datetime',
        'calendar_day_duration': 'float',
        'working_day_duration': 'float',
        'description_of_work': 'str',
        'excavation': 'bool',
        'project_reference_number': 'str',
        'traffic_management_plan': 'bool',
        'lane_rental_applicable': 'bool',
        'permit_conditions': 'list[PermitConditionResponse]',
        'street_name': 'str',
        'town': 'str',
        'area_name': 'str',
        'usrn': 'float',
        'highway_authority': 'str',
        'highway_authority_swa_code': 'str',
        'road_category': 'float',
        'works_location_description': 'str',
        'works_coordinates': 'object',
        'collaborative_working': 'bool',
        'collaboration_details': 'str',
        'collaborative_works': 'str',
        'date_created': 'datetime',
        'date_modified': 'datetime',
        'deadline_date': 'datetime',
        'assessment_comments': 'str',
        'reasons_for_refusal': 'list[ReasonForRefusalResponse]',
        'reasons_for_refusal_string': 'list[str]',
        'activity_type': 'ActivityTypeResponse',
        'activity_type_string': 'str',
        'traffic_management_type': 'TrafficManagementTypeResponse',
        'traffic_management_type_string': 'str',
        'application_type': 'ApplicationTypeResponse',
        'application_type_string': 'str',
        'collaboration_type': 'AllOfPermitResponseCollaborationType',
        'collaboration_type_string': 'str',
        'location_types': 'list[LocationTypeResponse]',
        'location_types_string': 'list[str]',
        'assessment_status': 'AllOfPermitResponseAssessmentStatus',
        'assessment_status_string': 'str',
        'files': 'list[FileSummaryResponse]',
        'permit_asds': 'list[PermitASDResponse]',
        'permit_not_selected_asds': 'list[PermitASDResponse]',
        'assessment_discount': 'float',
        'assessment_discount_reason': 'str',
        'is_ttro_required': 'bool',
        'immediate_risk': 'bool',
        'is_early_start': 'bool',
        'is_deemed': 'bool',
        'early_start_pre_approval': 'bool',
        'pre_approval_details': 'str',
        'pre_approval_authoriser': 'str',
        'early_start_reason': 'str',
        'additional_info': 'str',
        'permit_alterations': 'list[PermitAlterationSummaryResponse]',
        'work_type': 'WorkTypeResponse',
        'work_type_string': 'str',
        'revoke_reason': 'str',
        'sliding_end_date_candidate': 'bool',
        'validity_period_end_date': 'datetime',
        'final_reinstatement': 'bool',
        'workstream_prefix': 'str',
        'close_footway': 'CloseFootwayResponse',
        'close_footway_string': 'str',
        'lane_rental_assessment_outcome': 'AllOfPermitResponseLaneRentalAssessmentOutcome',
        'lane_rental_assessment_outcome_string': 'str',
        'lane_rental_assessment_additional_details': 'str',
        'lane_rental_assessment_charge_band': 'AllOfPermitResponseLaneRentalAssessmentChargeBand',
        'lane_rental_assessment_charge_band_string': 'str',
        'lane_rental_assessment_chargeable_days': 'float',
        'lane_rental_assessment_charges_agreed': 'bool',
        'is_lane_rental': 'bool',
        'pending_change_details': 'str',
        'work_status': 'WorkStatusResponse',
        'work_status_string': 'str',
        'hs2_in_act_limits': 'bool',
        'hs2_consultation_requested_response_date': 'datetime',
        'hs2_highway_exemption': 'AllOfPermitResponseHs2HighwayExemption',
        'hs2_highway_exemption_string': 'str',
        'hs2_is_consultation': 'bool',
        'hs2_is_consent': 'bool',
        'hs2_highway_emails': 'list[str]',
        'hs2_acknowledged': 'bool',
        'hs2_acknowledged_date_time': 'datetime',
        'additional_contact': 'str',
        'additional_contact_number': 'str',
        'additional_contact_email': 'str',
        'ever_modification_requested': 'bool',
        'is_duration_challenged': 'bool',
        'is_covid_19_response': 'bool',
        'hs2_additional_usrns': 'list[float]',
        'excavation_carried_out': 'bool',
        'linked_section_81': 'AllOfPermitResponseLinkedSection81',
        'duration_challenge_review_status': 'AllOfPermitResponseDurationChallengeReviewStatus',
        'duration_challenge_review_status_string': 'str',
        'duration_challenge_reason_for_non_acceptance': 'str',
        'duration_challenge_review_update_date': 'datetime',
        'duration_challenge_non_acceptance_response_status': 'AllOfPermitResponseDurationChallengeNonAcceptanceResponseStatus',
        'duration_challenge_non_acceptance_response_status_string': 'str',
        'duration_challenge_non_acceptance_response_details': 'str',
        'duration_challenge_non_acceptance_response_update_date': 'datetime',
        'duration_challenge_non_acceptance_response_new_reasonable_period_end_date': 'datetime',
        'duration_challenge_non_acceptance_response_old_reasonable_period_end_date': 'datetime',
        'duration_challenge_follow_up_review_complete': 'bool',
        'emergency_contact_name': 'str',
        'emergency_contact_number': 'str',
        'current_traffic_management_type': 'AllOfPermitResponseCurrentTrafficManagementType',
        'current_traffic_management_type_string': 'str',
        'current_traffic_management_update_date': 'datetime',
        'current_traffic_management_emergency_contact_name': 'str',
        'current_traffic_management_emergency_contact_number': 'str',
        'close_footpath': 'CloseFootpathResponse',
        'close_footpath_string': 'str',
        'ancillary_informations': 'list[AncillaryInfoSummaryResponse]',
        'street_line': 'object',
        'reinstatement_registration_due_date': 'datetime',
        'usrn_contains_hazardous_material': 'bool',
        'permit_cancellation_reason': 'AllOfPermitResponsePermitCancellationReason',
        'permit_cancellation_reason_string': 'str',
        'permit_cancellation_reason_other': 'str',
        'interested_parties': 'list[InterestedParty]'
    }

    attribute_map = {
        'permit_reference_number': 'permit_reference_number',
        'proposed_start_date': 'proposed_start_date',
        'proposed_end_date': 'proposed_end_date',
        'actual_start_date': 'actual_start_date',
        'actual_stop_date': 'actual_stop_date',
        'permit_status': 'permit_status',
        'permit_status_string': 'permit_status_string',
        'work_category': 'work_category',
        'work_category_string': 'work_category_string',
        'work_reference_number': 'work_reference_number',
        'promoter_organisation': 'promoter_organisation',
        'promoter_swa_code': 'promoter_swa_code',
        'promoter_contact_details': 'promoter_contact_details',
        'primary_contact': 'primary_contact',
        'primary_contact_number': 'primary_contact_number',
        'primary_contact_email': 'primary_contact_email',
        'secondary_contact': 'secondary_contact',
        'secondary_contact_number': 'secondary_contact_number',
        'secondary_contact_email': 'secondary_contact_email',
        'proposed_start_time': 'proposed_start_time',
        'proposed_end_time': 'proposed_end_time',
        'reasonable_period_end_date': 'reasonable_period_end_date',
        'calendar_day_duration': 'calendar_day_duration',
        'working_day_duration': 'working_day_duration',
        'description_of_work': 'description_of_work',
        'excavation': 'excavation',
        'project_reference_number': 'project_reference_number',
        'traffic_management_plan': 'traffic_management_plan',
        'lane_rental_applicable': 'lane_rental_applicable',
        'permit_conditions': 'permit_conditions',
        'street_name': 'street_name',
        'town': 'town',
        'area_name': 'area_name',
        'usrn': 'usrn',
        'highway_authority': 'highway_authority',
        'highway_authority_swa_code': 'highway_authority_swa_code',
        'road_category': 'road_category',
        'works_location_description': 'works_location_description',
        'works_coordinates': 'works_coordinates',
        'collaborative_working': 'collaborative_working',
        'collaboration_details': 'collaboration_details',
        'collaborative_works': 'collaborative_works',
        'date_created': 'date_created',
        'date_modified': 'date_modified',
        'deadline_date': 'deadline_date',
        'assessment_comments': 'assessment_comments',
        'reasons_for_refusal': 'reasons_for_refusal',
        'reasons_for_refusal_string': 'reasons_for_refusal_string',
        'activity_type': 'activity_type',
        'activity_type_string': 'activity_type_string',
        'traffic_management_type': 'traffic_management_type',
        'traffic_management_type_string': 'traffic_management_type_string',
        'application_type': 'application_type',
        'application_type_string': 'application_type_string',
        'collaboration_type': 'collaboration_type',
        'collaboration_type_string': 'collaboration_type_string',
        'location_types': 'location_types',
        'location_types_string': 'location_types_string',
        'assessment_status': 'assessment_status',
        'assessment_status_string': 'assessment_status_string',
        'files': 'files',
        'permit_asds': 'permit_asds',
        'permit_not_selected_asds': 'permit_not_selected_asds',
        'assessment_discount': 'assessment_discount',
        'assessment_discount_reason': 'assessment_discount_reason',
        'is_ttro_required': 'is_ttro_required',
        'immediate_risk': 'immediate_risk',
        'is_early_start': 'is_early_start',
        'is_deemed': 'is_deemed',
        'early_start_pre_approval': 'early_start_pre_approval',
        'pre_approval_details': 'pre_approval_details',
        'pre_approval_authoriser': 'pre_approval_authoriser',
        'early_start_reason': 'early_start_reason',
        'additional_info': 'additional_info',
        'permit_alterations': 'permit_alterations',
        'work_type': 'work_type',
        'work_type_string': 'work_type_string',
        'revoke_reason': 'revoke_reason',
        'sliding_end_date_candidate': 'sliding_end_date_candidate',
        'validity_period_end_date': 'validity_period_end_date',
        'final_reinstatement': 'final_reinstatement',
        'workstream_prefix': 'workstream_prefix',
        'close_footway': 'close_footway',
        'close_footway_string': 'close_footway_string',
        'lane_rental_assessment_outcome': 'lane_rental_assessment_outcome',
        'lane_rental_assessment_outcome_string': 'lane_rental_assessment_outcome_string',
        'lane_rental_assessment_additional_details': 'lane_rental_assessment_additional_details',
        'lane_rental_assessment_charge_band': 'lane_rental_assessment_charge_band',
        'lane_rental_assessment_charge_band_string': 'lane_rental_assessment_charge_band_string',
        'lane_rental_assessment_chargeable_days': 'lane_rental_assessment_chargeable_days',
        'lane_rental_assessment_charges_agreed': 'lane_rental_assessment_charges_agreed',
        'is_lane_rental': 'is_lane_rental',
        'pending_change_details': 'pending_change_details',
        'work_status': 'work_status',
        'work_status_string': 'work_status_string',
        'hs2_in_act_limits': 'hs2_in_act_limits',
        'hs2_consultation_requested_response_date': 'hs2_consultation_requested_response_date',
        'hs2_highway_exemption': 'hs2_highway_exemption',
        'hs2_highway_exemption_string': 'hs2_highway_exemption_string',
        'hs2_is_consultation': 'hs2_is_consultation',
        'hs2_is_consent': 'hs2_is_consent',
        'hs2_highway_emails': 'hs2_highway_emails',
        'hs2_acknowledged': 'hs2_acknowledged',
        'hs2_acknowledged_date_time': 'hs2_acknowledged_date_time',
        'additional_contact': 'additional_contact',
        'additional_contact_number': 'additional_contact_number',
        'additional_contact_email': 'additional_contact_email',
        'ever_modification_requested': 'ever_modification_requested',
        'is_duration_challenged': 'is_duration_challenged',
        'is_covid_19_response': 'is_covid_19_response',
        'hs2_additional_usrns': 'hs2_additional_usrns',
        'excavation_carried_out': 'excavation_carried_out',
        'linked_section_81': 'linked_section_81',
        'duration_challenge_review_status': 'duration_challenge_review_status',
        'duration_challenge_review_status_string': 'duration_challenge_review_status_string',
        'duration_challenge_reason_for_non_acceptance': 'duration_challenge_reason_for_non_acceptance',
        'duration_challenge_review_update_date': 'duration_challenge_review_update_date',
        'duration_challenge_non_acceptance_response_status': 'duration_challenge_non_acceptance_response_status',
        'duration_challenge_non_acceptance_response_status_string': 'duration_challenge_non_acceptance_response_status_string',
        'duration_challenge_non_acceptance_response_details': 'duration_challenge_non_acceptance_response_details',
        'duration_challenge_non_acceptance_response_update_date': 'duration_challenge_non_acceptance_response_update_date',
        'duration_challenge_non_acceptance_response_new_reasonable_period_end_date': 'duration_challenge_non_acceptance_response_new_reasonable_period_end_date',
        'duration_challenge_non_acceptance_response_old_reasonable_period_end_date': 'duration_challenge_non_acceptance_response_old_reasonable_period_end_date',
        'duration_challenge_follow_up_review_complete': 'duration_challenge_follow_up_review_complete',
        'emergency_contact_name': 'emergency_contact_name',
        'emergency_contact_number': 'emergency_contact_number',
        'current_traffic_management_type': 'current_traffic_management_type',
        'current_traffic_management_type_string': 'current_traffic_management_type_string',
        'current_traffic_management_update_date': 'current_traffic_management_update_date',
        'current_traffic_management_emergency_contact_name': 'current_traffic_management_emergency_contact_name',
        'current_traffic_management_emergency_contact_number': 'current_traffic_management_emergency_contact_number',
        'close_footpath': 'close_footpath',
        'close_footpath_string': 'close_footpath_string',
        'ancillary_informations': 'ancillary_informations',
        'street_line': 'street_line',
        'reinstatement_registration_due_date': 'reinstatement_registration_due_date',
        'usrn_contains_hazardous_material': 'usrn_contains_hazardous_material',
        'permit_cancellation_reason': 'permit_cancellation_reason',
        'permit_cancellation_reason_string': 'permit_cancellation_reason_string',
        'permit_cancellation_reason_other': 'permit_cancellation_reason_other',
        'interested_parties': 'interested_parties'
    }

    def __init__(self, permit_reference_number=None, proposed_start_date=None, proposed_end_date=None, actual_start_date=None, actual_stop_date=None, permit_status=None, permit_status_string=None, work_category=None, work_category_string=None, work_reference_number=None, promoter_organisation=None, promoter_swa_code=None, promoter_contact_details=None, primary_contact=None, primary_contact_number=None, primary_contact_email=None, secondary_contact=None, secondary_contact_number=None, secondary_contact_email=None, proposed_start_time=None, proposed_end_time=None, reasonable_period_end_date=None, calendar_day_duration=None, working_day_duration=None, description_of_work=None, excavation=None, project_reference_number=None, traffic_management_plan=None, lane_rental_applicable=None, permit_conditions=None, street_name=None, town=None, area_name=None, usrn=None, highway_authority=None, highway_authority_swa_code=None, road_category=None, works_location_description=None, works_coordinates=None, collaborative_working=None, collaboration_details=None, collaborative_works=None, date_created=None, date_modified=None, deadline_date=None, assessment_comments=None, reasons_for_refusal=None, reasons_for_refusal_string=None, activity_type=None, activity_type_string=None, traffic_management_type=None, traffic_management_type_string=None, application_type=None, application_type_string=None, collaboration_type=None, collaboration_type_string=None, location_types=None, location_types_string=None, assessment_status=None, assessment_status_string=None, files=None, permit_asds=None, permit_not_selected_asds=None, assessment_discount=None, assessment_discount_reason=None, is_ttro_required=None, immediate_risk=None, is_early_start=None, is_deemed=None, early_start_pre_approval=None, pre_approval_details=None, pre_approval_authoriser=None, early_start_reason=None, additional_info=None, permit_alterations=None, work_type=None, work_type_string=None, revoke_reason=None, sliding_end_date_candidate=None, validity_period_end_date=None, final_reinstatement=None, workstream_prefix=None, close_footway=None, close_footway_string=None, lane_rental_assessment_outcome=None, lane_rental_assessment_outcome_string=None, lane_rental_assessment_additional_details=None, lane_rental_assessment_charge_band=None, lane_rental_assessment_charge_band_string=None, lane_rental_assessment_chargeable_days=None, lane_rental_assessment_charges_agreed=None, is_lane_rental=None, pending_change_details=None, work_status=None, work_status_string=None, hs2_in_act_limits=None, hs2_consultation_requested_response_date=None, hs2_highway_exemption=None, hs2_highway_exemption_string=None, hs2_is_consultation=None, hs2_is_consent=None, hs2_highway_emails=None, hs2_acknowledged=None, hs2_acknowledged_date_time=None, additional_contact=None, additional_contact_number=None, additional_contact_email=None, ever_modification_requested=None, is_duration_challenged=None, is_covid_19_response=None, hs2_additional_usrns=None, excavation_carried_out=None, linked_section_81=None, duration_challenge_review_status=None, duration_challenge_review_status_string=None, duration_challenge_reason_for_non_acceptance=None, duration_challenge_review_update_date=None, duration_challenge_non_acceptance_response_status=None, duration_challenge_non_acceptance_response_status_string=None, duration_challenge_non_acceptance_response_details=None, duration_challenge_non_acceptance_response_update_date=None, duration_challenge_non_acceptance_response_new_reasonable_period_end_date=None, duration_challenge_non_acceptance_response_old_reasonable_period_end_date=None, duration_challenge_follow_up_review_complete=None, emergency_contact_name=None, emergency_contact_number=None, current_traffic_management_type=None, current_traffic_management_type_string=None, current_traffic_management_update_date=None, current_traffic_management_emergency_contact_name=None, current_traffic_management_emergency_contact_number=None, close_footpath=None, close_footpath_string=None, ancillary_informations=None, street_line=None, reinstatement_registration_due_date=None, usrn_contains_hazardous_material=None, permit_cancellation_reason=None, permit_cancellation_reason_string=None, permit_cancellation_reason_other=None, interested_parties=None):  # noqa: E501
        """PermitResponse - a model defined in Swagger"""  # noqa: E501
        self._permit_reference_number = None
        self._proposed_start_date = None
        self._proposed_end_date = None
        self._actual_start_date = None
        self._actual_stop_date = None
        self._permit_status = None
        self._permit_status_string = None
        self._work_category = None
        self._work_category_string = None
        self._work_reference_number = None
        self._promoter_organisation = None
        self._promoter_swa_code = None
        self._promoter_contact_details = None
        self._primary_contact = None
        self._primary_contact_number = None
        self._primary_contact_email = None
        self._secondary_contact = None
        self._secondary_contact_number = None
        self._secondary_contact_email = None
        self._proposed_start_time = None
        self._proposed_end_time = None
        self._reasonable_period_end_date = None
        self._calendar_day_duration = None
        self._working_day_duration = None
        self._description_of_work = None
        self._excavation = None
        self._project_reference_number = None
        self._traffic_management_plan = None
        self._lane_rental_applicable = None
        self._permit_conditions = None
        self._street_name = None
        self._town = None
        self._area_name = None
        self._usrn = None
        self._highway_authority = None
        self._highway_authority_swa_code = None
        self._road_category = None
        self._works_location_description = None
        self._works_coordinates = None
        self._collaborative_working = None
        self._collaboration_details = None
        self._collaborative_works = None
        self._date_created = None
        self._date_modified = None
        self._deadline_date = None
        self._assessment_comments = None
        self._reasons_for_refusal = None
        self._reasons_for_refusal_string = None
        self._activity_type = None
        self._activity_type_string = None
        self._traffic_management_type = None
        self._traffic_management_type_string = None
        self._application_type = None
        self._application_type_string = None
        self._collaboration_type = None
        self._collaboration_type_string = None
        self._location_types = None
        self._location_types_string = None
        self._assessment_status = None
        self._assessment_status_string = None
        self._files = None
        self._permit_asds = None
        self._permit_not_selected_asds = None
        self._assessment_discount = None
        self._assessment_discount_reason = None
        self._is_ttro_required = None
        self._immediate_risk = None
        self._is_early_start = None
        self._is_deemed = None
        self._early_start_pre_approval = None
        self._pre_approval_details = None
        self._pre_approval_authoriser = None
        self._early_start_reason = None
        self._additional_info = None
        self._permit_alterations = None
        self._work_type = None
        self._work_type_string = None
        self._revoke_reason = None
        self._sliding_end_date_candidate = None
        self._validity_period_end_date = None
        self._final_reinstatement = None
        self._workstream_prefix = None
        self._close_footway = None
        self._close_footway_string = None
        self._lane_rental_assessment_outcome = None
        self._lane_rental_assessment_outcome_string = None
        self._lane_rental_assessment_additional_details = None
        self._lane_rental_assessment_charge_band = None
        self._lane_rental_assessment_charge_band_string = None
        self._lane_rental_assessment_chargeable_days = None
        self._lane_rental_assessment_charges_agreed = None
        self._is_lane_rental = None
        self._pending_change_details = None
        self._work_status = None
        self._work_status_string = None
        self._hs2_in_act_limits = None
        self._hs2_consultation_requested_response_date = None
        self._hs2_highway_exemption = None
        self._hs2_highway_exemption_string = None
        self._hs2_is_consultation = None
        self._hs2_is_consent = None
        self._hs2_highway_emails = None
        self._hs2_acknowledged = None
        self._hs2_acknowledged_date_time = None
        self._additional_contact = None
        self._additional_contact_number = None
        self._additional_contact_email = None
        self._ever_modification_requested = None
        self._is_duration_challenged = None
        self._is_covid_19_response = None
        self._hs2_additional_usrns = None
        self._excavation_carried_out = None
        self._linked_section_81 = None
        self._duration_challenge_review_status = None
        self._duration_challenge_review_status_string = None
        self._duration_challenge_reason_for_non_acceptance = None
        self._duration_challenge_review_update_date = None
        self._duration_challenge_non_acceptance_response_status = None
        self._duration_challenge_non_acceptance_response_status_string = None
        self._duration_challenge_non_acceptance_response_details = None
        self._duration_challenge_non_acceptance_response_update_date = None
        self._duration_challenge_non_acceptance_response_new_reasonable_period_end_date = None
        self._duration_challenge_non_acceptance_response_old_reasonable_period_end_date = None
        self._duration_challenge_follow_up_review_complete = None
        self._emergency_contact_name = None
        self._emergency_contact_number = None
        self._current_traffic_management_type = None
        self._current_traffic_management_type_string = None
        self._current_traffic_management_update_date = None
        self._current_traffic_management_emergency_contact_name = None
        self._current_traffic_management_emergency_contact_number = None
        self._close_footpath = None
        self._close_footpath_string = None
        self._ancillary_informations = None
        self._street_line = None
        self._reinstatement_registration_due_date = None
        self._usrn_contains_hazardous_material = None
        self._permit_cancellation_reason = None
        self._permit_cancellation_reason_string = None
        self._permit_cancellation_reason_other = None
        self._interested_parties = None
        self.discriminator = None
        self.permit_reference_number = permit_reference_number
        self.proposed_start_date = proposed_start_date
        self.proposed_end_date = proposed_end_date
        if actual_start_date is not None:
            self.actual_start_date = actual_start_date
        if actual_stop_date is not None:
            self.actual_stop_date = actual_stop_date
        self.permit_status = permit_status
        self.permit_status_string = permit_status_string
        self.work_category = work_category
        self.work_category_string = work_category_string
        self.work_reference_number = work_reference_number
        self.promoter_organisation = promoter_organisation
        self.promoter_swa_code = promoter_swa_code
        self.promoter_contact_details = promoter_contact_details
        if primary_contact is not None:
            self.primary_contact = primary_contact
        if primary_contact_number is not None:
            self.primary_contact_number = primary_contact_number
        if primary_contact_email is not None:
            self.primary_contact_email = primary_contact_email
        self.secondary_contact = secondary_contact
        self.secondary_contact_number = secondary_contact_number
        if secondary_contact_email is not None:
            self.secondary_contact_email = secondary_contact_email
        if proposed_start_time is not None:
            self.proposed_start_time = proposed_start_time
        if proposed_end_time is not None:
            self.proposed_end_time = proposed_end_time
        self.reasonable_period_end_date = reasonable_period_end_date
        self.calendar_day_duration = calendar_day_duration
        self.working_day_duration = working_day_duration
        self.description_of_work = description_of_work
        self.excavation = excavation
        if project_reference_number is not None:
            self.project_reference_number = project_reference_number
        self.traffic_management_plan = traffic_management_plan
        self.lane_rental_applicable = lane_rental_applicable
        if permit_conditions is not None:
            self.permit_conditions = permit_conditions
        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.usrn = usrn
        self.highway_authority = highway_authority
        self.highway_authority_swa_code = highway_authority_swa_code
        self.road_category = road_category
        self.works_location_description = works_location_description
        self.works_coordinates = works_coordinates
        self.collaborative_working = collaborative_working
        if collaboration_details is not None:
            self.collaboration_details = collaboration_details
        if collaborative_works is not None:
            self.collaborative_works = collaborative_works
        self.date_created = date_created
        self.date_modified = date_modified
        self.deadline_date = deadline_date
        if assessment_comments is not None:
            self.assessment_comments = assessment_comments
        if reasons_for_refusal is not None:
            self.reasons_for_refusal = reasons_for_refusal
        if reasons_for_refusal_string is not None:
            self.reasons_for_refusal_string = reasons_for_refusal_string
        self.activity_type = activity_type
        self.activity_type_string = activity_type_string
        self.traffic_management_type = traffic_management_type
        self.traffic_management_type_string = traffic_management_type_string
        self.application_type = application_type
        self.application_type_string = application_type_string
        if collaboration_type is not None:
            self.collaboration_type = collaboration_type
        if collaboration_type_string is not None:
            self.collaboration_type_string = collaboration_type_string
        self.location_types = location_types
        self.location_types_string = location_types_string
        if assessment_status is not None:
            self.assessment_status = assessment_status
        if assessment_status_string is not None:
            self.assessment_status_string = assessment_status_string
        if files is not None:
            self.files = files
        self.permit_asds = permit_asds
        self.permit_not_selected_asds = permit_not_selected_asds
        if assessment_discount is not None:
            self.assessment_discount = assessment_discount
        if assessment_discount_reason is not None:
            self.assessment_discount_reason = assessment_discount_reason
        if is_ttro_required is not None:
            self.is_ttro_required = is_ttro_required
        if immediate_risk is not None:
            self.immediate_risk = immediate_risk
        self.is_early_start = is_early_start
        self.is_deemed = is_deemed
        if early_start_pre_approval is not None:
            self.early_start_pre_approval = early_start_pre_approval
        if pre_approval_details is not None:
            self.pre_approval_details = pre_approval_details
        if pre_approval_authoriser is not None:
            self.pre_approval_authoriser = pre_approval_authoriser
        if early_start_reason is not None:
            self.early_start_reason = early_start_reason
        if additional_info is not None:
            self.additional_info = additional_info
        if permit_alterations is not None:
            self.permit_alterations = permit_alterations
        self.work_type = work_type
        self.work_type_string = work_type_string
        if revoke_reason is not None:
            self.revoke_reason = revoke_reason
        self.sliding_end_date_candidate = sliding_end_date_candidate
        self.validity_period_end_date = validity_period_end_date
        self.final_reinstatement = final_reinstatement
        self.workstream_prefix = workstream_prefix
        self.close_footway = close_footway
        self.close_footway_string = close_footway_string
        if lane_rental_assessment_outcome is not None:
            self.lane_rental_assessment_outcome = lane_rental_assessment_outcome
        if lane_rental_assessment_outcome_string is not None:
            self.lane_rental_assessment_outcome_string = lane_rental_assessment_outcome_string
        if lane_rental_assessment_additional_details is not None:
            self.lane_rental_assessment_additional_details = lane_rental_assessment_additional_details
        if lane_rental_assessment_charge_band is not None:
            self.lane_rental_assessment_charge_band = lane_rental_assessment_charge_band
        if lane_rental_assessment_charge_band_string is not None:
            self.lane_rental_assessment_charge_band_string = lane_rental_assessment_charge_band_string
        if lane_rental_assessment_chargeable_days is not None:
            self.lane_rental_assessment_chargeable_days = lane_rental_assessment_chargeable_days
        if lane_rental_assessment_charges_agreed is not None:
            self.lane_rental_assessment_charges_agreed = lane_rental_assessment_charges_agreed
        self.is_lane_rental = is_lane_rental
        if pending_change_details is not None:
            self.pending_change_details = pending_change_details
        self.work_status = work_status
        self.work_status_string = work_status_string
        if hs2_in_act_limits is not None:
            self.hs2_in_act_limits = hs2_in_act_limits
        if hs2_consultation_requested_response_date is not None:
            self.hs2_consultation_requested_response_date = hs2_consultation_requested_response_date
        if hs2_highway_exemption is not None:
            self.hs2_highway_exemption = hs2_highway_exemption
        if hs2_highway_exemption_string is not None:
            self.hs2_highway_exemption_string = hs2_highway_exemption_string
        if hs2_is_consultation is not None:
            self.hs2_is_consultation = hs2_is_consultation
        if hs2_is_consent is not None:
            self.hs2_is_consent = hs2_is_consent
        if hs2_highway_emails is not None:
            self.hs2_highway_emails = hs2_highway_emails
        if hs2_acknowledged is not None:
            self.hs2_acknowledged = hs2_acknowledged
        if hs2_acknowledged_date_time is not None:
            self.hs2_acknowledged_date_time = hs2_acknowledged_date_time
        if additional_contact is not None:
            self.additional_contact = additional_contact
        if additional_contact_number is not None:
            self.additional_contact_number = additional_contact_number
        if additional_contact_email is not None:
            self.additional_contact_email = additional_contact_email
        self.ever_modification_requested = ever_modification_requested
        if is_duration_challenged is not None:
            self.is_duration_challenged = is_duration_challenged
        if is_covid_19_response is not None:
            self.is_covid_19_response = is_covid_19_response
        if hs2_additional_usrns is not None:
            self.hs2_additional_usrns = hs2_additional_usrns
        self.excavation_carried_out = excavation_carried_out
        if linked_section_81 is not None:
            self.linked_section_81 = linked_section_81
        if duration_challenge_review_status is not None:
            self.duration_challenge_review_status = duration_challenge_review_status
        if duration_challenge_review_status_string is not None:
            self.duration_challenge_review_status_string = duration_challenge_review_status_string
        if duration_challenge_reason_for_non_acceptance is not None:
            self.duration_challenge_reason_for_non_acceptance = duration_challenge_reason_for_non_acceptance
        if duration_challenge_review_update_date is not None:
            self.duration_challenge_review_update_date = duration_challenge_review_update_date
        if duration_challenge_non_acceptance_response_status is not None:
            self.duration_challenge_non_acceptance_response_status = duration_challenge_non_acceptance_response_status
        if duration_challenge_non_acceptance_response_status_string is not None:
            self.duration_challenge_non_acceptance_response_status_string = duration_challenge_non_acceptance_response_status_string
        if duration_challenge_non_acceptance_response_details is not None:
            self.duration_challenge_non_acceptance_response_details = duration_challenge_non_acceptance_response_details
        if duration_challenge_non_acceptance_response_update_date is not None:
            self.duration_challenge_non_acceptance_response_update_date = duration_challenge_non_acceptance_response_update_date
        if duration_challenge_non_acceptance_response_new_reasonable_period_end_date is not None:
            self.duration_challenge_non_acceptance_response_new_reasonable_period_end_date = duration_challenge_non_acceptance_response_new_reasonable_period_end_date
        if duration_challenge_non_acceptance_response_old_reasonable_period_end_date is not None:
            self.duration_challenge_non_acceptance_response_old_reasonable_period_end_date = duration_challenge_non_acceptance_response_old_reasonable_period_end_date
        if duration_challenge_follow_up_review_complete is not None:
            self.duration_challenge_follow_up_review_complete = duration_challenge_follow_up_review_complete
        if emergency_contact_name is not None:
            self.emergency_contact_name = emergency_contact_name
        if emergency_contact_number is not None:
            self.emergency_contact_number = emergency_contact_number
        if current_traffic_management_type is not None:
            self.current_traffic_management_type = current_traffic_management_type
        if current_traffic_management_type_string is not None:
            self.current_traffic_management_type_string = current_traffic_management_type_string
        if current_traffic_management_update_date is not None:
            self.current_traffic_management_update_date = current_traffic_management_update_date
        if current_traffic_management_emergency_contact_name is not None:
            self.current_traffic_management_emergency_contact_name = current_traffic_management_emergency_contact_name
        if current_traffic_management_emergency_contact_number is not None:
            self.current_traffic_management_emergency_contact_number = current_traffic_management_emergency_contact_number
        self.close_footpath = close_footpath
        self.close_footpath_string = close_footpath_string
        if ancillary_informations is not None:
            self.ancillary_informations = ancillary_informations
        if street_line is not None:
            self.street_line = street_line
        if reinstatement_registration_due_date is not None:
            self.reinstatement_registration_due_date = reinstatement_registration_due_date
        if usrn_contains_hazardous_material is not None:
            self.usrn_contains_hazardous_material = usrn_contains_hazardous_material
        if permit_cancellation_reason is not None:
            self.permit_cancellation_reason = permit_cancellation_reason
        if permit_cancellation_reason_string is not None:
            self.permit_cancellation_reason_string = permit_cancellation_reason_string
        if permit_cancellation_reason_other is not None:
            self.permit_cancellation_reason_other = permit_cancellation_reason_other
        if interested_parties is not None:
            self.interested_parties = interested_parties

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


        :return: The permit_reference_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._permit_reference_number

    @permit_reference_number.setter
    def permit_reference_number(self, permit_reference_number):
        """Sets the permit_reference_number of this PermitResponse.


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

        self._permit_reference_number = permit_reference_number

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


        :return: The proposed_start_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._proposed_start_date

    @proposed_start_date.setter
    def proposed_start_date(self, proposed_start_date):
        """Sets the proposed_start_date of this PermitResponse.


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

        self._proposed_start_date = proposed_start_date

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


        :return: The proposed_end_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._proposed_end_date

    @proposed_end_date.setter
    def proposed_end_date(self, proposed_end_date):
        """Sets the proposed_end_date of this PermitResponse.


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

        self._proposed_end_date = proposed_end_date

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


        :return: The actual_start_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._actual_start_date

    @actual_start_date.setter
    def actual_start_date(self, actual_start_date):
        """Sets the actual_start_date of this PermitResponse.


        :param actual_start_date: The actual_start_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._actual_start_date = actual_start_date

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


        :return: The actual_stop_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._actual_stop_date

    @actual_stop_date.setter
    def actual_stop_date(self, actual_stop_date):
        """Sets the actual_stop_date of this PermitResponse.


        :param actual_stop_date: The actual_stop_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._actual_stop_date = actual_stop_date

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


        :return: The permit_status of this PermitResponse.  # noqa: E501
        :rtype: PermitStatusResponse
        """
        return self._permit_status

    @permit_status.setter
    def permit_status(self, permit_status):
        """Sets the permit_status of this PermitResponse.


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

        self._permit_status = permit_status

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


        :return: The permit_status_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._permit_status_string

    @permit_status_string.setter
    def permit_status_string(self, permit_status_string):
        """Sets the permit_status_string of this PermitResponse.


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

        self._permit_status_string = permit_status_string

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


        :return: The work_category of this PermitResponse.  # noqa: E501
        :rtype: WorkCategoryResponseEnum
        """
        return self._work_category

    @work_category.setter
    def work_category(self, work_category):
        """Sets the work_category of this PermitResponse.


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

        self._work_category = work_category

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


        :return: The work_category_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._work_category_string

    @work_category_string.setter
    def work_category_string(self, work_category_string):
        """Sets the work_category_string of this PermitResponse.


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

        self._work_category_string = work_category_string

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


        :return: The work_reference_number of this PermitResponse.  # 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 PermitResponse.


        :param work_reference_number: The work_reference_number of this PermitResponse.  # 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 promoter_organisation(self):
        """Gets the promoter_organisation of this PermitResponse.  # noqa: E501


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

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


        :param promoter_organisation: The promoter_organisation of this PermitResponse.  # 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_swa_code(self):
        """Gets the promoter_swa_code of this PermitResponse.  # noqa: E501


        :return: The promoter_swa_code of this PermitResponse.  # 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 PermitResponse.


        :param promoter_swa_code: The promoter_swa_code of this PermitResponse.  # 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_contact_details(self):
        """Gets the promoter_contact_details of this PermitResponse.  # noqa: E501


        :return: The promoter_contact_details of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._promoter_contact_details

    @promoter_contact_details.setter
    def promoter_contact_details(self, promoter_contact_details):
        """Sets the promoter_contact_details of this PermitResponse.


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

        self._promoter_contact_details = promoter_contact_details

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


        :return: The primary_contact of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._primary_contact

    @primary_contact.setter
    def primary_contact(self, primary_contact):
        """Sets the primary_contact of this PermitResponse.


        :param primary_contact: The primary_contact of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._primary_contact = primary_contact

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


        :return: The primary_contact_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._primary_contact_number

    @primary_contact_number.setter
    def primary_contact_number(self, primary_contact_number):
        """Sets the primary_contact_number of this PermitResponse.


        :param primary_contact_number: The primary_contact_number of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._primary_contact_number = primary_contact_number

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


        :return: The primary_contact_email of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._primary_contact_email

    @primary_contact_email.setter
    def primary_contact_email(self, primary_contact_email):
        """Sets the primary_contact_email of this PermitResponse.


        :param primary_contact_email: The primary_contact_email of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._primary_contact_email = primary_contact_email

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


        :return: The secondary_contact of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._secondary_contact

    @secondary_contact.setter
    def secondary_contact(self, secondary_contact):
        """Sets the secondary_contact of this PermitResponse.


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

        self._secondary_contact = secondary_contact

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


        :return: The secondary_contact_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._secondary_contact_number

    @secondary_contact_number.setter
    def secondary_contact_number(self, secondary_contact_number):
        """Sets the secondary_contact_number of this PermitResponse.


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

        self._secondary_contact_number = secondary_contact_number

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


        :return: The secondary_contact_email of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._secondary_contact_email

    @secondary_contact_email.setter
    def secondary_contact_email(self, secondary_contact_email):
        """Sets the secondary_contact_email of this PermitResponse.


        :param secondary_contact_email: The secondary_contact_email of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._secondary_contact_email = secondary_contact_email

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


        :return: The proposed_start_time of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._proposed_start_time

    @proposed_start_time.setter
    def proposed_start_time(self, proposed_start_time):
        """Sets the proposed_start_time of this PermitResponse.


        :param proposed_start_time: The proposed_start_time of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._proposed_start_time = proposed_start_time

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


        :return: The proposed_end_time of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._proposed_end_time

    @proposed_end_time.setter
    def proposed_end_time(self, proposed_end_time):
        """Sets the proposed_end_time of this PermitResponse.


        :param proposed_end_time: The proposed_end_time of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._proposed_end_time = proposed_end_time

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


        :return: The reasonable_period_end_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._reasonable_period_end_date

    @reasonable_period_end_date.setter
    def reasonable_period_end_date(self, reasonable_period_end_date):
        """Sets the reasonable_period_end_date of this PermitResponse.


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

        self._reasonable_period_end_date = reasonable_period_end_date

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


        :return: The calendar_day_duration of this PermitResponse.  # noqa: E501
        :rtype: float
        """
        return self._calendar_day_duration

    @calendar_day_duration.setter
    def calendar_day_duration(self, calendar_day_duration):
        """Sets the calendar_day_duration of this PermitResponse.


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

        self._calendar_day_duration = calendar_day_duration

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


        :return: The working_day_duration of this PermitResponse.  # noqa: E501
        :rtype: float
        """
        return self._working_day_duration

    @working_day_duration.setter
    def working_day_duration(self, working_day_duration):
        """Sets the working_day_duration of this PermitResponse.


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

        self._working_day_duration = working_day_duration

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


        :return: The description_of_work of this PermitResponse.  # 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 PermitResponse.


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

        self._description_of_work = description_of_work

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


        :return: The excavation of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._excavation

    @excavation.setter
    def excavation(self, excavation):
        """Sets the excavation of this PermitResponse.


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

        self._excavation = excavation

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


        :return: The project_reference_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._project_reference_number

    @project_reference_number.setter
    def project_reference_number(self, project_reference_number):
        """Sets the project_reference_number of this PermitResponse.


        :param project_reference_number: The project_reference_number of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._project_reference_number = project_reference_number

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


        :return: The traffic_management_plan of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._traffic_management_plan

    @traffic_management_plan.setter
    def traffic_management_plan(self, traffic_management_plan):
        """Sets the traffic_management_plan of this PermitResponse.


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

        self._traffic_management_plan = traffic_management_plan

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


        :return: The lane_rental_applicable of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._lane_rental_applicable

    @lane_rental_applicable.setter
    def lane_rental_applicable(self, lane_rental_applicable):
        """Sets the lane_rental_applicable of this PermitResponse.


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

        self._lane_rental_applicable = lane_rental_applicable

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


        :return: The permit_conditions of this PermitResponse.  # noqa: E501
        :rtype: list[PermitConditionResponse]
        """
        return self._permit_conditions

    @permit_conditions.setter
    def permit_conditions(self, permit_conditions):
        """Sets the permit_conditions of this PermitResponse.


        :param permit_conditions: The permit_conditions of this PermitResponse.  # noqa: E501
        :type: list[PermitConditionResponse]
        """

        self._permit_conditions = permit_conditions

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


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

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


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


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

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


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

        self._town = town

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


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

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


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

        self._area_name = area_name

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


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

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


        :param usrn: The usrn of this PermitResponse.  # 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 highway_authority(self):
        """Gets the highway_authority of this PermitResponse.  # noqa: E501


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

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


        :param highway_authority: The highway_authority of this PermitResponse.  # 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 highway_authority_swa_code(self):
        """Gets the highway_authority_swa_code of this PermitResponse.  # noqa: E501


        :return: The highway_authority_swa_code of this PermitResponse.  # 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 PermitResponse.


        :param highway_authority_swa_code: The highway_authority_swa_code of this PermitResponse.  # 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 road_category(self):
        """Gets the road_category of this PermitResponse.  # noqa: E501


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

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


        :param road_category: The road_category of this PermitResponse.  # 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_location_description(self):
        """Gets the works_location_description of this PermitResponse.  # noqa: E501


        :return: The works_location_description of this PermitResponse.  # 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 PermitResponse.


        :param works_location_description: The works_location_description of this PermitResponse.  # 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 works_coordinates(self):
        """Gets the works_coordinates of this PermitResponse.  # noqa: E501


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

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


        :param works_coordinates: The works_coordinates of this PermitResponse.  # 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 collaborative_working(self):
        """Gets the collaborative_working of this PermitResponse.  # noqa: E501


        :return: The collaborative_working of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._collaborative_working

    @collaborative_working.setter
    def collaborative_working(self, collaborative_working):
        """Sets the collaborative_working of this PermitResponse.


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

        self._collaborative_working = collaborative_working

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


        :return: The collaboration_details of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._collaboration_details

    @collaboration_details.setter
    def collaboration_details(self, collaboration_details):
        """Sets the collaboration_details of this PermitResponse.


        :param collaboration_details: The collaboration_details of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._collaboration_details = collaboration_details

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


        :return: The collaborative_works of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._collaborative_works

    @collaborative_works.setter
    def collaborative_works(self, collaborative_works):
        """Sets the collaborative_works of this PermitResponse.


        :param collaborative_works: The collaborative_works of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._collaborative_works = collaborative_works

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


        :return: The date_created of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._date_created

    @date_created.setter
    def date_created(self, date_created):
        """Sets the date_created of this PermitResponse.


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

        self._date_created = date_created

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


        :return: The date_modified of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._date_modified

    @date_modified.setter
    def date_modified(self, date_modified):
        """Sets the date_modified of this PermitResponse.


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

        self._date_modified = date_modified

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


        :return: The deadline_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._deadline_date

    @deadline_date.setter
    def deadline_date(self, deadline_date):
        """Sets the deadline_date of this PermitResponse.


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

        self._deadline_date = deadline_date

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


        :return: The assessment_comments of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._assessment_comments

    @assessment_comments.setter
    def assessment_comments(self, assessment_comments):
        """Sets the assessment_comments of this PermitResponse.


        :param assessment_comments: The assessment_comments of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._assessment_comments = assessment_comments

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


        :return: The reasons_for_refusal of this PermitResponse.  # noqa: E501
        :rtype: list[ReasonForRefusalResponse]
        """
        return self._reasons_for_refusal

    @reasons_for_refusal.setter
    def reasons_for_refusal(self, reasons_for_refusal):
        """Sets the reasons_for_refusal of this PermitResponse.


        :param reasons_for_refusal: The reasons_for_refusal of this PermitResponse.  # noqa: E501
        :type: list[ReasonForRefusalResponse]
        """

        self._reasons_for_refusal = reasons_for_refusal

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


        :return: The reasons_for_refusal_string of this PermitResponse.  # noqa: E501
        :rtype: list[str]
        """
        return self._reasons_for_refusal_string

    @reasons_for_refusal_string.setter
    def reasons_for_refusal_string(self, reasons_for_refusal_string):
        """Sets the reasons_for_refusal_string of this PermitResponse.


        :param reasons_for_refusal_string: The reasons_for_refusal_string of this PermitResponse.  # noqa: E501
        :type: list[str]
        """

        self._reasons_for_refusal_string = reasons_for_refusal_string

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


        :return: The activity_type of this PermitResponse.  # noqa: E501
        :rtype: ActivityTypeResponse
        """
        return self._activity_type

    @activity_type.setter
    def activity_type(self, activity_type):
        """Sets the activity_type of this PermitResponse.


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

        self._activity_type = activity_type

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


        :return: The activity_type_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._activity_type_string

    @activity_type_string.setter
    def activity_type_string(self, activity_type_string):
        """Sets the activity_type_string of this PermitResponse.


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

        self._activity_type_string = activity_type_string

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


        :return: The traffic_management_type of this PermitResponse.  # noqa: E501
        :rtype: TrafficManagementTypeResponse
        """
        return self._traffic_management_type

    @traffic_management_type.setter
    def traffic_management_type(self, traffic_management_type):
        """Sets the traffic_management_type of this PermitResponse.


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

        self._traffic_management_type = traffic_management_type

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


        :return: The traffic_management_type_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._traffic_management_type_string

    @traffic_management_type_string.setter
    def traffic_management_type_string(self, traffic_management_type_string):
        """Sets the traffic_management_type_string of this PermitResponse.


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

        self._traffic_management_type_string = traffic_management_type_string

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


        :return: The application_type of this PermitResponse.  # noqa: E501
        :rtype: ApplicationTypeResponse
        """
        return self._application_type

    @application_type.setter
    def application_type(self, application_type):
        """Sets the application_type of this PermitResponse.


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

        self._application_type = application_type

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


        :return: The application_type_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._application_type_string

    @application_type_string.setter
    def application_type_string(self, application_type_string):
        """Sets the application_type_string of this PermitResponse.


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

        self._application_type_string = application_type_string

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


        :return: The collaboration_type of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseCollaborationType
        """
        return self._collaboration_type

    @collaboration_type.setter
    def collaboration_type(self, collaboration_type):
        """Sets the collaboration_type of this PermitResponse.


        :param collaboration_type: The collaboration_type of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseCollaborationType
        """

        self._collaboration_type = collaboration_type

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


        :return: The collaboration_type_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._collaboration_type_string

    @collaboration_type_string.setter
    def collaboration_type_string(self, collaboration_type_string):
        """Sets the collaboration_type_string of this PermitResponse.


        :param collaboration_type_string: The collaboration_type_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._collaboration_type_string = collaboration_type_string

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


        :return: The location_types of this PermitResponse.  # noqa: E501
        :rtype: list[LocationTypeResponse]
        """
        return self._location_types

    @location_types.setter
    def location_types(self, location_types):
        """Sets the location_types of this PermitResponse.


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

        self._location_types = location_types

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


        :return: The location_types_string of this PermitResponse.  # noqa: E501
        :rtype: list[str]
        """
        return self._location_types_string

    @location_types_string.setter
    def location_types_string(self, location_types_string):
        """Sets the location_types_string of this PermitResponse.


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

        self._location_types_string = location_types_string

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


        :return: The assessment_status of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseAssessmentStatus
        """
        return self._assessment_status

    @assessment_status.setter
    def assessment_status(self, assessment_status):
        """Sets the assessment_status of this PermitResponse.


        :param assessment_status: The assessment_status of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseAssessmentStatus
        """

        self._assessment_status = assessment_status

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


        :return: The assessment_status_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._assessment_status_string

    @assessment_status_string.setter
    def assessment_status_string(self, assessment_status_string):
        """Sets the assessment_status_string of this PermitResponse.


        :param assessment_status_string: The assessment_status_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._assessment_status_string = assessment_status_string

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


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

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


        :param files: The files of this PermitResponse.  # noqa: E501
        :type: list[FileSummaryResponse]
        """

        self._files = files

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


        :return: The permit_asds of this PermitResponse.  # noqa: E501
        :rtype: list[PermitASDResponse]
        """
        return self._permit_asds

    @permit_asds.setter
    def permit_asds(self, permit_asds):
        """Sets the permit_asds of this PermitResponse.


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

        self._permit_asds = permit_asds

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


        :return: The permit_not_selected_asds of this PermitResponse.  # noqa: E501
        :rtype: list[PermitASDResponse]
        """
        return self._permit_not_selected_asds

    @permit_not_selected_asds.setter
    def permit_not_selected_asds(self, permit_not_selected_asds):
        """Sets the permit_not_selected_asds of this PermitResponse.


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

        self._permit_not_selected_asds = permit_not_selected_asds

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


        :return: The assessment_discount of this PermitResponse.  # noqa: E501
        :rtype: float
        """
        return self._assessment_discount

    @assessment_discount.setter
    def assessment_discount(self, assessment_discount):
        """Sets the assessment_discount of this PermitResponse.


        :param assessment_discount: The assessment_discount of this PermitResponse.  # noqa: E501
        :type: float
        """

        self._assessment_discount = assessment_discount

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


        :return: The assessment_discount_reason of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._assessment_discount_reason

    @assessment_discount_reason.setter
    def assessment_discount_reason(self, assessment_discount_reason):
        """Sets the assessment_discount_reason of this PermitResponse.


        :param assessment_discount_reason: The assessment_discount_reason of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._assessment_discount_reason = assessment_discount_reason

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


        :return: The is_ttro_required of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._is_ttro_required

    @is_ttro_required.setter
    def is_ttro_required(self, is_ttro_required):
        """Sets the is_ttro_required of this PermitResponse.


        :param is_ttro_required: The is_ttro_required of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._is_ttro_required = is_ttro_required

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


        :return: The immediate_risk of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._immediate_risk

    @immediate_risk.setter
    def immediate_risk(self, immediate_risk):
        """Sets the immediate_risk of this PermitResponse.


        :param immediate_risk: The immediate_risk of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._immediate_risk = immediate_risk

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


        :return: The is_early_start of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._is_early_start

    @is_early_start.setter
    def is_early_start(self, is_early_start):
        """Sets the is_early_start of this PermitResponse.


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

        self._is_early_start = is_early_start

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


        :return: The is_deemed of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._is_deemed

    @is_deemed.setter
    def is_deemed(self, is_deemed):
        """Sets the is_deemed of this PermitResponse.


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

        self._is_deemed = is_deemed

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


        :return: The early_start_pre_approval of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._early_start_pre_approval

    @early_start_pre_approval.setter
    def early_start_pre_approval(self, early_start_pre_approval):
        """Sets the early_start_pre_approval of this PermitResponse.


        :param early_start_pre_approval: The early_start_pre_approval of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._early_start_pre_approval = early_start_pre_approval

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


        :return: The pre_approval_details of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._pre_approval_details

    @pre_approval_details.setter
    def pre_approval_details(self, pre_approval_details):
        """Sets the pre_approval_details of this PermitResponse.


        :param pre_approval_details: The pre_approval_details of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._pre_approval_details = pre_approval_details

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


        :return: The pre_approval_authoriser of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._pre_approval_authoriser

    @pre_approval_authoriser.setter
    def pre_approval_authoriser(self, pre_approval_authoriser):
        """Sets the pre_approval_authoriser of this PermitResponse.


        :param pre_approval_authoriser: The pre_approval_authoriser of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._pre_approval_authoriser = pre_approval_authoriser

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


        :return: The early_start_reason of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._early_start_reason

    @early_start_reason.setter
    def early_start_reason(self, early_start_reason):
        """Sets the early_start_reason of this PermitResponse.


        :param early_start_reason: The early_start_reason of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._early_start_reason = early_start_reason

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


        :return: The additional_info of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._additional_info

    @additional_info.setter
    def additional_info(self, additional_info):
        """Sets the additional_info of this PermitResponse.


        :param additional_info: The additional_info of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._additional_info = additional_info

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


        :return: The permit_alterations of this PermitResponse.  # noqa: E501
        :rtype: list[PermitAlterationSummaryResponse]
        """
        return self._permit_alterations

    @permit_alterations.setter
    def permit_alterations(self, permit_alterations):
        """Sets the permit_alterations of this PermitResponse.


        :param permit_alterations: The permit_alterations of this PermitResponse.  # noqa: E501
        :type: list[PermitAlterationSummaryResponse]
        """

        self._permit_alterations = permit_alterations

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


        :return: The work_type of this PermitResponse.  # noqa: E501
        :rtype: WorkTypeResponse
        """
        return self._work_type

    @work_type.setter
    def work_type(self, work_type):
        """Sets the work_type of this PermitResponse.


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

        self._work_type = work_type

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


        :return: The work_type_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._work_type_string

    @work_type_string.setter
    def work_type_string(self, work_type_string):
        """Sets the work_type_string of this PermitResponse.


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

        self._work_type_string = work_type_string

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


        :return: The revoke_reason of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._revoke_reason

    @revoke_reason.setter
    def revoke_reason(self, revoke_reason):
        """Sets the revoke_reason of this PermitResponse.


        :param revoke_reason: The revoke_reason of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._revoke_reason = revoke_reason

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


        :return: The sliding_end_date_candidate of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._sliding_end_date_candidate

    @sliding_end_date_candidate.setter
    def sliding_end_date_candidate(self, sliding_end_date_candidate):
        """Sets the sliding_end_date_candidate of this PermitResponse.


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

        self._sliding_end_date_candidate = sliding_end_date_candidate

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


        :return: The validity_period_end_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._validity_period_end_date

    @validity_period_end_date.setter
    def validity_period_end_date(self, validity_period_end_date):
        """Sets the validity_period_end_date of this PermitResponse.


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

        self._validity_period_end_date = validity_period_end_date

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


        :return: The final_reinstatement of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._final_reinstatement

    @final_reinstatement.setter
    def final_reinstatement(self, final_reinstatement):
        """Sets the final_reinstatement of this PermitResponse.


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

        self._final_reinstatement = final_reinstatement

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


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

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


        :param workstream_prefix: The workstream_prefix of this PermitResponse.  # 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 close_footway(self):
        """Gets the close_footway of this PermitResponse.  # noqa: E501


        :return: The close_footway of this PermitResponse.  # noqa: E501
        :rtype: CloseFootwayResponse
        """
        return self._close_footway

    @close_footway.setter
    def close_footway(self, close_footway):
        """Sets the close_footway of this PermitResponse.


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

        self._close_footway = close_footway

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


        :return: The close_footway_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._close_footway_string

    @close_footway_string.setter
    def close_footway_string(self, close_footway_string):
        """Sets the close_footway_string of this PermitResponse.


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

        self._close_footway_string = close_footway_string

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


        :return: The lane_rental_assessment_outcome of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseLaneRentalAssessmentOutcome
        """
        return self._lane_rental_assessment_outcome

    @lane_rental_assessment_outcome.setter
    def lane_rental_assessment_outcome(self, lane_rental_assessment_outcome):
        """Sets the lane_rental_assessment_outcome of this PermitResponse.


        :param lane_rental_assessment_outcome: The lane_rental_assessment_outcome of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseLaneRentalAssessmentOutcome
        """

        self._lane_rental_assessment_outcome = lane_rental_assessment_outcome

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


        :return: The lane_rental_assessment_outcome_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._lane_rental_assessment_outcome_string

    @lane_rental_assessment_outcome_string.setter
    def lane_rental_assessment_outcome_string(self, lane_rental_assessment_outcome_string):
        """Sets the lane_rental_assessment_outcome_string of this PermitResponse.


        :param lane_rental_assessment_outcome_string: The lane_rental_assessment_outcome_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._lane_rental_assessment_outcome_string = lane_rental_assessment_outcome_string

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


        :return: The lane_rental_assessment_additional_details of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._lane_rental_assessment_additional_details

    @lane_rental_assessment_additional_details.setter
    def lane_rental_assessment_additional_details(self, lane_rental_assessment_additional_details):
        """Sets the lane_rental_assessment_additional_details of this PermitResponse.


        :param lane_rental_assessment_additional_details: The lane_rental_assessment_additional_details of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._lane_rental_assessment_additional_details = lane_rental_assessment_additional_details

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


        :return: The lane_rental_assessment_charge_band of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseLaneRentalAssessmentChargeBand
        """
        return self._lane_rental_assessment_charge_band

    @lane_rental_assessment_charge_band.setter
    def lane_rental_assessment_charge_band(self, lane_rental_assessment_charge_band):
        """Sets the lane_rental_assessment_charge_band of this PermitResponse.


        :param lane_rental_assessment_charge_band: The lane_rental_assessment_charge_band of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseLaneRentalAssessmentChargeBand
        """

        self._lane_rental_assessment_charge_band = lane_rental_assessment_charge_band

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


        :return: The lane_rental_assessment_charge_band_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._lane_rental_assessment_charge_band_string

    @lane_rental_assessment_charge_band_string.setter
    def lane_rental_assessment_charge_band_string(self, lane_rental_assessment_charge_band_string):
        """Sets the lane_rental_assessment_charge_band_string of this PermitResponse.


        :param lane_rental_assessment_charge_band_string: The lane_rental_assessment_charge_band_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._lane_rental_assessment_charge_band_string = lane_rental_assessment_charge_band_string

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


        :return: The lane_rental_assessment_chargeable_days of this PermitResponse.  # noqa: E501
        :rtype: float
        """
        return self._lane_rental_assessment_chargeable_days

    @lane_rental_assessment_chargeable_days.setter
    def lane_rental_assessment_chargeable_days(self, lane_rental_assessment_chargeable_days):
        """Sets the lane_rental_assessment_chargeable_days of this PermitResponse.


        :param lane_rental_assessment_chargeable_days: The lane_rental_assessment_chargeable_days of this PermitResponse.  # noqa: E501
        :type: float
        """

        self._lane_rental_assessment_chargeable_days = lane_rental_assessment_chargeable_days

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


        :return: The lane_rental_assessment_charges_agreed of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._lane_rental_assessment_charges_agreed

    @lane_rental_assessment_charges_agreed.setter
    def lane_rental_assessment_charges_agreed(self, lane_rental_assessment_charges_agreed):
        """Sets the lane_rental_assessment_charges_agreed of this PermitResponse.


        :param lane_rental_assessment_charges_agreed: The lane_rental_assessment_charges_agreed of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._lane_rental_assessment_charges_agreed = lane_rental_assessment_charges_agreed

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


        :return: The is_lane_rental of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._is_lane_rental

    @is_lane_rental.setter
    def is_lane_rental(self, is_lane_rental):
        """Sets the is_lane_rental of this PermitResponse.


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

        self._is_lane_rental = is_lane_rental

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


        :return: The pending_change_details of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._pending_change_details

    @pending_change_details.setter
    def pending_change_details(self, pending_change_details):
        """Sets the pending_change_details of this PermitResponse.


        :param pending_change_details: The pending_change_details of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._pending_change_details = pending_change_details

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


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

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


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


        :return: The work_status_string of this PermitResponse.  # 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 PermitResponse.


        :param work_status_string: The work_status_string of this PermitResponse.  # 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 hs2_in_act_limits(self):
        """Gets the hs2_in_act_limits of this PermitResponse.  # noqa: E501


        :return: The hs2_in_act_limits of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._hs2_in_act_limits

    @hs2_in_act_limits.setter
    def hs2_in_act_limits(self, hs2_in_act_limits):
        """Sets the hs2_in_act_limits of this PermitResponse.


        :param hs2_in_act_limits: The hs2_in_act_limits of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._hs2_in_act_limits = hs2_in_act_limits

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


        :return: The hs2_consultation_requested_response_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._hs2_consultation_requested_response_date

    @hs2_consultation_requested_response_date.setter
    def hs2_consultation_requested_response_date(self, hs2_consultation_requested_response_date):
        """Sets the hs2_consultation_requested_response_date of this PermitResponse.


        :param hs2_consultation_requested_response_date: The hs2_consultation_requested_response_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._hs2_consultation_requested_response_date = hs2_consultation_requested_response_date

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


        :return: The hs2_highway_exemption of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseHs2HighwayExemption
        """
        return self._hs2_highway_exemption

    @hs2_highway_exemption.setter
    def hs2_highway_exemption(self, hs2_highway_exemption):
        """Sets the hs2_highway_exemption of this PermitResponse.


        :param hs2_highway_exemption: The hs2_highway_exemption of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseHs2HighwayExemption
        """

        self._hs2_highway_exemption = hs2_highway_exemption

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


        :return: The hs2_highway_exemption_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._hs2_highway_exemption_string

    @hs2_highway_exemption_string.setter
    def hs2_highway_exemption_string(self, hs2_highway_exemption_string):
        """Sets the hs2_highway_exemption_string of this PermitResponse.


        :param hs2_highway_exemption_string: The hs2_highway_exemption_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._hs2_highway_exemption_string = hs2_highway_exemption_string

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


        :return: The hs2_is_consultation of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._hs2_is_consultation

    @hs2_is_consultation.setter
    def hs2_is_consultation(self, hs2_is_consultation):
        """Sets the hs2_is_consultation of this PermitResponse.


        :param hs2_is_consultation: The hs2_is_consultation of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._hs2_is_consultation = hs2_is_consultation

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


        :return: The hs2_is_consent of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._hs2_is_consent

    @hs2_is_consent.setter
    def hs2_is_consent(self, hs2_is_consent):
        """Sets the hs2_is_consent of this PermitResponse.


        :param hs2_is_consent: The hs2_is_consent of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._hs2_is_consent = hs2_is_consent

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


        :return: The hs2_highway_emails of this PermitResponse.  # noqa: E501
        :rtype: list[str]
        """
        return self._hs2_highway_emails

    @hs2_highway_emails.setter
    def hs2_highway_emails(self, hs2_highway_emails):
        """Sets the hs2_highway_emails of this PermitResponse.


        :param hs2_highway_emails: The hs2_highway_emails of this PermitResponse.  # noqa: E501
        :type: list[str]
        """

        self._hs2_highway_emails = hs2_highway_emails

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


        :return: The hs2_acknowledged of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._hs2_acknowledged

    @hs2_acknowledged.setter
    def hs2_acknowledged(self, hs2_acknowledged):
        """Sets the hs2_acknowledged of this PermitResponse.


        :param hs2_acknowledged: The hs2_acknowledged of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._hs2_acknowledged = hs2_acknowledged

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


        :return: The hs2_acknowledged_date_time of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._hs2_acknowledged_date_time

    @hs2_acknowledged_date_time.setter
    def hs2_acknowledged_date_time(self, hs2_acknowledged_date_time):
        """Sets the hs2_acknowledged_date_time of this PermitResponse.


        :param hs2_acknowledged_date_time: The hs2_acknowledged_date_time of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._hs2_acknowledged_date_time = hs2_acknowledged_date_time

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


        :return: The additional_contact of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._additional_contact

    @additional_contact.setter
    def additional_contact(self, additional_contact):
        """Sets the additional_contact of this PermitResponse.


        :param additional_contact: The additional_contact of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._additional_contact = additional_contact

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


        :return: The additional_contact_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._additional_contact_number

    @additional_contact_number.setter
    def additional_contact_number(self, additional_contact_number):
        """Sets the additional_contact_number of this PermitResponse.


        :param additional_contact_number: The additional_contact_number of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._additional_contact_number = additional_contact_number

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


        :return: The additional_contact_email of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._additional_contact_email

    @additional_contact_email.setter
    def additional_contact_email(self, additional_contact_email):
        """Sets the additional_contact_email of this PermitResponse.


        :param additional_contact_email: The additional_contact_email of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._additional_contact_email = additional_contact_email

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


        :return: The ever_modification_requested of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._ever_modification_requested

    @ever_modification_requested.setter
    def ever_modification_requested(self, ever_modification_requested):
        """Sets the ever_modification_requested of this PermitResponse.


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

        self._ever_modification_requested = ever_modification_requested

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


        :return: The is_duration_challenged of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._is_duration_challenged

    @is_duration_challenged.setter
    def is_duration_challenged(self, is_duration_challenged):
        """Sets the is_duration_challenged of this PermitResponse.


        :param is_duration_challenged: The is_duration_challenged of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._is_duration_challenged = is_duration_challenged

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


        :return: The is_covid_19_response of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._is_covid_19_response

    @is_covid_19_response.setter
    def is_covid_19_response(self, is_covid_19_response):
        """Sets the is_covid_19_response of this PermitResponse.


        :param is_covid_19_response: The is_covid_19_response of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._is_covid_19_response = is_covid_19_response

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


        :return: The hs2_additional_usrns of this PermitResponse.  # noqa: E501
        :rtype: list[float]
        """
        return self._hs2_additional_usrns

    @hs2_additional_usrns.setter
    def hs2_additional_usrns(self, hs2_additional_usrns):
        """Sets the hs2_additional_usrns of this PermitResponse.


        :param hs2_additional_usrns: The hs2_additional_usrns of this PermitResponse.  # noqa: E501
        :type: list[float]
        """

        self._hs2_additional_usrns = hs2_additional_usrns

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


        :return: The excavation_carried_out of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._excavation_carried_out

    @excavation_carried_out.setter
    def excavation_carried_out(self, excavation_carried_out):
        """Sets the excavation_carried_out of this PermitResponse.


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

        self._excavation_carried_out = excavation_carried_out

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


        :return: The linked_section_81 of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseLinkedSection81
        """
        return self._linked_section_81

    @linked_section_81.setter
    def linked_section_81(self, linked_section_81):
        """Sets the linked_section_81 of this PermitResponse.


        :param linked_section_81: The linked_section_81 of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseLinkedSection81
        """

        self._linked_section_81 = linked_section_81

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


        :return: The duration_challenge_review_status of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseDurationChallengeReviewStatus
        """
        return self._duration_challenge_review_status

    @duration_challenge_review_status.setter
    def duration_challenge_review_status(self, duration_challenge_review_status):
        """Sets the duration_challenge_review_status of this PermitResponse.


        :param duration_challenge_review_status: The duration_challenge_review_status of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseDurationChallengeReviewStatus
        """

        self._duration_challenge_review_status = duration_challenge_review_status

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


        :return: The duration_challenge_review_status_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._duration_challenge_review_status_string

    @duration_challenge_review_status_string.setter
    def duration_challenge_review_status_string(self, duration_challenge_review_status_string):
        """Sets the duration_challenge_review_status_string of this PermitResponse.


        :param duration_challenge_review_status_string: The duration_challenge_review_status_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._duration_challenge_review_status_string = duration_challenge_review_status_string

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


        :return: The duration_challenge_reason_for_non_acceptance of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._duration_challenge_reason_for_non_acceptance

    @duration_challenge_reason_for_non_acceptance.setter
    def duration_challenge_reason_for_non_acceptance(self, duration_challenge_reason_for_non_acceptance):
        """Sets the duration_challenge_reason_for_non_acceptance of this PermitResponse.


        :param duration_challenge_reason_for_non_acceptance: The duration_challenge_reason_for_non_acceptance of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._duration_challenge_reason_for_non_acceptance = duration_challenge_reason_for_non_acceptance

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


        :return: The duration_challenge_review_update_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._duration_challenge_review_update_date

    @duration_challenge_review_update_date.setter
    def duration_challenge_review_update_date(self, duration_challenge_review_update_date):
        """Sets the duration_challenge_review_update_date of this PermitResponse.


        :param duration_challenge_review_update_date: The duration_challenge_review_update_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._duration_challenge_review_update_date = duration_challenge_review_update_date

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


        :return: The duration_challenge_non_acceptance_response_status of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseDurationChallengeNonAcceptanceResponseStatus
        """
        return self._duration_challenge_non_acceptance_response_status

    @duration_challenge_non_acceptance_response_status.setter
    def duration_challenge_non_acceptance_response_status(self, duration_challenge_non_acceptance_response_status):
        """Sets the duration_challenge_non_acceptance_response_status of this PermitResponse.


        :param duration_challenge_non_acceptance_response_status: The duration_challenge_non_acceptance_response_status of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseDurationChallengeNonAcceptanceResponseStatus
        """

        self._duration_challenge_non_acceptance_response_status = duration_challenge_non_acceptance_response_status

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


        :return: The duration_challenge_non_acceptance_response_status_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._duration_challenge_non_acceptance_response_status_string

    @duration_challenge_non_acceptance_response_status_string.setter
    def duration_challenge_non_acceptance_response_status_string(self, duration_challenge_non_acceptance_response_status_string):
        """Sets the duration_challenge_non_acceptance_response_status_string of this PermitResponse.


        :param duration_challenge_non_acceptance_response_status_string: The duration_challenge_non_acceptance_response_status_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._duration_challenge_non_acceptance_response_status_string = duration_challenge_non_acceptance_response_status_string

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


        :return: The duration_challenge_non_acceptance_response_details of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._duration_challenge_non_acceptance_response_details

    @duration_challenge_non_acceptance_response_details.setter
    def duration_challenge_non_acceptance_response_details(self, duration_challenge_non_acceptance_response_details):
        """Sets the duration_challenge_non_acceptance_response_details of this PermitResponse.


        :param duration_challenge_non_acceptance_response_details: The duration_challenge_non_acceptance_response_details of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._duration_challenge_non_acceptance_response_details = duration_challenge_non_acceptance_response_details

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


        :return: The duration_challenge_non_acceptance_response_update_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._duration_challenge_non_acceptance_response_update_date

    @duration_challenge_non_acceptance_response_update_date.setter
    def duration_challenge_non_acceptance_response_update_date(self, duration_challenge_non_acceptance_response_update_date):
        """Sets the duration_challenge_non_acceptance_response_update_date of this PermitResponse.


        :param duration_challenge_non_acceptance_response_update_date: The duration_challenge_non_acceptance_response_update_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._duration_challenge_non_acceptance_response_update_date = duration_challenge_non_acceptance_response_update_date

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


        :return: The duration_challenge_non_acceptance_response_new_reasonable_period_end_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._duration_challenge_non_acceptance_response_new_reasonable_period_end_date

    @duration_challenge_non_acceptance_response_new_reasonable_period_end_date.setter
    def duration_challenge_non_acceptance_response_new_reasonable_period_end_date(self, duration_challenge_non_acceptance_response_new_reasonable_period_end_date):
        """Sets the duration_challenge_non_acceptance_response_new_reasonable_period_end_date of this PermitResponse.


        :param duration_challenge_non_acceptance_response_new_reasonable_period_end_date: The duration_challenge_non_acceptance_response_new_reasonable_period_end_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._duration_challenge_non_acceptance_response_new_reasonable_period_end_date = duration_challenge_non_acceptance_response_new_reasonable_period_end_date

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


        :return: The duration_challenge_non_acceptance_response_old_reasonable_period_end_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._duration_challenge_non_acceptance_response_old_reasonable_period_end_date

    @duration_challenge_non_acceptance_response_old_reasonable_period_end_date.setter
    def duration_challenge_non_acceptance_response_old_reasonable_period_end_date(self, duration_challenge_non_acceptance_response_old_reasonable_period_end_date):
        """Sets the duration_challenge_non_acceptance_response_old_reasonable_period_end_date of this PermitResponse.


        :param duration_challenge_non_acceptance_response_old_reasonable_period_end_date: The duration_challenge_non_acceptance_response_old_reasonable_period_end_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._duration_challenge_non_acceptance_response_old_reasonable_period_end_date = duration_challenge_non_acceptance_response_old_reasonable_period_end_date

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


        :return: The duration_challenge_follow_up_review_complete of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._duration_challenge_follow_up_review_complete

    @duration_challenge_follow_up_review_complete.setter
    def duration_challenge_follow_up_review_complete(self, duration_challenge_follow_up_review_complete):
        """Sets the duration_challenge_follow_up_review_complete of this PermitResponse.


        :param duration_challenge_follow_up_review_complete: The duration_challenge_follow_up_review_complete of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._duration_challenge_follow_up_review_complete = duration_challenge_follow_up_review_complete

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


        :return: The emergency_contact_name of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._emergency_contact_name

    @emergency_contact_name.setter
    def emergency_contact_name(self, emergency_contact_name):
        """Sets the emergency_contact_name of this PermitResponse.


        :param emergency_contact_name: The emergency_contact_name of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._emergency_contact_name = emergency_contact_name

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


        :return: The emergency_contact_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._emergency_contact_number

    @emergency_contact_number.setter
    def emergency_contact_number(self, emergency_contact_number):
        """Sets the emergency_contact_number of this PermitResponse.


        :param emergency_contact_number: The emergency_contact_number of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._emergency_contact_number = emergency_contact_number

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


        :return: The current_traffic_management_type of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponseCurrentTrafficManagementType
        """
        return self._current_traffic_management_type

    @current_traffic_management_type.setter
    def current_traffic_management_type(self, current_traffic_management_type):
        """Sets the current_traffic_management_type of this PermitResponse.


        :param current_traffic_management_type: The current_traffic_management_type of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponseCurrentTrafficManagementType
        """

        self._current_traffic_management_type = current_traffic_management_type

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


        :return: The current_traffic_management_type_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._current_traffic_management_type_string

    @current_traffic_management_type_string.setter
    def current_traffic_management_type_string(self, current_traffic_management_type_string):
        """Sets the current_traffic_management_type_string of this PermitResponse.


        :param current_traffic_management_type_string: The current_traffic_management_type_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._current_traffic_management_type_string = current_traffic_management_type_string

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


        :return: The current_traffic_management_update_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._current_traffic_management_update_date

    @current_traffic_management_update_date.setter
    def current_traffic_management_update_date(self, current_traffic_management_update_date):
        """Sets the current_traffic_management_update_date of this PermitResponse.


        :param current_traffic_management_update_date: The current_traffic_management_update_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._current_traffic_management_update_date = current_traffic_management_update_date

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


        :return: The current_traffic_management_emergency_contact_name of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._current_traffic_management_emergency_contact_name

    @current_traffic_management_emergency_contact_name.setter
    def current_traffic_management_emergency_contact_name(self, current_traffic_management_emergency_contact_name):
        """Sets the current_traffic_management_emergency_contact_name of this PermitResponse.


        :param current_traffic_management_emergency_contact_name: The current_traffic_management_emergency_contact_name of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._current_traffic_management_emergency_contact_name = current_traffic_management_emergency_contact_name

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


        :return: The current_traffic_management_emergency_contact_number of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._current_traffic_management_emergency_contact_number

    @current_traffic_management_emergency_contact_number.setter
    def current_traffic_management_emergency_contact_number(self, current_traffic_management_emergency_contact_number):
        """Sets the current_traffic_management_emergency_contact_number of this PermitResponse.


        :param current_traffic_management_emergency_contact_number: The current_traffic_management_emergency_contact_number of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._current_traffic_management_emergency_contact_number = current_traffic_management_emergency_contact_number

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


        :return: The close_footpath of this PermitResponse.  # noqa: E501
        :rtype: CloseFootpathResponse
        """
        return self._close_footpath

    @close_footpath.setter
    def close_footpath(self, close_footpath):
        """Sets the close_footpath of this PermitResponse.


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

        self._close_footpath = close_footpath

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


        :return: The close_footpath_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._close_footpath_string

    @close_footpath_string.setter
    def close_footpath_string(self, close_footpath_string):
        """Sets the close_footpath_string of this PermitResponse.


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

        self._close_footpath_string = close_footpath_string

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


        :return: The ancillary_informations of this PermitResponse.  # noqa: E501
        :rtype: list[AncillaryInfoSummaryResponse]
        """
        return self._ancillary_informations

    @ancillary_informations.setter
    def ancillary_informations(self, ancillary_informations):
        """Sets the ancillary_informations of this PermitResponse.


        :param ancillary_informations: The ancillary_informations of this PermitResponse.  # noqa: E501
        :type: list[AncillaryInfoSummaryResponse]
        """

        self._ancillary_informations = ancillary_informations

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


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

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


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

        self._street_line = street_line

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


        :return: The reinstatement_registration_due_date of this PermitResponse.  # noqa: E501
        :rtype: datetime
        """
        return self._reinstatement_registration_due_date

    @reinstatement_registration_due_date.setter
    def reinstatement_registration_due_date(self, reinstatement_registration_due_date):
        """Sets the reinstatement_registration_due_date of this PermitResponse.


        :param reinstatement_registration_due_date: The reinstatement_registration_due_date of this PermitResponse.  # noqa: E501
        :type: datetime
        """

        self._reinstatement_registration_due_date = reinstatement_registration_due_date

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


        :return: The usrn_contains_hazardous_material of this PermitResponse.  # noqa: E501
        :rtype: bool
        """
        return self._usrn_contains_hazardous_material

    @usrn_contains_hazardous_material.setter
    def usrn_contains_hazardous_material(self, usrn_contains_hazardous_material):
        """Sets the usrn_contains_hazardous_material of this PermitResponse.


        :param usrn_contains_hazardous_material: The usrn_contains_hazardous_material of this PermitResponse.  # noqa: E501
        :type: bool
        """

        self._usrn_contains_hazardous_material = usrn_contains_hazardous_material

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


        :return: The permit_cancellation_reason of this PermitResponse.  # noqa: E501
        :rtype: AllOfPermitResponsePermitCancellationReason
        """
        return self._permit_cancellation_reason

    @permit_cancellation_reason.setter
    def permit_cancellation_reason(self, permit_cancellation_reason):
        """Sets the permit_cancellation_reason of this PermitResponse.


        :param permit_cancellation_reason: The permit_cancellation_reason of this PermitResponse.  # noqa: E501
        :type: AllOfPermitResponsePermitCancellationReason
        """

        self._permit_cancellation_reason = permit_cancellation_reason

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


        :return: The permit_cancellation_reason_string of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._permit_cancellation_reason_string

    @permit_cancellation_reason_string.setter
    def permit_cancellation_reason_string(self, permit_cancellation_reason_string):
        """Sets the permit_cancellation_reason_string of this PermitResponse.


        :param permit_cancellation_reason_string: The permit_cancellation_reason_string of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._permit_cancellation_reason_string = permit_cancellation_reason_string

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


        :return: The permit_cancellation_reason_other of this PermitResponse.  # noqa: E501
        :rtype: str
        """
        return self._permit_cancellation_reason_other

    @permit_cancellation_reason_other.setter
    def permit_cancellation_reason_other(self, permit_cancellation_reason_other):
        """Sets the permit_cancellation_reason_other of this PermitResponse.


        :param permit_cancellation_reason_other: The permit_cancellation_reason_other of this PermitResponse.  # noqa: E501
        :type: str
        """

        self._permit_cancellation_reason_other = permit_cancellation_reason_other

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


        :return: The interested_parties of this PermitResponse.  # noqa: E501
        :rtype: list[InterestedParty]
        """
        return self._interested_parties

    @interested_parties.setter
    def interested_parties(self, interested_parties):
        """Sets the interested_parties of this PermitResponse.


        :param interested_parties: The interested_parties of this PermitResponse.  # noqa: E501
        :type: list[InterestedParty]
        """

        self._interested_parties = interested_parties

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

        return self.__dict__ == other.__dict__

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