{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.DirectConnect.Types.Connection
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DirectConnect.Types.Connection where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DirectConnect.Types.ConnectionState
import Amazonka.DirectConnect.Types.HasLogicalRedundancy
import Amazonka.DirectConnect.Types.MacSecKey
import Amazonka.DirectConnect.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Information about an Direct Connect connection.
--
-- /See:/ 'newConnection' smart constructor.
data Connection = Connection'
  { -- | The Direct Connect endpoint on which the physical connection terminates.
    Connection -> Maybe Text
awsDevice :: Prelude.Maybe Prelude.Text,
    -- | The Direct Connect endpoint that terminates the physical connection.
    Connection -> Maybe Text
awsDeviceV2 :: Prelude.Maybe Prelude.Text,
    -- | The Direct Connect endpoint that terminates the logical connection. This
    -- device might be different than the device that terminates the physical
    -- connection.
    Connection -> Maybe Text
awsLogicalDeviceId :: Prelude.Maybe Prelude.Text,
    -- | The bandwidth of the connection.
    Connection -> Maybe Text
bandwidth :: Prelude.Maybe Prelude.Text,
    -- | The ID of the connection.
    Connection -> Maybe Text
connectionId :: Prelude.Maybe Prelude.Text,
    -- | The name of the connection.
    Connection -> Maybe Text
connectionName :: Prelude.Maybe Prelude.Text,
    -- | The state of the connection. The following are the possible values:
    --
    -- -   @ordering@: The initial state of a hosted connection provisioned on
    --     an interconnect. The connection stays in the ordering state until
    --     the owner of the hosted connection confirms or declines the
    --     connection order.
    --
    -- -   @requested@: The initial state of a standard connection. The
    --     connection stays in the requested state until the Letter of
    --     Authorization (LOA) is sent to the customer.
    --
    -- -   @pending@: The connection has been approved and is being
    --     initialized.
    --
    -- -   @available@: The network link is up and the connection is ready for
    --     use.
    --
    -- -   @down@: The network link is down.
    --
    -- -   @deleting@: The connection is being deleted.
    --
    -- -   @deleted@: The connection has been deleted.
    --
    -- -   @rejected@: A hosted connection in the @ordering@ state enters the
    --     @rejected@ state if it is deleted by the customer.
    --
    -- -   @unknown@: The state of the connection is not available.
    Connection -> Maybe ConnectionState
connectionState :: Prelude.Maybe ConnectionState,
    -- | The MAC Security (MACsec) connection encryption mode.
    --
    -- The valid values are @no_encrypt@, @should_encrypt@, and @must_encrypt@.
    Connection -> Maybe Text
encryptionMode :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the connection supports a secondary BGP peer in the
    -- same address family (IPv4\/IPv6).
    Connection -> Maybe HasLogicalRedundancy
hasLogicalRedundancy :: Prelude.Maybe HasLogicalRedundancy,
    -- | Indicates whether jumbo frames (9001 MTU) are supported.
    Connection -> Maybe Bool
jumboFrameCapable :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the LAG.
    Connection -> Maybe Text
lagId :: Prelude.Maybe Prelude.Text,
    -- | The time of the most recent call to DescribeLoa for this connection.
    Connection -> Maybe POSIX
loaIssueTime :: Prelude.Maybe Data.POSIX,
    -- | The location of the connection.
    Connection -> Maybe Text
location :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the connection supports MAC Security (MACsec).
    Connection -> Maybe Bool
macSecCapable :: Prelude.Maybe Prelude.Bool,
    -- | The MAC Security (MACsec) security keys associated with the connection.
    Connection -> Maybe [MacSecKey]
macSecKeys :: Prelude.Maybe [MacSecKey],
    -- | The ID of the Amazon Web Services account that owns the connection.
    Connection -> Maybe Text
ownerAccount :: Prelude.Maybe Prelude.Text,
    -- | The name of the Direct Connect service provider associated with the
    -- connection.
    Connection -> Maybe Text
partnerName :: Prelude.Maybe Prelude.Text,
    -- | The MAC Security (MACsec) port link status of the connection.
    --
    -- The valid values are @Encryption Up@, which means that there is an
    -- active Connection Key Name, or @Encryption Down@.
    Connection -> Maybe Text
portEncryptionStatus :: Prelude.Maybe Prelude.Text,
    -- | The name of the service provider associated with the connection.
    Connection -> Maybe Text
providerName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services Region where the connection is located.
    Connection -> Maybe Text
region :: Prelude.Maybe Prelude.Text,
    -- | The tags associated with the connection.
    Connection -> Maybe (NonEmpty Tag)
tags :: Prelude.Maybe (Prelude.NonEmpty Tag),
    -- | The ID of the VLAN.
    Connection -> Maybe Int
vlan :: Prelude.Maybe Prelude.Int
  }
  deriving (Connection -> Connection -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Connection -> Connection -> Bool
$c/= :: Connection -> Connection -> Bool
== :: Connection -> Connection -> Bool
$c== :: Connection -> Connection -> Bool
Prelude.Eq, ReadPrec [Connection]
ReadPrec Connection
Int -> ReadS Connection
ReadS [Connection]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Connection]
$creadListPrec :: ReadPrec [Connection]
readPrec :: ReadPrec Connection
$creadPrec :: ReadPrec Connection
readList :: ReadS [Connection]
$creadList :: ReadS [Connection]
readsPrec :: Int -> ReadS Connection
$creadsPrec :: Int -> ReadS Connection
Prelude.Read, Int -> Connection -> ShowS
[Connection] -> ShowS
Connection -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Connection] -> ShowS
$cshowList :: [Connection] -> ShowS
show :: Connection -> String
$cshow :: Connection -> String
showsPrec :: Int -> Connection -> ShowS
$cshowsPrec :: Int -> Connection -> ShowS
Prelude.Show, forall x. Rep Connection x -> Connection
forall x. Connection -> Rep Connection x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Connection x -> Connection
$cfrom :: forall x. Connection -> Rep Connection x
Prelude.Generic)

-- |
-- Create a value of 'Connection' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'awsDevice', 'connection_awsDevice' - The Direct Connect endpoint on which the physical connection terminates.
--
-- 'awsDeviceV2', 'connection_awsDeviceV2' - The Direct Connect endpoint that terminates the physical connection.
--
-- 'awsLogicalDeviceId', 'connection_awsLogicalDeviceId' - The Direct Connect endpoint that terminates the logical connection. This
-- device might be different than the device that terminates the physical
-- connection.
--
-- 'bandwidth', 'connection_bandwidth' - The bandwidth of the connection.
--
-- 'connectionId', 'connection_connectionId' - The ID of the connection.
--
-- 'connectionName', 'connection_connectionName' - The name of the connection.
--
-- 'connectionState', 'connection_connectionState' - The state of the connection. The following are the possible values:
--
-- -   @ordering@: The initial state of a hosted connection provisioned on
--     an interconnect. The connection stays in the ordering state until
--     the owner of the hosted connection confirms or declines the
--     connection order.
--
-- -   @requested@: The initial state of a standard connection. The
--     connection stays in the requested state until the Letter of
--     Authorization (LOA) is sent to the customer.
--
-- -   @pending@: The connection has been approved and is being
--     initialized.
--
-- -   @available@: The network link is up and the connection is ready for
--     use.
--
-- -   @down@: The network link is down.
--
-- -   @deleting@: The connection is being deleted.
--
-- -   @deleted@: The connection has been deleted.
--
-- -   @rejected@: A hosted connection in the @ordering@ state enters the
--     @rejected@ state if it is deleted by the customer.
--
-- -   @unknown@: The state of the connection is not available.
--
-- 'encryptionMode', 'connection_encryptionMode' - The MAC Security (MACsec) connection encryption mode.
--
-- The valid values are @no_encrypt@, @should_encrypt@, and @must_encrypt@.
--
-- 'hasLogicalRedundancy', 'connection_hasLogicalRedundancy' - Indicates whether the connection supports a secondary BGP peer in the
-- same address family (IPv4\/IPv6).
--
-- 'jumboFrameCapable', 'connection_jumboFrameCapable' - Indicates whether jumbo frames (9001 MTU) are supported.
--
-- 'lagId', 'connection_lagId' - The ID of the LAG.
--
-- 'loaIssueTime', 'connection_loaIssueTime' - The time of the most recent call to DescribeLoa for this connection.
--
-- 'location', 'connection_location' - The location of the connection.
--
-- 'macSecCapable', 'connection_macSecCapable' - Indicates whether the connection supports MAC Security (MACsec).
--
-- 'macSecKeys', 'connection_macSecKeys' - The MAC Security (MACsec) security keys associated with the connection.
--
-- 'ownerAccount', 'connection_ownerAccount' - The ID of the Amazon Web Services account that owns the connection.
--
-- 'partnerName', 'connection_partnerName' - The name of the Direct Connect service provider associated with the
-- connection.
--
-- 'portEncryptionStatus', 'connection_portEncryptionStatus' - The MAC Security (MACsec) port link status of the connection.
--
-- The valid values are @Encryption Up@, which means that there is an
-- active Connection Key Name, or @Encryption Down@.
--
-- 'providerName', 'connection_providerName' - The name of the service provider associated with the connection.
--
-- 'region', 'connection_region' - The Amazon Web Services Region where the connection is located.
--
-- 'tags', 'connection_tags' - The tags associated with the connection.
--
-- 'vlan', 'connection_vlan' - The ID of the VLAN.
newConnection ::
  Connection
newConnection :: Connection
newConnection =
  Connection'
    { $sel:awsDevice:Connection' :: Maybe Text
awsDevice = forall a. Maybe a
Prelude.Nothing,
      $sel:awsDeviceV2:Connection' :: Maybe Text
awsDeviceV2 = forall a. Maybe a
Prelude.Nothing,
      $sel:awsLogicalDeviceId:Connection' :: Maybe Text
awsLogicalDeviceId = forall a. Maybe a
Prelude.Nothing,
      $sel:bandwidth:Connection' :: Maybe Text
bandwidth = forall a. Maybe a
Prelude.Nothing,
      $sel:connectionId:Connection' :: Maybe Text
connectionId = forall a. Maybe a
Prelude.Nothing,
      $sel:connectionName:Connection' :: Maybe Text
connectionName = forall a. Maybe a
Prelude.Nothing,
      $sel:connectionState:Connection' :: Maybe ConnectionState
connectionState = forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionMode:Connection' :: Maybe Text
encryptionMode = forall a. Maybe a
Prelude.Nothing,
      $sel:hasLogicalRedundancy:Connection' :: Maybe HasLogicalRedundancy
hasLogicalRedundancy = forall a. Maybe a
Prelude.Nothing,
      $sel:jumboFrameCapable:Connection' :: Maybe Bool
jumboFrameCapable = forall a. Maybe a
Prelude.Nothing,
      $sel:lagId:Connection' :: Maybe Text
lagId = forall a. Maybe a
Prelude.Nothing,
      $sel:loaIssueTime:Connection' :: Maybe POSIX
loaIssueTime = forall a. Maybe a
Prelude.Nothing,
      $sel:location:Connection' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing,
      $sel:macSecCapable:Connection' :: Maybe Bool
macSecCapable = forall a. Maybe a
Prelude.Nothing,
      $sel:macSecKeys:Connection' :: Maybe [MacSecKey]
macSecKeys = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerAccount:Connection' :: Maybe Text
ownerAccount = forall a. Maybe a
Prelude.Nothing,
      $sel:partnerName:Connection' :: Maybe Text
partnerName = forall a. Maybe a
Prelude.Nothing,
      $sel:portEncryptionStatus:Connection' :: Maybe Text
portEncryptionStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:providerName:Connection' :: Maybe Text
providerName = forall a. Maybe a
Prelude.Nothing,
      $sel:region:Connection' :: Maybe Text
region = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:Connection' :: Maybe (NonEmpty Tag)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:vlan:Connection' :: Maybe Int
vlan = forall a. Maybe a
Prelude.Nothing
    }

-- | The Direct Connect endpoint on which the physical connection terminates.
connection_awsDevice :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_awsDevice :: Lens' Connection (Maybe Text)
connection_awsDevice = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
awsDevice :: Maybe Text
$sel:awsDevice:Connection' :: Connection -> Maybe Text
awsDevice} -> Maybe Text
awsDevice) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:awsDevice:Connection' :: Maybe Text
awsDevice = Maybe Text
a} :: Connection)

-- | The Direct Connect endpoint that terminates the physical connection.
connection_awsDeviceV2 :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_awsDeviceV2 :: Lens' Connection (Maybe Text)
connection_awsDeviceV2 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
awsDeviceV2 :: Maybe Text
$sel:awsDeviceV2:Connection' :: Connection -> Maybe Text
awsDeviceV2} -> Maybe Text
awsDeviceV2) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:awsDeviceV2:Connection' :: Maybe Text
awsDeviceV2 = Maybe Text
a} :: Connection)

-- | The Direct Connect endpoint that terminates the logical connection. This
-- device might be different than the device that terminates the physical
-- connection.
connection_awsLogicalDeviceId :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_awsLogicalDeviceId :: Lens' Connection (Maybe Text)
connection_awsLogicalDeviceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
awsLogicalDeviceId :: Maybe Text
$sel:awsLogicalDeviceId:Connection' :: Connection -> Maybe Text
awsLogicalDeviceId} -> Maybe Text
awsLogicalDeviceId) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:awsLogicalDeviceId:Connection' :: Maybe Text
awsLogicalDeviceId = Maybe Text
a} :: Connection)

-- | The bandwidth of the connection.
connection_bandwidth :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_bandwidth :: Lens' Connection (Maybe Text)
connection_bandwidth = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
bandwidth :: Maybe Text
$sel:bandwidth:Connection' :: Connection -> Maybe Text
bandwidth} -> Maybe Text
bandwidth) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:bandwidth:Connection' :: Maybe Text
bandwidth = Maybe Text
a} :: Connection)

-- | The ID of the connection.
connection_connectionId :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_connectionId :: Lens' Connection (Maybe Text)
connection_connectionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
connectionId :: Maybe Text
$sel:connectionId:Connection' :: Connection -> Maybe Text
connectionId} -> Maybe Text
connectionId) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:connectionId:Connection' :: Maybe Text
connectionId = Maybe Text
a} :: Connection)

-- | The name of the connection.
connection_connectionName :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_connectionName :: Lens' Connection (Maybe Text)
connection_connectionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
connectionName :: Maybe Text
$sel:connectionName:Connection' :: Connection -> Maybe Text
connectionName} -> Maybe Text
connectionName) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:connectionName:Connection' :: Maybe Text
connectionName = Maybe Text
a} :: Connection)

-- | The state of the connection. The following are the possible values:
--
-- -   @ordering@: The initial state of a hosted connection provisioned on
--     an interconnect. The connection stays in the ordering state until
--     the owner of the hosted connection confirms or declines the
--     connection order.
--
-- -   @requested@: The initial state of a standard connection. The
--     connection stays in the requested state until the Letter of
--     Authorization (LOA) is sent to the customer.
--
-- -   @pending@: The connection has been approved and is being
--     initialized.
--
-- -   @available@: The network link is up and the connection is ready for
--     use.
--
-- -   @down@: The network link is down.
--
-- -   @deleting@: The connection is being deleted.
--
-- -   @deleted@: The connection has been deleted.
--
-- -   @rejected@: A hosted connection in the @ordering@ state enters the
--     @rejected@ state if it is deleted by the customer.
--
-- -   @unknown@: The state of the connection is not available.
connection_connectionState :: Lens.Lens' Connection (Prelude.Maybe ConnectionState)
connection_connectionState :: Lens' Connection (Maybe ConnectionState)
connection_connectionState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe ConnectionState
connectionState :: Maybe ConnectionState
$sel:connectionState:Connection' :: Connection -> Maybe ConnectionState
connectionState} -> Maybe ConnectionState
connectionState) (\s :: Connection
s@Connection' {} Maybe ConnectionState
a -> Connection
s {$sel:connectionState:Connection' :: Maybe ConnectionState
connectionState = Maybe ConnectionState
a} :: Connection)

-- | The MAC Security (MACsec) connection encryption mode.
--
-- The valid values are @no_encrypt@, @should_encrypt@, and @must_encrypt@.
connection_encryptionMode :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_encryptionMode :: Lens' Connection (Maybe Text)
connection_encryptionMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
encryptionMode :: Maybe Text
$sel:encryptionMode:Connection' :: Connection -> Maybe Text
encryptionMode} -> Maybe Text
encryptionMode) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:encryptionMode:Connection' :: Maybe Text
encryptionMode = Maybe Text
a} :: Connection)

-- | Indicates whether the connection supports a secondary BGP peer in the
-- same address family (IPv4\/IPv6).
connection_hasLogicalRedundancy :: Lens.Lens' Connection (Prelude.Maybe HasLogicalRedundancy)
connection_hasLogicalRedundancy :: Lens' Connection (Maybe HasLogicalRedundancy)
connection_hasLogicalRedundancy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe HasLogicalRedundancy
hasLogicalRedundancy :: Maybe HasLogicalRedundancy
$sel:hasLogicalRedundancy:Connection' :: Connection -> Maybe HasLogicalRedundancy
hasLogicalRedundancy} -> Maybe HasLogicalRedundancy
hasLogicalRedundancy) (\s :: Connection
s@Connection' {} Maybe HasLogicalRedundancy
a -> Connection
s {$sel:hasLogicalRedundancy:Connection' :: Maybe HasLogicalRedundancy
hasLogicalRedundancy = Maybe HasLogicalRedundancy
a} :: Connection)

-- | Indicates whether jumbo frames (9001 MTU) are supported.
connection_jumboFrameCapable :: Lens.Lens' Connection (Prelude.Maybe Prelude.Bool)
connection_jumboFrameCapable :: Lens' Connection (Maybe Bool)
connection_jumboFrameCapable = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Bool
jumboFrameCapable :: Maybe Bool
$sel:jumboFrameCapable:Connection' :: Connection -> Maybe Bool
jumboFrameCapable} -> Maybe Bool
jumboFrameCapable) (\s :: Connection
s@Connection' {} Maybe Bool
a -> Connection
s {$sel:jumboFrameCapable:Connection' :: Maybe Bool
jumboFrameCapable = Maybe Bool
a} :: Connection)

-- | The ID of the LAG.
connection_lagId :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_lagId :: Lens' Connection (Maybe Text)
connection_lagId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
lagId :: Maybe Text
$sel:lagId:Connection' :: Connection -> Maybe Text
lagId} -> Maybe Text
lagId) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:lagId:Connection' :: Maybe Text
lagId = Maybe Text
a} :: Connection)

-- | The time of the most recent call to DescribeLoa for this connection.
connection_loaIssueTime :: Lens.Lens' Connection (Prelude.Maybe Prelude.UTCTime)
connection_loaIssueTime :: Lens' Connection (Maybe UTCTime)
connection_loaIssueTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe POSIX
loaIssueTime :: Maybe POSIX
$sel:loaIssueTime:Connection' :: Connection -> Maybe POSIX
loaIssueTime} -> Maybe POSIX
loaIssueTime) (\s :: Connection
s@Connection' {} Maybe POSIX
a -> Connection
s {$sel:loaIssueTime:Connection' :: Maybe POSIX
loaIssueTime = Maybe POSIX
a} :: Connection) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The location of the connection.
connection_location :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_location :: Lens' Connection (Maybe Text)
connection_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
location :: Maybe Text
$sel:location:Connection' :: Connection -> Maybe Text
location} -> Maybe Text
location) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:location:Connection' :: Maybe Text
location = Maybe Text
a} :: Connection)

-- | Indicates whether the connection supports MAC Security (MACsec).
connection_macSecCapable :: Lens.Lens' Connection (Prelude.Maybe Prelude.Bool)
connection_macSecCapable :: Lens' Connection (Maybe Bool)
connection_macSecCapable = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Bool
macSecCapable :: Maybe Bool
$sel:macSecCapable:Connection' :: Connection -> Maybe Bool
macSecCapable} -> Maybe Bool
macSecCapable) (\s :: Connection
s@Connection' {} Maybe Bool
a -> Connection
s {$sel:macSecCapable:Connection' :: Maybe Bool
macSecCapable = Maybe Bool
a} :: Connection)

-- | The MAC Security (MACsec) security keys associated with the connection.
connection_macSecKeys :: Lens.Lens' Connection (Prelude.Maybe [MacSecKey])
connection_macSecKeys :: Lens' Connection (Maybe [MacSecKey])
connection_macSecKeys = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe [MacSecKey]
macSecKeys :: Maybe [MacSecKey]
$sel:macSecKeys:Connection' :: Connection -> Maybe [MacSecKey]
macSecKeys} -> Maybe [MacSecKey]
macSecKeys) (\s :: Connection
s@Connection' {} Maybe [MacSecKey]
a -> Connection
s {$sel:macSecKeys:Connection' :: Maybe [MacSecKey]
macSecKeys = Maybe [MacSecKey]
a} :: Connection) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ID of the Amazon Web Services account that owns the connection.
connection_ownerAccount :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_ownerAccount :: Lens' Connection (Maybe Text)
connection_ownerAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
ownerAccount :: Maybe Text
$sel:ownerAccount:Connection' :: Connection -> Maybe Text
ownerAccount} -> Maybe Text
ownerAccount) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:ownerAccount:Connection' :: Maybe Text
ownerAccount = Maybe Text
a} :: Connection)

-- | The name of the Direct Connect service provider associated with the
-- connection.
connection_partnerName :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_partnerName :: Lens' Connection (Maybe Text)
connection_partnerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
partnerName :: Maybe Text
$sel:partnerName:Connection' :: Connection -> Maybe Text
partnerName} -> Maybe Text
partnerName) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:partnerName:Connection' :: Maybe Text
partnerName = Maybe Text
a} :: Connection)

-- | The MAC Security (MACsec) port link status of the connection.
--
-- The valid values are @Encryption Up@, which means that there is an
-- active Connection Key Name, or @Encryption Down@.
connection_portEncryptionStatus :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_portEncryptionStatus :: Lens' Connection (Maybe Text)
connection_portEncryptionStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
portEncryptionStatus :: Maybe Text
$sel:portEncryptionStatus:Connection' :: Connection -> Maybe Text
portEncryptionStatus} -> Maybe Text
portEncryptionStatus) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:portEncryptionStatus:Connection' :: Maybe Text
portEncryptionStatus = Maybe Text
a} :: Connection)

-- | The name of the service provider associated with the connection.
connection_providerName :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_providerName :: Lens' Connection (Maybe Text)
connection_providerName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
providerName :: Maybe Text
$sel:providerName:Connection' :: Connection -> Maybe Text
providerName} -> Maybe Text
providerName) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:providerName:Connection' :: Maybe Text
providerName = Maybe Text
a} :: Connection)

-- | The Amazon Web Services Region where the connection is located.
connection_region :: Lens.Lens' Connection (Prelude.Maybe Prelude.Text)
connection_region :: Lens' Connection (Maybe Text)
connection_region = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Text
region :: Maybe Text
$sel:region:Connection' :: Connection -> Maybe Text
region} -> Maybe Text
region) (\s :: Connection
s@Connection' {} Maybe Text
a -> Connection
s {$sel:region:Connection' :: Maybe Text
region = Maybe Text
a} :: Connection)

-- | The tags associated with the connection.
connection_tags :: Lens.Lens' Connection (Prelude.Maybe (Prelude.NonEmpty Tag))
connection_tags :: Lens' Connection (Maybe (NonEmpty Tag))
connection_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe (NonEmpty Tag)
tags :: Maybe (NonEmpty Tag)
$sel:tags:Connection' :: Connection -> Maybe (NonEmpty Tag)
tags} -> Maybe (NonEmpty Tag)
tags) (\s :: Connection
s@Connection' {} Maybe (NonEmpty Tag)
a -> Connection
s {$sel:tags:Connection' :: Maybe (NonEmpty Tag)
tags = Maybe (NonEmpty Tag)
a} :: Connection) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ID of the VLAN.
connection_vlan :: Lens.Lens' Connection (Prelude.Maybe Prelude.Int)
connection_vlan :: Lens' Connection (Maybe Int)
connection_vlan = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Connection' {Maybe Int
vlan :: Maybe Int
$sel:vlan:Connection' :: Connection -> Maybe Int
vlan} -> Maybe Int
vlan) (\s :: Connection
s@Connection' {} Maybe Int
a -> Connection
s {$sel:vlan:Connection' :: Maybe Int
vlan = Maybe Int
a} :: Connection)

instance Data.FromJSON Connection where
  parseJSON :: Value -> Parser Connection
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Connection"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ConnectionState
-> Maybe Text
-> Maybe HasLogicalRedundancy
-> Maybe Bool
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Bool
-> Maybe [MacSecKey]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe (NonEmpty Tag)
-> Maybe Int
-> Connection
Connection'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"awsDevice")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"awsDeviceV2")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"awsLogicalDeviceId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"bandwidth")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"connectionId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"connectionName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"connectionState")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"encryptionMode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"hasLogicalRedundancy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"jumboFrameCapable")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lagId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"loaIssueTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"location")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"macSecCapable")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"macSecKeys" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ownerAccount")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"partnerName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"portEncryptionStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"providerName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"region")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"tags")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"vlan")
      )

instance Prelude.Hashable Connection where
  hashWithSalt :: Int -> Connection -> Int
hashWithSalt Int
_salt Connection' {Maybe Bool
Maybe Int
Maybe [MacSecKey]
Maybe (NonEmpty Tag)
Maybe Text
Maybe POSIX
Maybe ConnectionState
Maybe HasLogicalRedundancy
vlan :: Maybe Int
tags :: Maybe (NonEmpty Tag)
region :: Maybe Text
providerName :: Maybe Text
portEncryptionStatus :: Maybe Text
partnerName :: Maybe Text
ownerAccount :: Maybe Text
macSecKeys :: Maybe [MacSecKey]
macSecCapable :: Maybe Bool
location :: Maybe Text
loaIssueTime :: Maybe POSIX
lagId :: Maybe Text
jumboFrameCapable :: Maybe Bool
hasLogicalRedundancy :: Maybe HasLogicalRedundancy
encryptionMode :: Maybe Text
connectionState :: Maybe ConnectionState
connectionName :: Maybe Text
connectionId :: Maybe Text
bandwidth :: Maybe Text
awsLogicalDeviceId :: Maybe Text
awsDeviceV2 :: Maybe Text
awsDevice :: Maybe Text
$sel:vlan:Connection' :: Connection -> Maybe Int
$sel:tags:Connection' :: Connection -> Maybe (NonEmpty Tag)
$sel:region:Connection' :: Connection -> Maybe Text
$sel:providerName:Connection' :: Connection -> Maybe Text
$sel:portEncryptionStatus:Connection' :: Connection -> Maybe Text
$sel:partnerName:Connection' :: Connection -> Maybe Text
$sel:ownerAccount:Connection' :: Connection -> Maybe Text
$sel:macSecKeys:Connection' :: Connection -> Maybe [MacSecKey]
$sel:macSecCapable:Connection' :: Connection -> Maybe Bool
$sel:location:Connection' :: Connection -> Maybe Text
$sel:loaIssueTime:Connection' :: Connection -> Maybe POSIX
$sel:lagId:Connection' :: Connection -> Maybe Text
$sel:jumboFrameCapable:Connection' :: Connection -> Maybe Bool
$sel:hasLogicalRedundancy:Connection' :: Connection -> Maybe HasLogicalRedundancy
$sel:encryptionMode:Connection' :: Connection -> Maybe Text
$sel:connectionState:Connection' :: Connection -> Maybe ConnectionState
$sel:connectionName:Connection' :: Connection -> Maybe Text
$sel:connectionId:Connection' :: Connection -> Maybe Text
$sel:bandwidth:Connection' :: Connection -> Maybe Text
$sel:awsLogicalDeviceId:Connection' :: Connection -> Maybe Text
$sel:awsDeviceV2:Connection' :: Connection -> Maybe Text
$sel:awsDevice:Connection' :: Connection -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
awsDevice
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
awsDeviceV2
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
awsLogicalDeviceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
bandwidth
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
connectionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
connectionName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConnectionState
connectionState
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
encryptionMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HasLogicalRedundancy
hasLogicalRedundancy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
jumboFrameCapable
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lagId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
loaIssueTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
location
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
macSecCapable
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [MacSecKey]
macSecKeys
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAccount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
partnerName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
portEncryptionStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
providerName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
region
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Tag)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
vlan

instance Prelude.NFData Connection where
  rnf :: Connection -> ()
rnf Connection' {Maybe Bool
Maybe Int
Maybe [MacSecKey]
Maybe (NonEmpty Tag)
Maybe Text
Maybe POSIX
Maybe ConnectionState
Maybe HasLogicalRedundancy
vlan :: Maybe Int
tags :: Maybe (NonEmpty Tag)
region :: Maybe Text
providerName :: Maybe Text
portEncryptionStatus :: Maybe Text
partnerName :: Maybe Text
ownerAccount :: Maybe Text
macSecKeys :: Maybe [MacSecKey]
macSecCapable :: Maybe Bool
location :: Maybe Text
loaIssueTime :: Maybe POSIX
lagId :: Maybe Text
jumboFrameCapable :: Maybe Bool
hasLogicalRedundancy :: Maybe HasLogicalRedundancy
encryptionMode :: Maybe Text
connectionState :: Maybe ConnectionState
connectionName :: Maybe Text
connectionId :: Maybe Text
bandwidth :: Maybe Text
awsLogicalDeviceId :: Maybe Text
awsDeviceV2 :: Maybe Text
awsDevice :: Maybe Text
$sel:vlan:Connection' :: Connection -> Maybe Int
$sel:tags:Connection' :: Connection -> Maybe (NonEmpty Tag)
$sel:region:Connection' :: Connection -> Maybe Text
$sel:providerName:Connection' :: Connection -> Maybe Text
$sel:portEncryptionStatus:Connection' :: Connection -> Maybe Text
$sel:partnerName:Connection' :: Connection -> Maybe Text
$sel:ownerAccount:Connection' :: Connection -> Maybe Text
$sel:macSecKeys:Connection' :: Connection -> Maybe [MacSecKey]
$sel:macSecCapable:Connection' :: Connection -> Maybe Bool
$sel:location:Connection' :: Connection -> Maybe Text
$sel:loaIssueTime:Connection' :: Connection -> Maybe POSIX
$sel:lagId:Connection' :: Connection -> Maybe Text
$sel:jumboFrameCapable:Connection' :: Connection -> Maybe Bool
$sel:hasLogicalRedundancy:Connection' :: Connection -> Maybe HasLogicalRedundancy
$sel:encryptionMode:Connection' :: Connection -> Maybe Text
$sel:connectionState:Connection' :: Connection -> Maybe ConnectionState
$sel:connectionName:Connection' :: Connection -> Maybe Text
$sel:connectionId:Connection' :: Connection -> Maybe Text
$sel:bandwidth:Connection' :: Connection -> Maybe Text
$sel:awsLogicalDeviceId:Connection' :: Connection -> Maybe Text
$sel:awsDeviceV2:Connection' :: Connection -> Maybe Text
$sel:awsDevice:Connection' :: Connection -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsDevice
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsDeviceV2
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsLogicalDeviceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
bandwidth
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
connectionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
connectionName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConnectionState
connectionState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
encryptionMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HasLogicalRedundancy
hasLogicalRedundancy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
jumboFrameCapable
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lagId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
loaIssueTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
location
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
macSecCapable
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [MacSecKey]
macSecKeys
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
partnerName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
portEncryptionStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
providerName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
region
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Tag)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
vlan