# coding: utf-8

"""
    Sonatype Lifecycle Public REST API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: 1.196.0-01
    Contact: community@sonatype.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from sonatype_iq_api_client.models.api_component_waivers_dto import ApiComponentWaiversDTO

class TestApiComponentWaiversDTO(unittest.TestCase):
    """ApiComponentWaiversDTO unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> ApiComponentWaiversDTO:
        """Test ApiComponentWaiversDTO
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `ApiComponentWaiversDTO`
        """
        model = ApiComponentWaiversDTO()
        if include_optional:
            return ApiComponentWaiversDTO(
                application_waivers = [
                    sonatype_iq_api_client.models.api_application_waiver_dto.ApiApplicationWaiverDTO(
                        application = sonatype_iq_api_client.models.api_application_base_dto.ApiApplicationBaseDTO(
                            contact_user_name = '', 
                            id = '', 
                            name = '', 
                            organization_id = '', 
                            public_id = '', ), 
                        stages = [
                            sonatype_iq_api_client.models.api_policy_violation_stage_dto.ApiPolicyViolationStageDTO(
                                component_policy_violations = [
                                    sonatype_iq_api_client.models.api_component_policy_violation_dto.ApiComponentPolicyViolationDTO(
                                        component = sonatype_iq_api_client.models.api_component_dtov2.ApiComponentDTOV2(
                                            component_identifier = sonatype_iq_api_client.models.api_component_identifier_dtov2.ApiComponentIdentifierDTOV2(
                                                coordinates = {
                                                    'key' : ''
                                                    }, 
                                                format = '', ), 
                                            display_name = '', 
                                            hash = '', 
                                            package_url = '', 
                                            proprietary = True, 
                                            sha256 = '', 
                                            third_party = True, ), 
                                        waived_policy_violations = [
                                            sonatype_iq_api_client.models.api_waived_policy_violation_dto.ApiWaivedPolicyViolationDTO(
                                                constraint_violations = [
                                                    sonatype_iq_api_client.models.api_constraint_violation_dto.ApiConstraintViolationDTO(
                                                        constraint_id = '', 
                                                        constraint_name = '', 
                                                        reasons = [
                                                            sonatype_iq_api_client.models.api_constraint_violation_reason_dto.ApiConstraintViolationReasonDTO(
                                                                reason = '', 
                                                                reference = sonatype_iq_api_client.models.trigger_reference.TriggerReference(
                                                                    type = 'SECURITY_VULNERABILITY_REFID', 
                                                                    value = '', ), )
                                                            ], )
                                                    ], 
                                                fix_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                legacy_violation_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                open_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                policy_id = '', 
                                                policy_name = '', 
                                                policy_violation_id = '', 
                                                policy_waiver = sonatype_iq_api_client.models.api_policy_waiver_dto.ApiPolicyWaiverDTO(
                                                    associated_package_url = '', 
                                                    comment = '', 
                                                    component_name = '', 
                                                    component_upgrade_available = True, 
                                                    constraint_facts = [
                                                        sonatype_iq_api_client.models.constraint_fact.ConstraintFact(
                                                            condition_facts = [
                                                                sonatype_iq_api_client.models.condition_fact.ConditionFact(
                                                                    condition_index = 56, 
                                                                    condition_type_id = '', 
                                                                    reason = '', 
                                                                    summary = '', 
                                                                    trigger_json = '', )
                                                                ], 
                                                            constraint_id = '', 
                                                            constraint_name = '', 
                                                            operator_name = '', )
                                                        ], 
                                                    constraint_facts_json = '', 
                                                    create_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                    creator_id = '', 
                                                    creator_name = '', 
                                                    display_name = sonatype_iq_api_client.models.component_display_name.ComponentDisplayName(
                                                        name = '', 
                                                        parts = [
                                                            sonatype_iq_api_client.models.component_display_name_part.ComponentDisplayNamePart(
                                                                field = '', 
                                                                value = '', )
                                                            ], ), 
                                                    expire_when_remediation_available = True, 
                                                    expiry_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                    for_container_image = True, 
                                                    for_container_image_component = True, 
                                                    hash = '', 
                                                    is_obsolete = True, 
                                                    matcher_strategy = 'DEFAULT', 
                                                    policy_id = '', 
                                                    policy_name = '', 
                                                    policy_violation_id = '', 
                                                    policy_waiver_id = '', 
                                                    policy_waiver_reason_id = '', 
                                                    reason_text = '', 
                                                    scope_owner_id = '', 
                                                    scope_owner_name = '', 
                                                    scope_owner_type = '', 
                                                    threat_level = 56, 
                                                    vulnerability_id = '', ), 
                                                threat_level = 56, 
                                                waive_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                                            ], )
                                    ], 
                                stage_id = '', )
                            ], )
                    ],
                repository_waivers = [
                    sonatype_iq_api_client.models.api_repository_waiver_dto.ApiRepositoryWaiverDTO(
                        repository = sonatype_iq_api_client.models.api_repository_dto.ApiRepositoryDTO(
                            audit_enabled = True, 
                            format = '', 
                            namespace_confusion_protection_enabled = True, 
                            policy_compliant_component_selection_enabled = True, 
                            public_id = '', 
                            quarantine_enabled = True, 
                            repository_id = '', 
                            type = '', ), 
                        stages = [
                            sonatype_iq_api_client.models.api_policy_violation_stage_dto.ApiPolicyViolationStageDTO(
                                component_policy_violations = [
                                    sonatype_iq_api_client.models.api_component_policy_violation_dto.ApiComponentPolicyViolationDTO(
                                        component = sonatype_iq_api_client.models.api_component_dtov2.ApiComponentDTOV2(
                                            component_identifier = sonatype_iq_api_client.models.api_component_identifier_dtov2.ApiComponentIdentifierDTOV2(
                                                coordinates = {
                                                    'key' : ''
                                                    }, 
                                                format = '', ), 
                                            display_name = '', 
                                            hash = '', 
                                            package_url = '', 
                                            proprietary = True, 
                                            sha256 = '', 
                                            third_party = True, ), 
                                        waived_policy_violations = [
                                            sonatype_iq_api_client.models.api_waived_policy_violation_dto.ApiWaivedPolicyViolationDTO(
                                                constraint_violations = [
                                                    sonatype_iq_api_client.models.api_constraint_violation_dto.ApiConstraintViolationDTO(
                                                        constraint_id = '', 
                                                        constraint_name = '', 
                                                        reasons = [
                                                            sonatype_iq_api_client.models.api_constraint_violation_reason_dto.ApiConstraintViolationReasonDTO(
                                                                reason = '', 
                                                                reference = sonatype_iq_api_client.models.trigger_reference.TriggerReference(
                                                                    type = 'SECURITY_VULNERABILITY_REFID', 
                                                                    value = '', ), )
                                                            ], )
                                                    ], 
                                                fix_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                legacy_violation_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                open_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                policy_id = '', 
                                                policy_name = '', 
                                                policy_violation_id = '', 
                                                policy_waiver = sonatype_iq_api_client.models.api_policy_waiver_dto.ApiPolicyWaiverDTO(
                                                    associated_package_url = '', 
                                                    comment = '', 
                                                    component_name = '', 
                                                    component_upgrade_available = True, 
                                                    constraint_facts = [
                                                        sonatype_iq_api_client.models.constraint_fact.ConstraintFact(
                                                            condition_facts = [
                                                                sonatype_iq_api_client.models.condition_fact.ConditionFact(
                                                                    condition_index = 56, 
                                                                    condition_type_id = '', 
                                                                    reason = '', 
                                                                    summary = '', 
                                                                    trigger_json = '', )
                                                                ], 
                                                            constraint_id = '', 
                                                            constraint_name = '', 
                                                            operator_name = '', )
                                                        ], 
                                                    constraint_facts_json = '', 
                                                    create_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                    creator_id = '', 
                                                    creator_name = '', 
                                                    display_name = sonatype_iq_api_client.models.component_display_name.ComponentDisplayName(
                                                        name = '', 
                                                        parts = [
                                                            sonatype_iq_api_client.models.component_display_name_part.ComponentDisplayNamePart(
                                                                field = '', 
                                                                value = '', )
                                                            ], ), 
                                                    expire_when_remediation_available = True, 
                                                    expiry_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                                    for_container_image = True, 
                                                    for_container_image_component = True, 
                                                    hash = '', 
                                                    is_obsolete = True, 
                                                    matcher_strategy = 'DEFAULT', 
                                                    policy_id = '', 
                                                    policy_name = '', 
                                                    policy_violation_id = '', 
                                                    policy_waiver_id = '', 
                                                    policy_waiver_reason_id = '', 
                                                    reason_text = '', 
                                                    scope_owner_id = '', 
                                                    scope_owner_name = '', 
                                                    scope_owner_type = '', 
                                                    threat_level = 56, 
                                                    vulnerability_id = '', ), 
                                                threat_level = 56, 
                                                waive_time = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                                            ], )
                                    ], 
                                stage_id = '', )
                            ], )
                    ]
            )
        else:
            return ApiComponentWaiversDTO(
        )
        """

    def testApiComponentWaiversDTO(self):
        """Test ApiComponentWaiversDTO"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
