module Network.AWS.DirectConnect.Types.Product where
import Network.AWS.DirectConnect.Types.Sum
import Network.AWS.Lens
import Network.AWS.Prelude
data Connection = Connection'
{ _cVlan :: !(Maybe Int)
, _cLocation :: !(Maybe Text)
, _cConnectionId :: !(Maybe Text)
, _cPartnerName :: !(Maybe Text)
, _cConnectionName :: !(Maybe Text)
, _cBandwidth :: !(Maybe Text)
, _cOwnerAccount :: !(Maybe Text)
, _cRegion :: !(Maybe Text)
, _cConnectionState :: !(Maybe ConnectionState)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
connection
:: Connection
connection =
Connection'
{ _cVlan = Nothing
, _cLocation = Nothing
, _cConnectionId = Nothing
, _cPartnerName = Nothing
, _cConnectionName = Nothing
, _cBandwidth = Nothing
, _cOwnerAccount = Nothing
, _cRegion = Nothing
, _cConnectionState = Nothing
}
cVlan :: Lens' Connection (Maybe Int)
cVlan = lens _cVlan (\ s a -> s{_cVlan = a});
cLocation :: Lens' Connection (Maybe Text)
cLocation = lens _cLocation (\ s a -> s{_cLocation = a});
cConnectionId :: Lens' Connection (Maybe Text)
cConnectionId = lens _cConnectionId (\ s a -> s{_cConnectionId = a});
cPartnerName :: Lens' Connection (Maybe Text)
cPartnerName = lens _cPartnerName (\ s a -> s{_cPartnerName = a});
cConnectionName :: Lens' Connection (Maybe Text)
cConnectionName = lens _cConnectionName (\ s a -> s{_cConnectionName = a});
cBandwidth :: Lens' Connection (Maybe Text)
cBandwidth = lens _cBandwidth (\ s a -> s{_cBandwidth = a});
cOwnerAccount :: Lens' Connection (Maybe Text)
cOwnerAccount = lens _cOwnerAccount (\ s a -> s{_cOwnerAccount = a});
cRegion :: Lens' Connection (Maybe Text)
cRegion = lens _cRegion (\ s a -> s{_cRegion = a});
cConnectionState :: Lens' Connection (Maybe ConnectionState)
cConnectionState = lens _cConnectionState (\ s a -> s{_cConnectionState = a});
instance FromJSON Connection where
parseJSON
= withObject "Connection"
(\ x ->
Connection' <$>
(x .:? "vlan") <*> (x .:? "location") <*>
(x .:? "connectionId")
<*> (x .:? "partnerName")
<*> (x .:? "connectionName")
<*> (x .:? "bandwidth")
<*> (x .:? "ownerAccount")
<*> (x .:? "region")
<*> (x .:? "connectionState"))
instance Hashable Connection
instance NFData Connection
newtype Connections = Connections'
{ _cConnections :: Maybe [Connection]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
connections
:: Connections
connections =
Connections'
{ _cConnections = Nothing
}
cConnections :: Lens' Connections [Connection]
cConnections = lens _cConnections (\ s a -> s{_cConnections = a}) . _Default . _Coerce;
instance FromJSON Connections where
parseJSON
= withObject "Connections"
(\ x ->
Connections' <$> (x .:? "connections" .!= mempty))
instance Hashable Connections
instance NFData Connections
data Interconnect = Interconnect'
{ _iInterconnectId :: !(Maybe Text)
, _iLocation :: !(Maybe Text)
, _iInterconnectName :: !(Maybe Text)
, _iBandwidth :: !(Maybe Text)
, _iInterconnectState :: !(Maybe InterconnectState)
, _iRegion :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
interconnect
:: Interconnect
interconnect =
Interconnect'
{ _iInterconnectId = Nothing
, _iLocation = Nothing
, _iInterconnectName = Nothing
, _iBandwidth = Nothing
, _iInterconnectState = Nothing
, _iRegion = Nothing
}
iInterconnectId :: Lens' Interconnect (Maybe Text)
iInterconnectId = lens _iInterconnectId (\ s a -> s{_iInterconnectId = a});
iLocation :: Lens' Interconnect (Maybe Text)
iLocation = lens _iLocation (\ s a -> s{_iLocation = a});
iInterconnectName :: Lens' Interconnect (Maybe Text)
iInterconnectName = lens _iInterconnectName (\ s a -> s{_iInterconnectName = a});
iBandwidth :: Lens' Interconnect (Maybe Text)
iBandwidth = lens _iBandwidth (\ s a -> s{_iBandwidth = a});
iInterconnectState :: Lens' Interconnect (Maybe InterconnectState)
iInterconnectState = lens _iInterconnectState (\ s a -> s{_iInterconnectState = a});
iRegion :: Lens' Interconnect (Maybe Text)
iRegion = lens _iRegion (\ s a -> s{_iRegion = a});
instance FromJSON Interconnect where
parseJSON
= withObject "Interconnect"
(\ x ->
Interconnect' <$>
(x .:? "interconnectId") <*> (x .:? "location") <*>
(x .:? "interconnectName")
<*> (x .:? "bandwidth")
<*> (x .:? "interconnectState")
<*> (x .:? "region"))
instance Hashable Interconnect
instance NFData Interconnect
data Location = Location'
{ _lLocationName :: !(Maybe Text)
, _lLocationCode :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
location
:: Location
location =
Location'
{ _lLocationName = Nothing
, _lLocationCode = Nothing
}
lLocationName :: Lens' Location (Maybe Text)
lLocationName = lens _lLocationName (\ s a -> s{_lLocationName = a});
lLocationCode :: Lens' Location (Maybe Text)
lLocationCode = lens _lLocationCode (\ s a -> s{_lLocationCode = a});
instance FromJSON Location where
parseJSON
= withObject "Location"
(\ x ->
Location' <$>
(x .:? "locationName") <*> (x .:? "locationCode"))
instance Hashable Location
instance NFData Location
data NewPrivateVirtualInterface = NewPrivateVirtualInterface'
{ _nCustomerAddress :: !(Maybe Text)
, _nAmazonAddress :: !(Maybe Text)
, _nAuthKey :: !(Maybe Text)
, _nVirtualInterfaceName :: !Text
, _nVlan :: !Int
, _nAsn :: !Int
, _nVirtualGatewayId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
newPrivateVirtualInterface
:: Text
-> Int
-> Int
-> Text
-> NewPrivateVirtualInterface
newPrivateVirtualInterface pVirtualInterfaceName_ pVlan_ pAsn_ pVirtualGatewayId_ =
NewPrivateVirtualInterface'
{ _nCustomerAddress = Nothing
, _nAmazonAddress = Nothing
, _nAuthKey = Nothing
, _nVirtualInterfaceName = pVirtualInterfaceName_
, _nVlan = pVlan_
, _nAsn = pAsn_
, _nVirtualGatewayId = pVirtualGatewayId_
}
nCustomerAddress :: Lens' NewPrivateVirtualInterface (Maybe Text)
nCustomerAddress = lens _nCustomerAddress (\ s a -> s{_nCustomerAddress = a});
nAmazonAddress :: Lens' NewPrivateVirtualInterface (Maybe Text)
nAmazonAddress = lens _nAmazonAddress (\ s a -> s{_nAmazonAddress = a});
nAuthKey :: Lens' NewPrivateVirtualInterface (Maybe Text)
nAuthKey = lens _nAuthKey (\ s a -> s{_nAuthKey = a});
nVirtualInterfaceName :: Lens' NewPrivateVirtualInterface Text
nVirtualInterfaceName = lens _nVirtualInterfaceName (\ s a -> s{_nVirtualInterfaceName = a});
nVlan :: Lens' NewPrivateVirtualInterface Int
nVlan = lens _nVlan (\ s a -> s{_nVlan = a});
nAsn :: Lens' NewPrivateVirtualInterface Int
nAsn = lens _nAsn (\ s a -> s{_nAsn = a});
nVirtualGatewayId :: Lens' NewPrivateVirtualInterface Text
nVirtualGatewayId = lens _nVirtualGatewayId (\ s a -> s{_nVirtualGatewayId = a});
instance Hashable NewPrivateVirtualInterface
instance NFData NewPrivateVirtualInterface
instance ToJSON NewPrivateVirtualInterface where
toJSON NewPrivateVirtualInterface'{..}
= object
(catMaybes
[("customerAddress" .=) <$> _nCustomerAddress,
("amazonAddress" .=) <$> _nAmazonAddress,
("authKey" .=) <$> _nAuthKey,
Just
("virtualInterfaceName" .= _nVirtualInterfaceName),
Just ("vlan" .= _nVlan), Just ("asn" .= _nAsn),
Just ("virtualGatewayId" .= _nVirtualGatewayId)])
data NewPrivateVirtualInterfaceAllocation = NewPrivateVirtualInterfaceAllocation'
{ _npviaCustomerAddress :: !(Maybe Text)
, _npviaAmazonAddress :: !(Maybe Text)
, _npviaAuthKey :: !(Maybe Text)
, _npviaVirtualInterfaceName :: !Text
, _npviaVlan :: !Int
, _npviaAsn :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
newPrivateVirtualInterfaceAllocation
:: Text
-> Int
-> Int
-> NewPrivateVirtualInterfaceAllocation
newPrivateVirtualInterfaceAllocation pVirtualInterfaceName_ pVlan_ pAsn_ =
NewPrivateVirtualInterfaceAllocation'
{ _npviaCustomerAddress = Nothing
, _npviaAmazonAddress = Nothing
, _npviaAuthKey = Nothing
, _npviaVirtualInterfaceName = pVirtualInterfaceName_
, _npviaVlan = pVlan_
, _npviaAsn = pAsn_
}
npviaCustomerAddress :: Lens' NewPrivateVirtualInterfaceAllocation (Maybe Text)
npviaCustomerAddress = lens _npviaCustomerAddress (\ s a -> s{_npviaCustomerAddress = a});
npviaAmazonAddress :: Lens' NewPrivateVirtualInterfaceAllocation (Maybe Text)
npviaAmazonAddress = lens _npviaAmazonAddress (\ s a -> s{_npviaAmazonAddress = a});
npviaAuthKey :: Lens' NewPrivateVirtualInterfaceAllocation (Maybe Text)
npviaAuthKey = lens _npviaAuthKey (\ s a -> s{_npviaAuthKey = a});
npviaVirtualInterfaceName :: Lens' NewPrivateVirtualInterfaceAllocation Text
npviaVirtualInterfaceName = lens _npviaVirtualInterfaceName (\ s a -> s{_npviaVirtualInterfaceName = a});
npviaVlan :: Lens' NewPrivateVirtualInterfaceAllocation Int
npviaVlan = lens _npviaVlan (\ s a -> s{_npviaVlan = a});
npviaAsn :: Lens' NewPrivateVirtualInterfaceAllocation Int
npviaAsn = lens _npviaAsn (\ s a -> s{_npviaAsn = a});
instance Hashable
NewPrivateVirtualInterfaceAllocation
instance NFData NewPrivateVirtualInterfaceAllocation
instance ToJSON NewPrivateVirtualInterfaceAllocation
where
toJSON NewPrivateVirtualInterfaceAllocation'{..}
= object
(catMaybes
[("customerAddress" .=) <$> _npviaCustomerAddress,
("amazonAddress" .=) <$> _npviaAmazonAddress,
("authKey" .=) <$> _npviaAuthKey,
Just
("virtualInterfaceName" .=
_npviaVirtualInterfaceName),
Just ("vlan" .= _npviaVlan),
Just ("asn" .= _npviaAsn)])
data NewPublicVirtualInterface = NewPublicVirtualInterface'
{ _npviAuthKey :: !(Maybe Text)
, _npviVirtualInterfaceName :: !Text
, _npviVlan :: !Int
, _npviAsn :: !Int
, _npviAmazonAddress :: !Text
, _npviCustomerAddress :: !Text
, _npviRouteFilterPrefixes :: ![RouteFilterPrefix]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
newPublicVirtualInterface
:: Text
-> Int
-> Int
-> Text
-> Text
-> NewPublicVirtualInterface
newPublicVirtualInterface pVirtualInterfaceName_ pVlan_ pAsn_ pAmazonAddress_ pCustomerAddress_ =
NewPublicVirtualInterface'
{ _npviAuthKey = Nothing
, _npviVirtualInterfaceName = pVirtualInterfaceName_
, _npviVlan = pVlan_
, _npviAsn = pAsn_
, _npviAmazonAddress = pAmazonAddress_
, _npviCustomerAddress = pCustomerAddress_
, _npviRouteFilterPrefixes = mempty
}
npviAuthKey :: Lens' NewPublicVirtualInterface (Maybe Text)
npviAuthKey = lens _npviAuthKey (\ s a -> s{_npviAuthKey = a});
npviVirtualInterfaceName :: Lens' NewPublicVirtualInterface Text
npviVirtualInterfaceName = lens _npviVirtualInterfaceName (\ s a -> s{_npviVirtualInterfaceName = a});
npviVlan :: Lens' NewPublicVirtualInterface Int
npviVlan = lens _npviVlan (\ s a -> s{_npviVlan = a});
npviAsn :: Lens' NewPublicVirtualInterface Int
npviAsn = lens _npviAsn (\ s a -> s{_npviAsn = a});
npviAmazonAddress :: Lens' NewPublicVirtualInterface Text
npviAmazonAddress = lens _npviAmazonAddress (\ s a -> s{_npviAmazonAddress = a});
npviCustomerAddress :: Lens' NewPublicVirtualInterface Text
npviCustomerAddress = lens _npviCustomerAddress (\ s a -> s{_npviCustomerAddress = a});
npviRouteFilterPrefixes :: Lens' NewPublicVirtualInterface [RouteFilterPrefix]
npviRouteFilterPrefixes = lens _npviRouteFilterPrefixes (\ s a -> s{_npviRouteFilterPrefixes = a}) . _Coerce;
instance Hashable NewPublicVirtualInterface
instance NFData NewPublicVirtualInterface
instance ToJSON NewPublicVirtualInterface where
toJSON NewPublicVirtualInterface'{..}
= object
(catMaybes
[("authKey" .=) <$> _npviAuthKey,
Just
("virtualInterfaceName" .=
_npviVirtualInterfaceName),
Just ("vlan" .= _npviVlan), Just ("asn" .= _npviAsn),
Just ("amazonAddress" .= _npviAmazonAddress),
Just ("customerAddress" .= _npviCustomerAddress),
Just
("routeFilterPrefixes" .= _npviRouteFilterPrefixes)])
data NewPublicVirtualInterfaceAllocation = NewPublicVirtualInterfaceAllocation'
{ _newAuthKey :: !(Maybe Text)
, _newVirtualInterfaceName :: !Text
, _newVlan :: !Int
, _newAsn :: !Int
, _newAmazonAddress :: !Text
, _newCustomerAddress :: !Text
, _newRouteFilterPrefixes :: ![RouteFilterPrefix]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
newPublicVirtualInterfaceAllocation
:: Text
-> Int
-> Int
-> Text
-> Text
-> NewPublicVirtualInterfaceAllocation
newPublicVirtualInterfaceAllocation pVirtualInterfaceName_ pVlan_ pAsn_ pAmazonAddress_ pCustomerAddress_ =
NewPublicVirtualInterfaceAllocation'
{ _newAuthKey = Nothing
, _newVirtualInterfaceName = pVirtualInterfaceName_
, _newVlan = pVlan_
, _newAsn = pAsn_
, _newAmazonAddress = pAmazonAddress_
, _newCustomerAddress = pCustomerAddress_
, _newRouteFilterPrefixes = mempty
}
newAuthKey :: Lens' NewPublicVirtualInterfaceAllocation (Maybe Text)
newAuthKey = lens _newAuthKey (\ s a -> s{_newAuthKey = a});
newVirtualInterfaceName :: Lens' NewPublicVirtualInterfaceAllocation Text
newVirtualInterfaceName = lens _newVirtualInterfaceName (\ s a -> s{_newVirtualInterfaceName = a});
newVlan :: Lens' NewPublicVirtualInterfaceAllocation Int
newVlan = lens _newVlan (\ s a -> s{_newVlan = a});
newAsn :: Lens' NewPublicVirtualInterfaceAllocation Int
newAsn = lens _newAsn (\ s a -> s{_newAsn = a});
newAmazonAddress :: Lens' NewPublicVirtualInterfaceAllocation Text
newAmazonAddress = lens _newAmazonAddress (\ s a -> s{_newAmazonAddress = a});
newCustomerAddress :: Lens' NewPublicVirtualInterfaceAllocation Text
newCustomerAddress = lens _newCustomerAddress (\ s a -> s{_newCustomerAddress = a});
newRouteFilterPrefixes :: Lens' NewPublicVirtualInterfaceAllocation [RouteFilterPrefix]
newRouteFilterPrefixes = lens _newRouteFilterPrefixes (\ s a -> s{_newRouteFilterPrefixes = a}) . _Coerce;
instance Hashable NewPublicVirtualInterfaceAllocation
instance NFData NewPublicVirtualInterfaceAllocation
instance ToJSON NewPublicVirtualInterfaceAllocation
where
toJSON NewPublicVirtualInterfaceAllocation'{..}
= object
(catMaybes
[("authKey" .=) <$> _newAuthKey,
Just
("virtualInterfaceName" .= _newVirtualInterfaceName),
Just ("vlan" .= _newVlan), Just ("asn" .= _newAsn),
Just ("amazonAddress" .= _newAmazonAddress),
Just ("customerAddress" .= _newCustomerAddress),
Just
("routeFilterPrefixes" .= _newRouteFilterPrefixes)])
newtype RouteFilterPrefix = RouteFilterPrefix'
{ _rfpCidr :: Maybe Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
routeFilterPrefix
:: RouteFilterPrefix
routeFilterPrefix =
RouteFilterPrefix'
{ _rfpCidr = Nothing
}
rfpCidr :: Lens' RouteFilterPrefix (Maybe Text)
rfpCidr = lens _rfpCidr (\ s a -> s{_rfpCidr = a});
instance FromJSON RouteFilterPrefix where
parseJSON
= withObject "RouteFilterPrefix"
(\ x -> RouteFilterPrefix' <$> (x .:? "cidr"))
instance Hashable RouteFilterPrefix
instance NFData RouteFilterPrefix
instance ToJSON RouteFilterPrefix where
toJSON RouteFilterPrefix'{..}
= object (catMaybes [("cidr" .=) <$> _rfpCidr])
data VirtualGateway = VirtualGateway'
{ _vgVirtualGatewayId :: !(Maybe Text)
, _vgVirtualGatewayState :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
virtualGateway
:: VirtualGateway
virtualGateway =
VirtualGateway'
{ _vgVirtualGatewayId = Nothing
, _vgVirtualGatewayState = Nothing
}
vgVirtualGatewayId :: Lens' VirtualGateway (Maybe Text)
vgVirtualGatewayId = lens _vgVirtualGatewayId (\ s a -> s{_vgVirtualGatewayId = a});
vgVirtualGatewayState :: Lens' VirtualGateway (Maybe Text)
vgVirtualGatewayState = lens _vgVirtualGatewayState (\ s a -> s{_vgVirtualGatewayState = a});
instance FromJSON VirtualGateway where
parseJSON
= withObject "VirtualGateway"
(\ x ->
VirtualGateway' <$>
(x .:? "virtualGatewayId") <*>
(x .:? "virtualGatewayState"))
instance Hashable VirtualGateway
instance NFData VirtualGateway
data VirtualInterface = VirtualInterface'
{ _viVirtualGatewayId :: !(Maybe Text)
, _viRouteFilterPrefixes :: !(Maybe [RouteFilterPrefix])
, _viCustomerAddress :: !(Maybe Text)
, _viVlan :: !(Maybe Int)
, _viLocation :: !(Maybe Text)
, _viAmazonAddress :: !(Maybe Text)
, _viVirtualInterfaceState :: !(Maybe VirtualInterfaceState)
, _viConnectionId :: !(Maybe Text)
, _viVirtualInterfaceType :: !(Maybe Text)
, _viAsn :: !(Maybe Int)
, _viAuthKey :: !(Maybe Text)
, _viCustomerRouterConfig :: !(Maybe Text)
, _viOwnerAccount :: !(Maybe Text)
, _viVirtualInterfaceName :: !(Maybe Text)
, _viVirtualInterfaceId :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
virtualInterface
:: VirtualInterface
virtualInterface =
VirtualInterface'
{ _viVirtualGatewayId = Nothing
, _viRouteFilterPrefixes = Nothing
, _viCustomerAddress = Nothing
, _viVlan = Nothing
, _viLocation = Nothing
, _viAmazonAddress = Nothing
, _viVirtualInterfaceState = Nothing
, _viConnectionId = Nothing
, _viVirtualInterfaceType = Nothing
, _viAsn = Nothing
, _viAuthKey = Nothing
, _viCustomerRouterConfig = Nothing
, _viOwnerAccount = Nothing
, _viVirtualInterfaceName = Nothing
, _viVirtualInterfaceId = Nothing
}
viVirtualGatewayId :: Lens' VirtualInterface (Maybe Text)
viVirtualGatewayId = lens _viVirtualGatewayId (\ s a -> s{_viVirtualGatewayId = a});
viRouteFilterPrefixes :: Lens' VirtualInterface [RouteFilterPrefix]
viRouteFilterPrefixes = lens _viRouteFilterPrefixes (\ s a -> s{_viRouteFilterPrefixes = a}) . _Default . _Coerce;
viCustomerAddress :: Lens' VirtualInterface (Maybe Text)
viCustomerAddress = lens _viCustomerAddress (\ s a -> s{_viCustomerAddress = a});
viVlan :: Lens' VirtualInterface (Maybe Int)
viVlan = lens _viVlan (\ s a -> s{_viVlan = a});
viLocation :: Lens' VirtualInterface (Maybe Text)
viLocation = lens _viLocation (\ s a -> s{_viLocation = a});
viAmazonAddress :: Lens' VirtualInterface (Maybe Text)
viAmazonAddress = lens _viAmazonAddress (\ s a -> s{_viAmazonAddress = a});
viVirtualInterfaceState :: Lens' VirtualInterface (Maybe VirtualInterfaceState)
viVirtualInterfaceState = lens _viVirtualInterfaceState (\ s a -> s{_viVirtualInterfaceState = a});
viConnectionId :: Lens' VirtualInterface (Maybe Text)
viConnectionId = lens _viConnectionId (\ s a -> s{_viConnectionId = a});
viVirtualInterfaceType :: Lens' VirtualInterface (Maybe Text)
viVirtualInterfaceType = lens _viVirtualInterfaceType (\ s a -> s{_viVirtualInterfaceType = a});
viAsn :: Lens' VirtualInterface (Maybe Int)
viAsn = lens _viAsn (\ s a -> s{_viAsn = a});
viAuthKey :: Lens' VirtualInterface (Maybe Text)
viAuthKey = lens _viAuthKey (\ s a -> s{_viAuthKey = a});
viCustomerRouterConfig :: Lens' VirtualInterface (Maybe Text)
viCustomerRouterConfig = lens _viCustomerRouterConfig (\ s a -> s{_viCustomerRouterConfig = a});
viOwnerAccount :: Lens' VirtualInterface (Maybe Text)
viOwnerAccount = lens _viOwnerAccount (\ s a -> s{_viOwnerAccount = a});
viVirtualInterfaceName :: Lens' VirtualInterface (Maybe Text)
viVirtualInterfaceName = lens _viVirtualInterfaceName (\ s a -> s{_viVirtualInterfaceName = a});
viVirtualInterfaceId :: Lens' VirtualInterface (Maybe Text)
viVirtualInterfaceId = lens _viVirtualInterfaceId (\ s a -> s{_viVirtualInterfaceId = a});
instance FromJSON VirtualInterface where
parseJSON
= withObject "VirtualInterface"
(\ x ->
VirtualInterface' <$>
(x .:? "virtualGatewayId") <*>
(x .:? "routeFilterPrefixes" .!= mempty)
<*> (x .:? "customerAddress")
<*> (x .:? "vlan")
<*> (x .:? "location")
<*> (x .:? "amazonAddress")
<*> (x .:? "virtualInterfaceState")
<*> (x .:? "connectionId")
<*> (x .:? "virtualInterfaceType")
<*> (x .:? "asn")
<*> (x .:? "authKey")
<*> (x .:? "customerRouterConfig")
<*> (x .:? "ownerAccount")
<*> (x .:? "virtualInterfaceName")
<*> (x .:? "virtualInterfaceId"))
instance Hashable VirtualInterface
instance NFData VirtualInterface