# coding: utf-8

"""
    Graphiant APIs

    **To use the APIs:**  1) Login using `/api/v1/auth/login`   2) Copy the value of \"token\" in the response   3) Click the \"Authorize\" button   4) In the \"Value\" text field enter: `Bearer <your token>`   5) Click \"Authorize\"   6) All requests are now authorized.  **Token valid for 2 hours. If expired:**   - Login again, click \"Authorize\", paste new token.

    The version of the OpenAPI document: 1.0.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

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


import unittest

from graphiant_sdk.models.v1_devices_device_id_config_put_request_edge_circuits_value import V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue

class TestV1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue(unittest.TestCase):
    """V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue:
        """Test V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue
            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 `V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue`
        """
        model = V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue()
        if include_optional:
            return V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue(
                bgp_aggregations = {
                    'key' : graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_aggregations_value._v1_devices__deviceId__config_put_request_core_coreVrf_bgpAggregations_value(
                        config = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_aggregations_value_config._v1_devices__deviceId__config_put_request_core_coreVrf_bgpAggregations_value_config(
                            as_set = True, 
                            prefix = 'example string', 
                            summary_only = True, ), )
                    },
                bgp_multipath = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_ebgp_multipath._v1_devices__deviceId__config_put_request_core_coreVrf_ebgpMultipath(
                    config = graphiant_sdk.models._v1_extranets_get_200_response_policies_inner_branches_excluded_devices_inner_circuits_inner_bgp_multipath._v1_extranets_get_200_response_policies_inner_branches_excludedDevices_inner_circuits_inner_bgpMultipath(
                        enabled = True, 
                        vrf_id = 1234567891011, ), ),
                bgp_neighbors = {
                    'key' : graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value(
                        neighbor = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor(
                            address_families = {
                                'key' : graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_routing_bgp_address_families_value._v1_gateways_put_request_details_ipsecGateway_routing_bgp_addressFamilies_value(
                                    family = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_routing_bgp_address_families_value_family._v1_gateways_put_request_details_ipsecGateway_routing_bgp_addressFamilies_value_family(
                                        address_family = 'ENUM_VALUE', 
                                        inbound_policy = graphiant_sdk.models._v1_global_config_patch_request_routing_policies_value_policy_statements_value_statement_actions_value_action_call_policy._v1_global_config_patch_request_routingPolicies_value_policy_statements_value_statement_actions_value_action_callPolicy(
                                            policy = 'example string', ), 
                                        outbound_policy = graphiant_sdk.models._v1_global_config_patch_request_routing_policies_value_policy_statements_value_statement_actions_value_action_call_policy._v1_global_config_patch_request_routingPolicies_value_policy_statements_value_statement_actions_value_action_callPolicy(
                                            policy = 'example string', ), ), )
                                }, 
                            allow_as_in = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor_allow_as_in._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor_allowAsIn(
                                count = 123, ), 
                            as_override = True, 
                            bfd = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor_bfd._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor_bfd(), 
                            default_originate = 'ENUM_VALUE', 
                            ebgp_multihop_ttl = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor_ebgp_multihop_ttl._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor_ebgpMultihopTtl(
                                multi_hop = 123, ), 
                            enabled = True, 
                            hold_timer = 123, 
                            hold_timer_value = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor_hold_timer_value._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor_holdTimerValue(
                                timer = 123, ), 
                            keepalive_timer = 123, 
                            keepalive_timer_value = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor_hold_timer_value._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor_holdTimerValue(
                                timer = 123, ), 
                            local_address = 'example string', 
                            local_interface = graphiant_sdk.models._v1_global_config_patch_request_routing_policies_value_policy_statements_value_statement_matches_value_match_source_interface._v1_global_config_patch_request_routingPolicies_value_policy_statements_value_statement_matches_value_match_sourceInterface(
                                interface = 'example string', ), 
                            max_prefix_value = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_neighbors_value_neighbor_max_prefix_value._v1_devices__deviceId__config_put_request_core_coreVrf_bgpNeighbors_value_neighbor_maxPrefixValue(
                                max_prefix = 123, ), 
                            md5_password = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_routing_bgp_md5_password._v1_gateways_put_request_details_ipsecGateway_routing_bgp_md5Password(), 
                            peer_asn = 123, 
                            remote_address = 'example string', 
                            remove_private_as = True, 
                            send_community = True, ), )
                    },
                bgp_redistribution = {
                    'key' : graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_bgp_redistribution_value._v1_devices__deviceId__config_put_request_core_coreVrf_bgpRedistribution_value(
                        protocol = graphiant_sdk.models._v1_global_config_patch_request_snmps_value_config_notify_filter_profiles_value_notify_filter_profile_include_exclude_list_value._v1_global_config_patch_request_snmps_value_config_notifyFilterProfiles_value_notifyFilterProfile_includeExcludeList_value(
                            enabled = True, ), )
                    },
                carrier = 'ENUM_VALUE',
                circuit_type = 'ENUM_VALUE',
                connection_type = 'ENUM_VALUE',
                description = 'example string',
                dia_enabled = True,
                drop_mechanism = 'ENUM_VALUE',
                label = 'ENUM_VALUE',
                last_resort = True,
                link_down_speed_mbps = 123,
                link_up_speed_mbps = 123,
                loopback = True,
                name = 'example string',
                pat_addresses = graphiant_sdk.models._v1_devices__device_id__config_put_request_edge_circuits_value_pat_addresses._v1_devices__deviceId__config_put_request_edge_circuits_value_patAddresses(
                    addresses = [
                        'example string'
                        ], ),
                qos_profile = 'ENUM_VALUE',
                qos_profile_type = 'ENUM_VALUE',
                static_routes = {
                    'key' : graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_static_routes_value._v1_devices__deviceId__config_put_request_core_coreVrf_staticRoutes_value(
                        route = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_static_routes_value_route._v1_devices__deviceId__config_put_request_core_coreVrf_staticRoutes_value_route(
                            admin_distance = 123, 
                            administrative_distance = graphiant_sdk.models._v1_global_config_patch_request_routing_policies_value_policy_statements_value_statement_actions_value_action_administrative_distance._v1_global_config_patch_request_routingPolicies_value_policy_statements_value_statement_actions_value_action_administrativeDistance(
                                distance = 123, ), 
                            description = 'example string', 
                            destination_prefix = 'example string', 
                            ip_version = 123, 
                            next_hop = graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_static_routes_value_route_next_hop._v1_devices__deviceId__config_put_request_core_coreVrf_staticRoutes_value_route_nextHop(
                                address = 'example string', 
                                circuit = 'example string', 
                                interface = 'example string', 
                                next_hop_address = 'example string', 
                                third_party_ipsec_tunnel = 'example string', ), 
                            next_hops = [
                                graphiant_sdk.models._v1_devices__device_id__config_put_request_core_core_vrf_static_routes_value_route_next_hop._v1_devices__deviceId__config_put_request_core_coreVrf_staticRoutes_value_route_nextHop(
                                    address = 'example string', 
                                    circuit = 'example string', 
                                    interface = 'example string', 
                                    next_hop_address = 'example string', 
                                    third_party_ipsec_tunnel = 'example string', )
                                ], ), )
                    }
            )
        else:
            return V1DevicesDeviceIdConfigPutRequestEdgeCircuitsValue(
        )
        """

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

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