{-# 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.EC2.Types.VpcEndpoint
-- 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.EC2.Types.VpcEndpoint where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.DnsEntry
import Amazonka.EC2.Types.DnsOptions
import Amazonka.EC2.Types.IpAddressType
import Amazonka.EC2.Types.LastError
import Amazonka.EC2.Types.SecurityGroupIdentifier
import Amazonka.EC2.Types.State
import Amazonka.EC2.Types.Tag
import Amazonka.EC2.Types.VpcEndpointType
import qualified Amazonka.Prelude as Prelude

-- | Describes a VPC endpoint.
--
-- /See:/ 'newVpcEndpoint' smart constructor.
data VpcEndpoint = VpcEndpoint'
  { -- | The date and time that the endpoint was created.
    VpcEndpoint -> Maybe ISO8601
creationTimestamp :: Prelude.Maybe Data.ISO8601,
    -- | (Interface endpoint) The DNS entries for the endpoint.
    VpcEndpoint -> Maybe [DnsEntry]
dnsEntries :: Prelude.Maybe [DnsEntry],
    -- | The DNS options for the endpoint.
    VpcEndpoint -> Maybe DnsOptions
dnsOptions :: Prelude.Maybe DnsOptions,
    -- | (Interface endpoint) Information about the security groups that are
    -- associated with the network interface.
    VpcEndpoint -> Maybe [SecurityGroupIdentifier]
groups :: Prelude.Maybe [SecurityGroupIdentifier],
    -- | The IP address type for the endpoint.
    VpcEndpoint -> Maybe IpAddressType
ipAddressType :: Prelude.Maybe IpAddressType,
    -- | The last error that occurred for endpoint.
    VpcEndpoint -> Maybe LastError
lastError :: Prelude.Maybe LastError,
    -- | (Interface endpoint) One or more network interfaces for the endpoint.
    VpcEndpoint -> Maybe [Text]
networkInterfaceIds :: Prelude.Maybe [Prelude.Text],
    -- | The ID of the Amazon Web Services account that owns the endpoint.
    VpcEndpoint -> Maybe Text
ownerId :: Prelude.Maybe Prelude.Text,
    -- | The policy document associated with the endpoint, if applicable.
    VpcEndpoint -> Maybe Text
policyDocument :: Prelude.Maybe Prelude.Text,
    -- | (Interface endpoint) Indicates whether the VPC is associated with a
    -- private hosted zone.
    VpcEndpoint -> Maybe Bool
privateDnsEnabled :: Prelude.Maybe Prelude.Bool,
    -- | Indicates whether the endpoint is being managed by its service.
    VpcEndpoint -> Maybe Bool
requesterManaged :: Prelude.Maybe Prelude.Bool,
    -- | (Gateway endpoint) One or more route tables associated with the
    -- endpoint.
    VpcEndpoint -> Maybe [Text]
routeTableIds :: Prelude.Maybe [Prelude.Text],
    -- | The name of the service to which the endpoint is associated.
    VpcEndpoint -> Maybe Text
serviceName :: Prelude.Maybe Prelude.Text,
    -- | The state of the endpoint.
    VpcEndpoint -> Maybe State
state :: Prelude.Maybe State,
    -- | (Interface endpoint) The subnets for the endpoint.
    VpcEndpoint -> Maybe [Text]
subnetIds :: Prelude.Maybe [Prelude.Text],
    -- | Any tags assigned to the endpoint.
    VpcEndpoint -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The ID of the endpoint.
    VpcEndpoint -> Maybe Text
vpcEndpointId :: Prelude.Maybe Prelude.Text,
    -- | The type of endpoint.
    VpcEndpoint -> Maybe VpcEndpointType
vpcEndpointType :: Prelude.Maybe VpcEndpointType,
    -- | The ID of the VPC to which the endpoint is associated.
    VpcEndpoint -> Maybe Text
vpcId :: Prelude.Maybe Prelude.Text
  }
  deriving (VpcEndpoint -> VpcEndpoint -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VpcEndpoint -> VpcEndpoint -> Bool
$c/= :: VpcEndpoint -> VpcEndpoint -> Bool
== :: VpcEndpoint -> VpcEndpoint -> Bool
$c== :: VpcEndpoint -> VpcEndpoint -> Bool
Prelude.Eq, ReadPrec [VpcEndpoint]
ReadPrec VpcEndpoint
Int -> ReadS VpcEndpoint
ReadS [VpcEndpoint]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VpcEndpoint]
$creadListPrec :: ReadPrec [VpcEndpoint]
readPrec :: ReadPrec VpcEndpoint
$creadPrec :: ReadPrec VpcEndpoint
readList :: ReadS [VpcEndpoint]
$creadList :: ReadS [VpcEndpoint]
readsPrec :: Int -> ReadS VpcEndpoint
$creadsPrec :: Int -> ReadS VpcEndpoint
Prelude.Read, Int -> VpcEndpoint -> ShowS
[VpcEndpoint] -> ShowS
VpcEndpoint -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VpcEndpoint] -> ShowS
$cshowList :: [VpcEndpoint] -> ShowS
show :: VpcEndpoint -> String
$cshow :: VpcEndpoint -> String
showsPrec :: Int -> VpcEndpoint -> ShowS
$cshowsPrec :: Int -> VpcEndpoint -> ShowS
Prelude.Show, forall x. Rep VpcEndpoint x -> VpcEndpoint
forall x. VpcEndpoint -> Rep VpcEndpoint x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VpcEndpoint x -> VpcEndpoint
$cfrom :: forall x. VpcEndpoint -> Rep VpcEndpoint x
Prelude.Generic)

-- |
-- Create a value of 'VpcEndpoint' 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:
--
-- 'creationTimestamp', 'vpcEndpoint_creationTimestamp' - The date and time that the endpoint was created.
--
-- 'dnsEntries', 'vpcEndpoint_dnsEntries' - (Interface endpoint) The DNS entries for the endpoint.
--
-- 'dnsOptions', 'vpcEndpoint_dnsOptions' - The DNS options for the endpoint.
--
-- 'groups', 'vpcEndpoint_groups' - (Interface endpoint) Information about the security groups that are
-- associated with the network interface.
--
-- 'ipAddressType', 'vpcEndpoint_ipAddressType' - The IP address type for the endpoint.
--
-- 'lastError', 'vpcEndpoint_lastError' - The last error that occurred for endpoint.
--
-- 'networkInterfaceIds', 'vpcEndpoint_networkInterfaceIds' - (Interface endpoint) One or more network interfaces for the endpoint.
--
-- 'ownerId', 'vpcEndpoint_ownerId' - The ID of the Amazon Web Services account that owns the endpoint.
--
-- 'policyDocument', 'vpcEndpoint_policyDocument' - The policy document associated with the endpoint, if applicable.
--
-- 'privateDnsEnabled', 'vpcEndpoint_privateDnsEnabled' - (Interface endpoint) Indicates whether the VPC is associated with a
-- private hosted zone.
--
-- 'requesterManaged', 'vpcEndpoint_requesterManaged' - Indicates whether the endpoint is being managed by its service.
--
-- 'routeTableIds', 'vpcEndpoint_routeTableIds' - (Gateway endpoint) One or more route tables associated with the
-- endpoint.
--
-- 'serviceName', 'vpcEndpoint_serviceName' - The name of the service to which the endpoint is associated.
--
-- 'state', 'vpcEndpoint_state' - The state of the endpoint.
--
-- 'subnetIds', 'vpcEndpoint_subnetIds' - (Interface endpoint) The subnets for the endpoint.
--
-- 'tags', 'vpcEndpoint_tags' - Any tags assigned to the endpoint.
--
-- 'vpcEndpointId', 'vpcEndpoint_vpcEndpointId' - The ID of the endpoint.
--
-- 'vpcEndpointType', 'vpcEndpoint_vpcEndpointType' - The type of endpoint.
--
-- 'vpcId', 'vpcEndpoint_vpcId' - The ID of the VPC to which the endpoint is associated.
newVpcEndpoint ::
  VpcEndpoint
newVpcEndpoint :: VpcEndpoint
newVpcEndpoint =
  VpcEndpoint'
    { $sel:creationTimestamp:VpcEndpoint' :: Maybe ISO8601
creationTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:dnsEntries:VpcEndpoint' :: Maybe [DnsEntry]
dnsEntries = forall a. Maybe a
Prelude.Nothing,
      $sel:dnsOptions:VpcEndpoint' :: Maybe DnsOptions
dnsOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:groups:VpcEndpoint' :: Maybe [SecurityGroupIdentifier]
groups = forall a. Maybe a
Prelude.Nothing,
      $sel:ipAddressType:VpcEndpoint' :: Maybe IpAddressType
ipAddressType = forall a. Maybe a
Prelude.Nothing,
      $sel:lastError:VpcEndpoint' :: Maybe LastError
lastError = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterfaceIds:VpcEndpoint' :: Maybe [Text]
networkInterfaceIds = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerId:VpcEndpoint' :: Maybe Text
ownerId = forall a. Maybe a
Prelude.Nothing,
      $sel:policyDocument:VpcEndpoint' :: Maybe Text
policyDocument = forall a. Maybe a
Prelude.Nothing,
      $sel:privateDnsEnabled:VpcEndpoint' :: Maybe Bool
privateDnsEnabled = forall a. Maybe a
Prelude.Nothing,
      $sel:requesterManaged:VpcEndpoint' :: Maybe Bool
requesterManaged = forall a. Maybe a
Prelude.Nothing,
      $sel:routeTableIds:VpcEndpoint' :: Maybe [Text]
routeTableIds = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceName:VpcEndpoint' :: Maybe Text
serviceName = forall a. Maybe a
Prelude.Nothing,
      $sel:state:VpcEndpoint' :: Maybe State
state = forall a. Maybe a
Prelude.Nothing,
      $sel:subnetIds:VpcEndpoint' :: Maybe [Text]
subnetIds = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:VpcEndpoint' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcEndpointId:VpcEndpoint' :: Maybe Text
vpcEndpointId = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcEndpointType:VpcEndpoint' :: Maybe VpcEndpointType
vpcEndpointType = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcId:VpcEndpoint' :: Maybe Text
vpcId = forall a. Maybe a
Prelude.Nothing
    }

-- | The date and time that the endpoint was created.
vpcEndpoint_creationTimestamp :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.UTCTime)
vpcEndpoint_creationTimestamp :: Lens' VpcEndpoint (Maybe UTCTime)
vpcEndpoint_creationTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe ISO8601
creationTimestamp :: Maybe ISO8601
$sel:creationTimestamp:VpcEndpoint' :: VpcEndpoint -> Maybe ISO8601
creationTimestamp} -> Maybe ISO8601
creationTimestamp) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe ISO8601
a -> VpcEndpoint
s {$sel:creationTimestamp:VpcEndpoint' :: Maybe ISO8601
creationTimestamp = Maybe ISO8601
a} :: VpcEndpoint) 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

-- | (Interface endpoint) The DNS entries for the endpoint.
vpcEndpoint_dnsEntries :: Lens.Lens' VpcEndpoint (Prelude.Maybe [DnsEntry])
vpcEndpoint_dnsEntries :: Lens' VpcEndpoint (Maybe [DnsEntry])
vpcEndpoint_dnsEntries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe [DnsEntry]
dnsEntries :: Maybe [DnsEntry]
$sel:dnsEntries:VpcEndpoint' :: VpcEndpoint -> Maybe [DnsEntry]
dnsEntries} -> Maybe [DnsEntry]
dnsEntries) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe [DnsEntry]
a -> VpcEndpoint
s {$sel:dnsEntries:VpcEndpoint' :: Maybe [DnsEntry]
dnsEntries = Maybe [DnsEntry]
a} :: VpcEndpoint) 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 DNS options for the endpoint.
vpcEndpoint_dnsOptions :: Lens.Lens' VpcEndpoint (Prelude.Maybe DnsOptions)
vpcEndpoint_dnsOptions :: Lens' VpcEndpoint (Maybe DnsOptions)
vpcEndpoint_dnsOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe DnsOptions
dnsOptions :: Maybe DnsOptions
$sel:dnsOptions:VpcEndpoint' :: VpcEndpoint -> Maybe DnsOptions
dnsOptions} -> Maybe DnsOptions
dnsOptions) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe DnsOptions
a -> VpcEndpoint
s {$sel:dnsOptions:VpcEndpoint' :: Maybe DnsOptions
dnsOptions = Maybe DnsOptions
a} :: VpcEndpoint)

-- | (Interface endpoint) Information about the security groups that are
-- associated with the network interface.
vpcEndpoint_groups :: Lens.Lens' VpcEndpoint (Prelude.Maybe [SecurityGroupIdentifier])
vpcEndpoint_groups :: Lens' VpcEndpoint (Maybe [SecurityGroupIdentifier])
vpcEndpoint_groups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe [SecurityGroupIdentifier]
groups :: Maybe [SecurityGroupIdentifier]
$sel:groups:VpcEndpoint' :: VpcEndpoint -> Maybe [SecurityGroupIdentifier]
groups} -> Maybe [SecurityGroupIdentifier]
groups) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe [SecurityGroupIdentifier]
a -> VpcEndpoint
s {$sel:groups:VpcEndpoint' :: Maybe [SecurityGroupIdentifier]
groups = Maybe [SecurityGroupIdentifier]
a} :: VpcEndpoint) 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 IP address type for the endpoint.
vpcEndpoint_ipAddressType :: Lens.Lens' VpcEndpoint (Prelude.Maybe IpAddressType)
vpcEndpoint_ipAddressType :: Lens' VpcEndpoint (Maybe IpAddressType)
vpcEndpoint_ipAddressType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe IpAddressType
ipAddressType :: Maybe IpAddressType
$sel:ipAddressType:VpcEndpoint' :: VpcEndpoint -> Maybe IpAddressType
ipAddressType} -> Maybe IpAddressType
ipAddressType) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe IpAddressType
a -> VpcEndpoint
s {$sel:ipAddressType:VpcEndpoint' :: Maybe IpAddressType
ipAddressType = Maybe IpAddressType
a} :: VpcEndpoint)

-- | The last error that occurred for endpoint.
vpcEndpoint_lastError :: Lens.Lens' VpcEndpoint (Prelude.Maybe LastError)
vpcEndpoint_lastError :: Lens' VpcEndpoint (Maybe LastError)
vpcEndpoint_lastError = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe LastError
lastError :: Maybe LastError
$sel:lastError:VpcEndpoint' :: VpcEndpoint -> Maybe LastError
lastError} -> Maybe LastError
lastError) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe LastError
a -> VpcEndpoint
s {$sel:lastError:VpcEndpoint' :: Maybe LastError
lastError = Maybe LastError
a} :: VpcEndpoint)

-- | (Interface endpoint) One or more network interfaces for the endpoint.
vpcEndpoint_networkInterfaceIds :: Lens.Lens' VpcEndpoint (Prelude.Maybe [Prelude.Text])
vpcEndpoint_networkInterfaceIds :: Lens' VpcEndpoint (Maybe [Text])
vpcEndpoint_networkInterfaceIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe [Text]
networkInterfaceIds :: Maybe [Text]
$sel:networkInterfaceIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
networkInterfaceIds} -> Maybe [Text]
networkInterfaceIds) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe [Text]
a -> VpcEndpoint
s {$sel:networkInterfaceIds:VpcEndpoint' :: Maybe [Text]
networkInterfaceIds = Maybe [Text]
a} :: VpcEndpoint) 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 endpoint.
vpcEndpoint_ownerId :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)
vpcEndpoint_ownerId :: Lens' VpcEndpoint (Maybe Text)
vpcEndpoint_ownerId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Text
ownerId :: Maybe Text
$sel:ownerId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
ownerId} -> Maybe Text
ownerId) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Text
a -> VpcEndpoint
s {$sel:ownerId:VpcEndpoint' :: Maybe Text
ownerId = Maybe Text
a} :: VpcEndpoint)

-- | The policy document associated with the endpoint, if applicable.
vpcEndpoint_policyDocument :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)
vpcEndpoint_policyDocument :: Lens' VpcEndpoint (Maybe Text)
vpcEndpoint_policyDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Text
policyDocument :: Maybe Text
$sel:policyDocument:VpcEndpoint' :: VpcEndpoint -> Maybe Text
policyDocument} -> Maybe Text
policyDocument) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Text
a -> VpcEndpoint
s {$sel:policyDocument:VpcEndpoint' :: Maybe Text
policyDocument = Maybe Text
a} :: VpcEndpoint)

-- | (Interface endpoint) Indicates whether the VPC is associated with a
-- private hosted zone.
vpcEndpoint_privateDnsEnabled :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Bool)
vpcEndpoint_privateDnsEnabled :: Lens' VpcEndpoint (Maybe Bool)
vpcEndpoint_privateDnsEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Bool
privateDnsEnabled :: Maybe Bool
$sel:privateDnsEnabled:VpcEndpoint' :: VpcEndpoint -> Maybe Bool
privateDnsEnabled} -> Maybe Bool
privateDnsEnabled) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Bool
a -> VpcEndpoint
s {$sel:privateDnsEnabled:VpcEndpoint' :: Maybe Bool
privateDnsEnabled = Maybe Bool
a} :: VpcEndpoint)

-- | Indicates whether the endpoint is being managed by its service.
vpcEndpoint_requesterManaged :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Bool)
vpcEndpoint_requesterManaged :: Lens' VpcEndpoint (Maybe Bool)
vpcEndpoint_requesterManaged = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Bool
requesterManaged :: Maybe Bool
$sel:requesterManaged:VpcEndpoint' :: VpcEndpoint -> Maybe Bool
requesterManaged} -> Maybe Bool
requesterManaged) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Bool
a -> VpcEndpoint
s {$sel:requesterManaged:VpcEndpoint' :: Maybe Bool
requesterManaged = Maybe Bool
a} :: VpcEndpoint)

-- | (Gateway endpoint) One or more route tables associated with the
-- endpoint.
vpcEndpoint_routeTableIds :: Lens.Lens' VpcEndpoint (Prelude.Maybe [Prelude.Text])
vpcEndpoint_routeTableIds :: Lens' VpcEndpoint (Maybe [Text])
vpcEndpoint_routeTableIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe [Text]
routeTableIds :: Maybe [Text]
$sel:routeTableIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
routeTableIds} -> Maybe [Text]
routeTableIds) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe [Text]
a -> VpcEndpoint
s {$sel:routeTableIds:VpcEndpoint' :: Maybe [Text]
routeTableIds = Maybe [Text]
a} :: VpcEndpoint) 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 name of the service to which the endpoint is associated.
vpcEndpoint_serviceName :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)
vpcEndpoint_serviceName :: Lens' VpcEndpoint (Maybe Text)
vpcEndpoint_serviceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Text
serviceName :: Maybe Text
$sel:serviceName:VpcEndpoint' :: VpcEndpoint -> Maybe Text
serviceName} -> Maybe Text
serviceName) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Text
a -> VpcEndpoint
s {$sel:serviceName:VpcEndpoint' :: Maybe Text
serviceName = Maybe Text
a} :: VpcEndpoint)

-- | The state of the endpoint.
vpcEndpoint_state :: Lens.Lens' VpcEndpoint (Prelude.Maybe State)
vpcEndpoint_state :: Lens' VpcEndpoint (Maybe State)
vpcEndpoint_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe State
state :: Maybe State
$sel:state:VpcEndpoint' :: VpcEndpoint -> Maybe State
state} -> Maybe State
state) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe State
a -> VpcEndpoint
s {$sel:state:VpcEndpoint' :: Maybe State
state = Maybe State
a} :: VpcEndpoint)

-- | (Interface endpoint) The subnets for the endpoint.
vpcEndpoint_subnetIds :: Lens.Lens' VpcEndpoint (Prelude.Maybe [Prelude.Text])
vpcEndpoint_subnetIds :: Lens' VpcEndpoint (Maybe [Text])
vpcEndpoint_subnetIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe [Text]
subnetIds :: Maybe [Text]
$sel:subnetIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
subnetIds} -> Maybe [Text]
subnetIds) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe [Text]
a -> VpcEndpoint
s {$sel:subnetIds:VpcEndpoint' :: Maybe [Text]
subnetIds = Maybe [Text]
a} :: VpcEndpoint) 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

-- | Any tags assigned to the endpoint.
vpcEndpoint_tags :: Lens.Lens' VpcEndpoint (Prelude.Maybe [Tag])
vpcEndpoint_tags :: Lens' VpcEndpoint (Maybe [Tag])
vpcEndpoint_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:VpcEndpoint' :: VpcEndpoint -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe [Tag]
a -> VpcEndpoint
s {$sel:tags:VpcEndpoint' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: VpcEndpoint) 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 endpoint.
vpcEndpoint_vpcEndpointId :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)
vpcEndpoint_vpcEndpointId :: Lens' VpcEndpoint (Maybe Text)
vpcEndpoint_vpcEndpointId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Text
vpcEndpointId :: Maybe Text
$sel:vpcEndpointId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
vpcEndpointId} -> Maybe Text
vpcEndpointId) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Text
a -> VpcEndpoint
s {$sel:vpcEndpointId:VpcEndpoint' :: Maybe Text
vpcEndpointId = Maybe Text
a} :: VpcEndpoint)

-- | The type of endpoint.
vpcEndpoint_vpcEndpointType :: Lens.Lens' VpcEndpoint (Prelude.Maybe VpcEndpointType)
vpcEndpoint_vpcEndpointType :: Lens' VpcEndpoint (Maybe VpcEndpointType)
vpcEndpoint_vpcEndpointType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe VpcEndpointType
vpcEndpointType :: Maybe VpcEndpointType
$sel:vpcEndpointType:VpcEndpoint' :: VpcEndpoint -> Maybe VpcEndpointType
vpcEndpointType} -> Maybe VpcEndpointType
vpcEndpointType) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe VpcEndpointType
a -> VpcEndpoint
s {$sel:vpcEndpointType:VpcEndpoint' :: Maybe VpcEndpointType
vpcEndpointType = Maybe VpcEndpointType
a} :: VpcEndpoint)

-- | The ID of the VPC to which the endpoint is associated.
vpcEndpoint_vpcId :: Lens.Lens' VpcEndpoint (Prelude.Maybe Prelude.Text)
vpcEndpoint_vpcId :: Lens' VpcEndpoint (Maybe Text)
vpcEndpoint_vpcId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VpcEndpoint' {Maybe Text
vpcId :: Maybe Text
$sel:vpcId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
vpcId} -> Maybe Text
vpcId) (\s :: VpcEndpoint
s@VpcEndpoint' {} Maybe Text
a -> VpcEndpoint
s {$sel:vpcId:VpcEndpoint' :: Maybe Text
vpcId = Maybe Text
a} :: VpcEndpoint)

instance Data.FromXML VpcEndpoint where
  parseXML :: [Node] -> Either String VpcEndpoint
parseXML [Node]
x =
    Maybe ISO8601
-> Maybe [DnsEntry]
-> Maybe DnsOptions
-> Maybe [SecurityGroupIdentifier]
-> Maybe IpAddressType
-> Maybe LastError
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe State
-> Maybe [Text]
-> Maybe [Tag]
-> Maybe Text
-> Maybe VpcEndpointType
-> Maybe Text
-> VpcEndpoint
VpcEndpoint'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"creationTimestamp")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"dnsEntrySet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"dnsOptions")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"groupSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ipAddressType")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"lastError")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"networkInterfaceIdSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ownerId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"policyDocument")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"privateDnsEnabled")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"requesterManaged")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"routeTableIdSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"serviceName")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"state")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"subnetIdSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"tagSet"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"vpcEndpointId")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"vpcEndpointType")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"vpcId")

instance Prelude.Hashable VpcEndpoint where
  hashWithSalt :: Int -> VpcEndpoint -> Int
hashWithSalt Int
_salt VpcEndpoint' {Maybe Bool
Maybe [Text]
Maybe [DnsEntry]
Maybe [SecurityGroupIdentifier]
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe DnsOptions
Maybe IpAddressType
Maybe LastError
Maybe State
Maybe VpcEndpointType
vpcId :: Maybe Text
vpcEndpointType :: Maybe VpcEndpointType
vpcEndpointId :: Maybe Text
tags :: Maybe [Tag]
subnetIds :: Maybe [Text]
state :: Maybe State
serviceName :: Maybe Text
routeTableIds :: Maybe [Text]
requesterManaged :: Maybe Bool
privateDnsEnabled :: Maybe Bool
policyDocument :: Maybe Text
ownerId :: Maybe Text
networkInterfaceIds :: Maybe [Text]
lastError :: Maybe LastError
ipAddressType :: Maybe IpAddressType
groups :: Maybe [SecurityGroupIdentifier]
dnsOptions :: Maybe DnsOptions
dnsEntries :: Maybe [DnsEntry]
creationTimestamp :: Maybe ISO8601
$sel:vpcId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:vpcEndpointType:VpcEndpoint' :: VpcEndpoint -> Maybe VpcEndpointType
$sel:vpcEndpointId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:tags:VpcEndpoint' :: VpcEndpoint -> Maybe [Tag]
$sel:subnetIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
$sel:state:VpcEndpoint' :: VpcEndpoint -> Maybe State
$sel:serviceName:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:routeTableIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
$sel:requesterManaged:VpcEndpoint' :: VpcEndpoint -> Maybe Bool
$sel:privateDnsEnabled:VpcEndpoint' :: VpcEndpoint -> Maybe Bool
$sel:policyDocument:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:ownerId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:networkInterfaceIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
$sel:lastError:VpcEndpoint' :: VpcEndpoint -> Maybe LastError
$sel:ipAddressType:VpcEndpoint' :: VpcEndpoint -> Maybe IpAddressType
$sel:groups:VpcEndpoint' :: VpcEndpoint -> Maybe [SecurityGroupIdentifier]
$sel:dnsOptions:VpcEndpoint' :: VpcEndpoint -> Maybe DnsOptions
$sel:dnsEntries:VpcEndpoint' :: VpcEndpoint -> Maybe [DnsEntry]
$sel:creationTimestamp:VpcEndpoint' :: VpcEndpoint -> Maybe ISO8601
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
creationTimestamp
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [DnsEntry]
dnsEntries
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DnsOptions
dnsOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [SecurityGroupIdentifier]
groups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IpAddressType
ipAddressType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LastError
lastError
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
networkInterfaceIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
policyDocument
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
privateDnsEnabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
requesterManaged
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
routeTableIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe State
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
subnetIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpcEndpointId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VpcEndpointType
vpcEndpointType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpcId

instance Prelude.NFData VpcEndpoint where
  rnf :: VpcEndpoint -> ()
rnf VpcEndpoint' {Maybe Bool
Maybe [Text]
Maybe [DnsEntry]
Maybe [SecurityGroupIdentifier]
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe DnsOptions
Maybe IpAddressType
Maybe LastError
Maybe State
Maybe VpcEndpointType
vpcId :: Maybe Text
vpcEndpointType :: Maybe VpcEndpointType
vpcEndpointId :: Maybe Text
tags :: Maybe [Tag]
subnetIds :: Maybe [Text]
state :: Maybe State
serviceName :: Maybe Text
routeTableIds :: Maybe [Text]
requesterManaged :: Maybe Bool
privateDnsEnabled :: Maybe Bool
policyDocument :: Maybe Text
ownerId :: Maybe Text
networkInterfaceIds :: Maybe [Text]
lastError :: Maybe LastError
ipAddressType :: Maybe IpAddressType
groups :: Maybe [SecurityGroupIdentifier]
dnsOptions :: Maybe DnsOptions
dnsEntries :: Maybe [DnsEntry]
creationTimestamp :: Maybe ISO8601
$sel:vpcId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:vpcEndpointType:VpcEndpoint' :: VpcEndpoint -> Maybe VpcEndpointType
$sel:vpcEndpointId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:tags:VpcEndpoint' :: VpcEndpoint -> Maybe [Tag]
$sel:subnetIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
$sel:state:VpcEndpoint' :: VpcEndpoint -> Maybe State
$sel:serviceName:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:routeTableIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
$sel:requesterManaged:VpcEndpoint' :: VpcEndpoint -> Maybe Bool
$sel:privateDnsEnabled:VpcEndpoint' :: VpcEndpoint -> Maybe Bool
$sel:policyDocument:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:ownerId:VpcEndpoint' :: VpcEndpoint -> Maybe Text
$sel:networkInterfaceIds:VpcEndpoint' :: VpcEndpoint -> Maybe [Text]
$sel:lastError:VpcEndpoint' :: VpcEndpoint -> Maybe LastError
$sel:ipAddressType:VpcEndpoint' :: VpcEndpoint -> Maybe IpAddressType
$sel:groups:VpcEndpoint' :: VpcEndpoint -> Maybe [SecurityGroupIdentifier]
$sel:dnsOptions:VpcEndpoint' :: VpcEndpoint -> Maybe DnsOptions
$sel:dnsEntries:VpcEndpoint' :: VpcEndpoint -> Maybe [DnsEntry]
$sel:creationTimestamp:VpcEndpoint' :: VpcEndpoint -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
creationTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [DnsEntry]
dnsEntries
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DnsOptions
dnsOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [SecurityGroupIdentifier]
groups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IpAddressType
ipAddressType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LastError
lastError
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
networkInterfaceIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
policyDocument
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
privateDnsEnabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
requesterManaged
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
routeTableIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe State
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
subnetIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpcEndpointId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VpcEndpointType
vpcEndpointType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpcId