# 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_gateways_post_request import V1GatewaysPostRequest

class TestV1GatewaysPostRequest(unittest.TestCase):
    """V1GatewaysPostRequest unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> V1GatewaysPostRequest:
        """Test V1GatewaysPostRequest
            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 `V1GatewaysPostRequest`
        """
        model = V1GatewaysPostRequest()
        if include_optional:
            return V1GatewaysPostRequest(
                details = graphiant_sdk.models._v1_gateways_put_request_details._v1_gateways_put_request_details(
                    aws = graphiant_sdk.models._v1_gateways_put_request_details_aws._v1_gateways_put_request_details_aws(
                        account_id = 'example string', 
                        advance_settings = graphiant_sdk.models._v1_gateways_put_request_details_aws_advance_settings._v1_gateways_put_request_details_aws_advanceSettings(
                            address_family = 'ENUM_VALUE', 
                            allowed_prefixes = [
                                'example string'
                                ], 
                            amazon_bgp_router_ip = 'example string', 
                            bgp_auth_key = 'example string', 
                            customer_bgp_router_ip = 'example string', 
                            is_jumbo = True, ), 
                        transit_connection = graphiant_sdk.models._v1_gateways_put_request_details_aws_transit_connection._v1_gateways_put_request_details_aws_transitConnection(
                            credentials = graphiant_sdk.models._v1_gateways_put_request_details_aws_transit_connection_credentials._v1_gateways_put_request_details_aws_transitConnection_credentials(
                                access_key_id = 'example string', 
                                secret_access_key = 'example string', ), 
                            customer_asn = 123, 
                            gateway = graphiant_sdk.models._v1_gateways_put_request_details_aws_transit_connection_gateway._v1_gateways_put_request_details_aws_transitConnection_gateway(
                                asn = 123, 
                                id = 'example string', 
                                name = 'example string', 
                                transit_gateways = [
                                    graphiant_sdk.models._v1_gateways_put_request_details_aws_transit_connection_gateway_transit_gateways_inner._v1_gateways_put_request_details_aws_transitConnection_gateway_transitGateways_inner(
                                        asn = 123, 
                                        id = 'example string', 
                                        vpcs = [
                                            graphiant_sdk.models._v1_gateways_put_request_details_aws_transit_connection_gateway_transit_gateways_inner_vpcs_inner._v1_gateways_put_request_details_aws_transitConnection_gateway_transitGateways_inner_vpcs_inner(
                                                id = 'example string', 
                                                subnets = [
                                                    graphiant_sdk.models._v1_gateways_put_request_details_aws_transit_connection_gateway_transit_gateways_inner_vpcs_inner_subnets_inner._v1_gateways_put_request_details_aws_transitConnection_gateway_transitGateways_inner_vpcs_inner_subnets_inner(
                                                        cidr = 'example string', 
                                                        id = 'example string', )
                                                    ], )
                                            ], )
                                    ], ), 
                            region = 'example string', ), ), 
                    azure = graphiant_sdk.models._v1_gateways_put_request_details_azure._v1_gateways_put_request_details_azure(
                        ms_peering_vlan_id = 123, 
                        routing_policy = 'example string', 
                        service_key = 'example string', ), 
                    description = 'example string', 
                    gcp = graphiant_sdk.models._v1_gateways_put_request_details_gcp._v1_gateways_put_request_details_gcp(
                        description = 'example string', 
                        pairing_key = 'example string', 
                        routing_policy = 'example string', ), 
                    ipsec_gateway = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway._v1_gateways_put_request_details_ipsecGateway(
                        destination_address = 'example string', 
                        ike_initiator = True, 
                        mtu = 123, 
                        name = 'example string', 
                        remote_ike_peer_identity = 'example string', 
                        routing = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_routing._v1_gateways_put_request_details_ipsecGateway_routing(
                            bgp = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_routing_bgp._v1_gateways_put_request_details_ipsecGateway_routing_bgp(
                                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', ), ), )
                                    }, 
                                hold_timer = 123, 
                                keepalive_timer = 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, 
                                send_community = True, ), 
                            static = graphiant_sdk.models._v1_extranets_get_200_response_policies_inner_branches_excluded_devices_inner_ipsec_tunnels_inner_static._v1_extranets_get_200_response_policies_inner_branches_excludedDevices_inner_ipsecTunnels_inner_static(
                                destination_prefix = [
                                    'example string'
                                    ], ), ), 
                        tcp_mss = 123, 
                        tunnel1 = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_tunnel1._v1_gateways_put_request_details_ipsecGateway_tunnel1(
                            inside_ipv4_cidr = 'example string', 
                            inside_ipv6_cidr = 'example string', 
                            local_ike_peer_identity = 'example string', 
                            psk = 'example string', ), 
                        tunnel2 = graphiant_sdk.models._v1_gateways_put_request_details_ipsec_gateway_tunnel1._v1_gateways_put_request_details_ipsecGateway_tunnel1(
                            inside_ipv4_cidr = 'example string', 
                            inside_ipv6_cidr = 'example string', 
                            local_ike_peer_identity = 'example string', 
                            psk = 'example string', ), 
                        vpn_profile = 'example string', ), 
                    oci = graphiant_sdk.models._v1_gateways_put_request_details_oci._v1_gateways_put_request_details_oci(
                        description = 'example string', 
                        fast_connect_ocid = 'example string', 
                        routing_policy = 'example string', ), 
                    region_id = 123, 
                    speed = 'ENUM_VALUE', 
                    vrf_id = 1234567891011, )
            )
        else:
            return V1GatewaysPostRequest(
        )
        """

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

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