amazonka-securityhub-2.0: gen/Amazonka/SecurityHub/Types/AwsEc2VpcPeeringConnectionDetails.hs
{-# 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.SecurityHub.Types.AwsEc2VpcPeeringConnectionDetails
-- 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.SecurityHub.Types.AwsEc2VpcPeeringConnectionDetails where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SecurityHub.Types.AwsEc2VpcPeeringConnectionStatusDetails
import Amazonka.SecurityHub.Types.AwsEc2VpcPeeringConnectionVpcInfoDetails
-- | Provides information about a VPC peering connection between two VPCs: a
-- requester VPC that you own and an accepter VPC with which to create the
-- connection.
--
-- /See:/ 'newAwsEc2VpcPeeringConnectionDetails' smart constructor.
data AwsEc2VpcPeeringConnectionDetails = AwsEc2VpcPeeringConnectionDetails'
{ -- | Information about the accepter VPC.
accepterVpcInfo :: Prelude.Maybe AwsEc2VpcPeeringConnectionVpcInfoDetails,
-- | The time at which an unaccepted VPC peering connection will expire.
expirationTime :: Prelude.Maybe Prelude.Text,
-- | Information about the requester VPC.
requesterVpcInfo :: Prelude.Maybe AwsEc2VpcPeeringConnectionVpcInfoDetails,
-- | The status of the VPC peering connection.
status :: Prelude.Maybe AwsEc2VpcPeeringConnectionStatusDetails,
-- | The ID of the VPC peering connection.
vpcPeeringConnectionId :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'AwsEc2VpcPeeringConnectionDetails' 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:
--
-- 'accepterVpcInfo', 'awsEc2VpcPeeringConnectionDetails_accepterVpcInfo' - Information about the accepter VPC.
--
-- 'expirationTime', 'awsEc2VpcPeeringConnectionDetails_expirationTime' - The time at which an unaccepted VPC peering connection will expire.
--
-- 'requesterVpcInfo', 'awsEc2VpcPeeringConnectionDetails_requesterVpcInfo' - Information about the requester VPC.
--
-- 'status', 'awsEc2VpcPeeringConnectionDetails_status' - The status of the VPC peering connection.
--
-- 'vpcPeeringConnectionId', 'awsEc2VpcPeeringConnectionDetails_vpcPeeringConnectionId' - The ID of the VPC peering connection.
newAwsEc2VpcPeeringConnectionDetails ::
AwsEc2VpcPeeringConnectionDetails
newAwsEc2VpcPeeringConnectionDetails =
AwsEc2VpcPeeringConnectionDetails'
{ accepterVpcInfo =
Prelude.Nothing,
expirationTime = Prelude.Nothing,
requesterVpcInfo = Prelude.Nothing,
status = Prelude.Nothing,
vpcPeeringConnectionId = Prelude.Nothing
}
-- | Information about the accepter VPC.
awsEc2VpcPeeringConnectionDetails_accepterVpcInfo :: Lens.Lens' AwsEc2VpcPeeringConnectionDetails (Prelude.Maybe AwsEc2VpcPeeringConnectionVpcInfoDetails)
awsEc2VpcPeeringConnectionDetails_accepterVpcInfo = Lens.lens (\AwsEc2VpcPeeringConnectionDetails' {accepterVpcInfo} -> accepterVpcInfo) (\s@AwsEc2VpcPeeringConnectionDetails' {} a -> s {accepterVpcInfo = a} :: AwsEc2VpcPeeringConnectionDetails)
-- | The time at which an unaccepted VPC peering connection will expire.
awsEc2VpcPeeringConnectionDetails_expirationTime :: Lens.Lens' AwsEc2VpcPeeringConnectionDetails (Prelude.Maybe Prelude.Text)
awsEc2VpcPeeringConnectionDetails_expirationTime = Lens.lens (\AwsEc2VpcPeeringConnectionDetails' {expirationTime} -> expirationTime) (\s@AwsEc2VpcPeeringConnectionDetails' {} a -> s {expirationTime = a} :: AwsEc2VpcPeeringConnectionDetails)
-- | Information about the requester VPC.
awsEc2VpcPeeringConnectionDetails_requesterVpcInfo :: Lens.Lens' AwsEc2VpcPeeringConnectionDetails (Prelude.Maybe AwsEc2VpcPeeringConnectionVpcInfoDetails)
awsEc2VpcPeeringConnectionDetails_requesterVpcInfo = Lens.lens (\AwsEc2VpcPeeringConnectionDetails' {requesterVpcInfo} -> requesterVpcInfo) (\s@AwsEc2VpcPeeringConnectionDetails' {} a -> s {requesterVpcInfo = a} :: AwsEc2VpcPeeringConnectionDetails)
-- | The status of the VPC peering connection.
awsEc2VpcPeeringConnectionDetails_status :: Lens.Lens' AwsEc2VpcPeeringConnectionDetails (Prelude.Maybe AwsEc2VpcPeeringConnectionStatusDetails)
awsEc2VpcPeeringConnectionDetails_status = Lens.lens (\AwsEc2VpcPeeringConnectionDetails' {status} -> status) (\s@AwsEc2VpcPeeringConnectionDetails' {} a -> s {status = a} :: AwsEc2VpcPeeringConnectionDetails)
-- | The ID of the VPC peering connection.
awsEc2VpcPeeringConnectionDetails_vpcPeeringConnectionId :: Lens.Lens' AwsEc2VpcPeeringConnectionDetails (Prelude.Maybe Prelude.Text)
awsEc2VpcPeeringConnectionDetails_vpcPeeringConnectionId = Lens.lens (\AwsEc2VpcPeeringConnectionDetails' {vpcPeeringConnectionId} -> vpcPeeringConnectionId) (\s@AwsEc2VpcPeeringConnectionDetails' {} a -> s {vpcPeeringConnectionId = a} :: AwsEc2VpcPeeringConnectionDetails)
instance
Data.FromJSON
AwsEc2VpcPeeringConnectionDetails
where
parseJSON =
Data.withObject
"AwsEc2VpcPeeringConnectionDetails"
( \x ->
AwsEc2VpcPeeringConnectionDetails'
Prelude.<$> (x Data..:? "AccepterVpcInfo")
Prelude.<*> (x Data..:? "ExpirationTime")
Prelude.<*> (x Data..:? "RequesterVpcInfo")
Prelude.<*> (x Data..:? "Status")
Prelude.<*> (x Data..:? "VpcPeeringConnectionId")
)
instance
Prelude.Hashable
AwsEc2VpcPeeringConnectionDetails
where
hashWithSalt
_salt
AwsEc2VpcPeeringConnectionDetails' {..} =
_salt
`Prelude.hashWithSalt` accepterVpcInfo
`Prelude.hashWithSalt` expirationTime
`Prelude.hashWithSalt` requesterVpcInfo
`Prelude.hashWithSalt` status
`Prelude.hashWithSalt` vpcPeeringConnectionId
instance
Prelude.NFData
AwsEc2VpcPeeringConnectionDetails
where
rnf AwsEc2VpcPeeringConnectionDetails' {..} =
Prelude.rnf accepterVpcInfo
`Prelude.seq` Prelude.rnf expirationTime
`Prelude.seq` Prelude.rnf requesterVpcInfo
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf vpcPeeringConnectionId
instance
Data.ToJSON
AwsEc2VpcPeeringConnectionDetails
where
toJSON AwsEc2VpcPeeringConnectionDetails' {..} =
Data.object
( Prelude.catMaybes
[ ("AccepterVpcInfo" Data..=)
Prelude.<$> accepterVpcInfo,
("ExpirationTime" Data..=)
Prelude.<$> expirationTime,
("RequesterVpcInfo" Data..=)
Prelude.<$> requesterVpcInfo,
("Status" Data..=) Prelude.<$> status,
("VpcPeeringConnectionId" Data..=)
Prelude.<$> vpcPeeringConnectionId
]
)