{-# 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.VerifiedAccessEndpoint
-- 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.VerifiedAccessEndpoint 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.Tag
import Amazonka.EC2.Types.VerifiedAccessEndpointAttachmentType
import Amazonka.EC2.Types.VerifiedAccessEndpointEniOptions
import Amazonka.EC2.Types.VerifiedAccessEndpointLoadBalancerOptions
import Amazonka.EC2.Types.VerifiedAccessEndpointStatus
import Amazonka.EC2.Types.VerifiedAccessEndpointType
import qualified Amazonka.Prelude as Prelude

-- | An Amazon Web Services Verified Access endpoint specifies the
-- application that Amazon Web Services Verified Access provides access to.
-- It must be attached to an Amazon Web Services Verified Access group. An
-- Amazon Web Services Verified Access endpoint must also have an attached
-- access policy before you attached it to a group.
--
-- /See:/ 'newVerifiedAccessEndpoint' smart constructor.
data VerifiedAccessEndpoint = VerifiedAccessEndpoint'
  { -- | The DNS name for users to reach your application.
    VerifiedAccessEndpoint -> Maybe Text
applicationDomain :: Prelude.Maybe Prelude.Text,
    -- | The type of attachment used to provide connectivity between the Amazon
    -- Web Services Verified Access endpoint and the application.
    VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointAttachmentType
attachmentType :: Prelude.Maybe VerifiedAccessEndpointAttachmentType,
    -- | The creation time.
    VerifiedAccessEndpoint -> Maybe Text
creationTime :: Prelude.Maybe Prelude.Text,
    -- | The deletion time.
    VerifiedAccessEndpoint -> Maybe Text
deletionTime :: Prelude.Maybe Prelude.Text,
    -- | A description for the Amazon Web Services Verified Access endpoint.
    VerifiedAccessEndpoint -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Returned if endpoint has a device trust provider attached.
    VerifiedAccessEndpoint -> Maybe Text
deviceValidationDomain :: Prelude.Maybe Prelude.Text,
    -- | The ARN of a public TLS\/SSL certificate imported into or created with
    -- ACM.
    VerifiedAccessEndpoint -> Maybe Text
domainCertificateArn :: Prelude.Maybe Prelude.Text,
    -- | A DNS name that is generated for the endpoint.
    VerifiedAccessEndpoint -> Maybe Text
endpointDomain :: Prelude.Maybe Prelude.Text,
    -- | The type of Amazon Web Services Verified Access endpoint. Incoming
    -- application requests will be sent to an IP address, load balancer or a
    -- network interface depending on the endpoint type specified.
    VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointType
endpointType :: Prelude.Maybe VerifiedAccessEndpointType,
    -- | The last updated time.
    VerifiedAccessEndpoint -> Maybe Text
lastUpdatedTime :: Prelude.Maybe Prelude.Text,
    -- | The load balancer details if creating the Amazon Web Services Verified
    -- Access endpoint as @load-balancer@type.
    VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions :: Prelude.Maybe VerifiedAccessEndpointLoadBalancerOptions,
    -- | The options for network-interface type endpoint.
    VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions :: Prelude.Maybe VerifiedAccessEndpointEniOptions,
    -- | The IDs of the security groups for the endpoint.
    VerifiedAccessEndpoint -> Maybe [Text]
securityGroupIds :: Prelude.Maybe [Prelude.Text],
    -- | The endpoint status.
    VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointStatus
status :: Prelude.Maybe VerifiedAccessEndpointStatus,
    -- | The tags.
    VerifiedAccessEndpoint -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The ID of the Amazon Web Services Verified Access endpoint.
    VerifiedAccessEndpoint -> Maybe Text
verifiedAccessEndpointId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Amazon Web Services Verified Access group.
    VerifiedAccessEndpoint -> Maybe Text
verifiedAccessGroupId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Amazon Web Services Verified Access instance.
    VerifiedAccessEndpoint -> Maybe Text
verifiedAccessInstanceId :: Prelude.Maybe Prelude.Text
  }
  deriving (VerifiedAccessEndpoint -> VerifiedAccessEndpoint -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VerifiedAccessEndpoint -> VerifiedAccessEndpoint -> Bool
$c/= :: VerifiedAccessEndpoint -> VerifiedAccessEndpoint -> Bool
== :: VerifiedAccessEndpoint -> VerifiedAccessEndpoint -> Bool
$c== :: VerifiedAccessEndpoint -> VerifiedAccessEndpoint -> Bool
Prelude.Eq, ReadPrec [VerifiedAccessEndpoint]
ReadPrec VerifiedAccessEndpoint
Int -> ReadS VerifiedAccessEndpoint
ReadS [VerifiedAccessEndpoint]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VerifiedAccessEndpoint]
$creadListPrec :: ReadPrec [VerifiedAccessEndpoint]
readPrec :: ReadPrec VerifiedAccessEndpoint
$creadPrec :: ReadPrec VerifiedAccessEndpoint
readList :: ReadS [VerifiedAccessEndpoint]
$creadList :: ReadS [VerifiedAccessEndpoint]
readsPrec :: Int -> ReadS VerifiedAccessEndpoint
$creadsPrec :: Int -> ReadS VerifiedAccessEndpoint
Prelude.Read, Int -> VerifiedAccessEndpoint -> ShowS
[VerifiedAccessEndpoint] -> ShowS
VerifiedAccessEndpoint -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VerifiedAccessEndpoint] -> ShowS
$cshowList :: [VerifiedAccessEndpoint] -> ShowS
show :: VerifiedAccessEndpoint -> String
$cshow :: VerifiedAccessEndpoint -> String
showsPrec :: Int -> VerifiedAccessEndpoint -> ShowS
$cshowsPrec :: Int -> VerifiedAccessEndpoint -> ShowS
Prelude.Show, forall x. Rep VerifiedAccessEndpoint x -> VerifiedAccessEndpoint
forall x. VerifiedAccessEndpoint -> Rep VerifiedAccessEndpoint x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VerifiedAccessEndpoint x -> VerifiedAccessEndpoint
$cfrom :: forall x. VerifiedAccessEndpoint -> Rep VerifiedAccessEndpoint x
Prelude.Generic)

-- |
-- Create a value of 'VerifiedAccessEndpoint' 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:
--
-- 'applicationDomain', 'verifiedAccessEndpoint_applicationDomain' - The DNS name for users to reach your application.
--
-- 'attachmentType', 'verifiedAccessEndpoint_attachmentType' - The type of attachment used to provide connectivity between the Amazon
-- Web Services Verified Access endpoint and the application.
--
-- 'creationTime', 'verifiedAccessEndpoint_creationTime' - The creation time.
--
-- 'deletionTime', 'verifiedAccessEndpoint_deletionTime' - The deletion time.
--
-- 'description', 'verifiedAccessEndpoint_description' - A description for the Amazon Web Services Verified Access endpoint.
--
-- 'deviceValidationDomain', 'verifiedAccessEndpoint_deviceValidationDomain' - Returned if endpoint has a device trust provider attached.
--
-- 'domainCertificateArn', 'verifiedAccessEndpoint_domainCertificateArn' - The ARN of a public TLS\/SSL certificate imported into or created with
-- ACM.
--
-- 'endpointDomain', 'verifiedAccessEndpoint_endpointDomain' - A DNS name that is generated for the endpoint.
--
-- 'endpointType', 'verifiedAccessEndpoint_endpointType' - The type of Amazon Web Services Verified Access endpoint. Incoming
-- application requests will be sent to an IP address, load balancer or a
-- network interface depending on the endpoint type specified.
--
-- 'lastUpdatedTime', 'verifiedAccessEndpoint_lastUpdatedTime' - The last updated time.
--
-- 'loadBalancerOptions', 'verifiedAccessEndpoint_loadBalancerOptions' - The load balancer details if creating the Amazon Web Services Verified
-- Access endpoint as @load-balancer@type.
--
-- 'networkInterfaceOptions', 'verifiedAccessEndpoint_networkInterfaceOptions' - The options for network-interface type endpoint.
--
-- 'securityGroupIds', 'verifiedAccessEndpoint_securityGroupIds' - The IDs of the security groups for the endpoint.
--
-- 'status', 'verifiedAccessEndpoint_status' - The endpoint status.
--
-- 'tags', 'verifiedAccessEndpoint_tags' - The tags.
--
-- 'verifiedAccessEndpointId', 'verifiedAccessEndpoint_verifiedAccessEndpointId' - The ID of the Amazon Web Services Verified Access endpoint.
--
-- 'verifiedAccessGroupId', 'verifiedAccessEndpoint_verifiedAccessGroupId' - The ID of the Amazon Web Services Verified Access group.
--
-- 'verifiedAccessInstanceId', 'verifiedAccessEndpoint_verifiedAccessInstanceId' - The ID of the Amazon Web Services Verified Access instance.
newVerifiedAccessEndpoint ::
  VerifiedAccessEndpoint
newVerifiedAccessEndpoint :: VerifiedAccessEndpoint
newVerifiedAccessEndpoint =
  VerifiedAccessEndpoint'
    { $sel:applicationDomain:VerifiedAccessEndpoint' :: Maybe Text
applicationDomain =
        forall a. Maybe a
Prelude.Nothing,
      $sel:attachmentType:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointAttachmentType
attachmentType = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:VerifiedAccessEndpoint' :: Maybe Text
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:deletionTime:VerifiedAccessEndpoint' :: Maybe Text
deletionTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:VerifiedAccessEndpoint' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceValidationDomain:VerifiedAccessEndpoint' :: Maybe Text
deviceValidationDomain = forall a. Maybe a
Prelude.Nothing,
      $sel:domainCertificateArn:VerifiedAccessEndpoint' :: Maybe Text
domainCertificateArn = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointDomain:VerifiedAccessEndpoint' :: Maybe Text
endpointDomain = forall a. Maybe a
Prelude.Nothing,
      $sel:endpointType:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointType
endpointType = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:VerifiedAccessEndpoint' :: Maybe Text
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:loadBalancerOptions:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:networkInterfaceOptions:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:securityGroupIds:VerifiedAccessEndpoint' :: Maybe [Text]
securityGroupIds = forall a. Maybe a
Prelude.Nothing,
      $sel:status:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:VerifiedAccessEndpoint' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:verifiedAccessEndpointId:VerifiedAccessEndpoint' :: Maybe Text
verifiedAccessEndpointId = forall a. Maybe a
Prelude.Nothing,
      $sel:verifiedAccessGroupId:VerifiedAccessEndpoint' :: Maybe Text
verifiedAccessGroupId = forall a. Maybe a
Prelude.Nothing,
      $sel:verifiedAccessInstanceId:VerifiedAccessEndpoint' :: Maybe Text
verifiedAccessInstanceId = forall a. Maybe a
Prelude.Nothing
    }

-- | The DNS name for users to reach your application.
verifiedAccessEndpoint_applicationDomain :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_applicationDomain :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_applicationDomain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
applicationDomain :: Maybe Text
$sel:applicationDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
applicationDomain} -> Maybe Text
applicationDomain) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:applicationDomain:VerifiedAccessEndpoint' :: Maybe Text
applicationDomain = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The type of attachment used to provide connectivity between the Amazon
-- Web Services Verified Access endpoint and the application.
verifiedAccessEndpoint_attachmentType :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe VerifiedAccessEndpointAttachmentType)
verifiedAccessEndpoint_attachmentType :: Lens'
  VerifiedAccessEndpoint (Maybe VerifiedAccessEndpointAttachmentType)
verifiedAccessEndpoint_attachmentType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe VerifiedAccessEndpointAttachmentType
attachmentType :: Maybe VerifiedAccessEndpointAttachmentType
$sel:attachmentType:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointAttachmentType
attachmentType} -> Maybe VerifiedAccessEndpointAttachmentType
attachmentType) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe VerifiedAccessEndpointAttachmentType
a -> VerifiedAccessEndpoint
s {$sel:attachmentType:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointAttachmentType
attachmentType = Maybe VerifiedAccessEndpointAttachmentType
a} :: VerifiedAccessEndpoint)

-- | The creation time.
verifiedAccessEndpoint_creationTime :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_creationTime :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
creationTime :: Maybe Text
$sel:creationTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
creationTime} -> Maybe Text
creationTime) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:creationTime:VerifiedAccessEndpoint' :: Maybe Text
creationTime = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The deletion time.
verifiedAccessEndpoint_deletionTime :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_deletionTime :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_deletionTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
deletionTime :: Maybe Text
$sel:deletionTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
deletionTime} -> Maybe Text
deletionTime) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:deletionTime:VerifiedAccessEndpoint' :: Maybe Text
deletionTime = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | A description for the Amazon Web Services Verified Access endpoint.
verifiedAccessEndpoint_description :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_description :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
description :: Maybe Text
$sel:description:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
description} -> Maybe Text
description) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:description:VerifiedAccessEndpoint' :: Maybe Text
description = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | Returned if endpoint has a device trust provider attached.
verifiedAccessEndpoint_deviceValidationDomain :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_deviceValidationDomain :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_deviceValidationDomain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
deviceValidationDomain :: Maybe Text
$sel:deviceValidationDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
deviceValidationDomain} -> Maybe Text
deviceValidationDomain) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:deviceValidationDomain:VerifiedAccessEndpoint' :: Maybe Text
deviceValidationDomain = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The ARN of a public TLS\/SSL certificate imported into or created with
-- ACM.
verifiedAccessEndpoint_domainCertificateArn :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_domainCertificateArn :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_domainCertificateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
domainCertificateArn :: Maybe Text
$sel:domainCertificateArn:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
domainCertificateArn} -> Maybe Text
domainCertificateArn) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:domainCertificateArn:VerifiedAccessEndpoint' :: Maybe Text
domainCertificateArn = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | A DNS name that is generated for the endpoint.
verifiedAccessEndpoint_endpointDomain :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_endpointDomain :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_endpointDomain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
endpointDomain :: Maybe Text
$sel:endpointDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
endpointDomain} -> Maybe Text
endpointDomain) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:endpointDomain:VerifiedAccessEndpoint' :: Maybe Text
endpointDomain = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The type of Amazon Web Services Verified Access endpoint. Incoming
-- application requests will be sent to an IP address, load balancer or a
-- network interface depending on the endpoint type specified.
verifiedAccessEndpoint_endpointType :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe VerifiedAccessEndpointType)
verifiedAccessEndpoint_endpointType :: Lens' VerifiedAccessEndpoint (Maybe VerifiedAccessEndpointType)
verifiedAccessEndpoint_endpointType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe VerifiedAccessEndpointType
endpointType :: Maybe VerifiedAccessEndpointType
$sel:endpointType:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointType
endpointType} -> Maybe VerifiedAccessEndpointType
endpointType) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe VerifiedAccessEndpointType
a -> VerifiedAccessEndpoint
s {$sel:endpointType:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointType
endpointType = Maybe VerifiedAccessEndpointType
a} :: VerifiedAccessEndpoint)

-- | The last updated time.
verifiedAccessEndpoint_lastUpdatedTime :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_lastUpdatedTime :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
lastUpdatedTime :: Maybe Text
$sel:lastUpdatedTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
lastUpdatedTime} -> Maybe Text
lastUpdatedTime) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:lastUpdatedTime:VerifiedAccessEndpoint' :: Maybe Text
lastUpdatedTime = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The load balancer details if creating the Amazon Web Services Verified
-- Access endpoint as @load-balancer@type.
verifiedAccessEndpoint_loadBalancerOptions :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe VerifiedAccessEndpointLoadBalancerOptions)
verifiedAccessEndpoint_loadBalancerOptions :: Lens'
  VerifiedAccessEndpoint
  (Maybe VerifiedAccessEndpointLoadBalancerOptions)
verifiedAccessEndpoint_loadBalancerOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions :: Maybe VerifiedAccessEndpointLoadBalancerOptions
$sel:loadBalancerOptions:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions} -> Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe VerifiedAccessEndpointLoadBalancerOptions
a -> VerifiedAccessEndpoint
s {$sel:loadBalancerOptions:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions = Maybe VerifiedAccessEndpointLoadBalancerOptions
a} :: VerifiedAccessEndpoint)

-- | The options for network-interface type endpoint.
verifiedAccessEndpoint_networkInterfaceOptions :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe VerifiedAccessEndpointEniOptions)
verifiedAccessEndpoint_networkInterfaceOptions :: Lens'
  VerifiedAccessEndpoint (Maybe VerifiedAccessEndpointEniOptions)
verifiedAccessEndpoint_networkInterfaceOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions :: Maybe VerifiedAccessEndpointEniOptions
$sel:networkInterfaceOptions:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions} -> Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe VerifiedAccessEndpointEniOptions
a -> VerifiedAccessEndpoint
s {$sel:networkInterfaceOptions:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions = Maybe VerifiedAccessEndpointEniOptions
a} :: VerifiedAccessEndpoint)

-- | The IDs of the security groups for the endpoint.
verifiedAccessEndpoint_securityGroupIds :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe [Prelude.Text])
verifiedAccessEndpoint_securityGroupIds :: Lens' VerifiedAccessEndpoint (Maybe [Text])
verifiedAccessEndpoint_securityGroupIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe [Text]
securityGroupIds :: Maybe [Text]
$sel:securityGroupIds:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe [Text]
securityGroupIds} -> Maybe [Text]
securityGroupIds) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe [Text]
a -> VerifiedAccessEndpoint
s {$sel:securityGroupIds:VerifiedAccessEndpoint' :: Maybe [Text]
securityGroupIds = Maybe [Text]
a} :: VerifiedAccessEndpoint) 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 endpoint status.
verifiedAccessEndpoint_status :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe VerifiedAccessEndpointStatus)
verifiedAccessEndpoint_status :: Lens' VerifiedAccessEndpoint (Maybe VerifiedAccessEndpointStatus)
verifiedAccessEndpoint_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe VerifiedAccessEndpointStatus
status :: Maybe VerifiedAccessEndpointStatus
$sel:status:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointStatus
status} -> Maybe VerifiedAccessEndpointStatus
status) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe VerifiedAccessEndpointStatus
a -> VerifiedAccessEndpoint
s {$sel:status:VerifiedAccessEndpoint' :: Maybe VerifiedAccessEndpointStatus
status = Maybe VerifiedAccessEndpointStatus
a} :: VerifiedAccessEndpoint)

-- | The tags.
verifiedAccessEndpoint_tags :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe [Tag])
verifiedAccessEndpoint_tags :: Lens' VerifiedAccessEndpoint (Maybe [Tag])
verifiedAccessEndpoint_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe [Tag]
a -> VerifiedAccessEndpoint
s {$sel:tags:VerifiedAccessEndpoint' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: VerifiedAccessEndpoint) 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 Verified Access endpoint.
verifiedAccessEndpoint_verifiedAccessEndpointId :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_verifiedAccessEndpointId :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_verifiedAccessEndpointId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
verifiedAccessEndpointId :: Maybe Text
$sel:verifiedAccessEndpointId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
verifiedAccessEndpointId} -> Maybe Text
verifiedAccessEndpointId) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:verifiedAccessEndpointId:VerifiedAccessEndpoint' :: Maybe Text
verifiedAccessEndpointId = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The ID of the Amazon Web Services Verified Access group.
verifiedAccessEndpoint_verifiedAccessGroupId :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_verifiedAccessGroupId :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_verifiedAccessGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
verifiedAccessGroupId :: Maybe Text
$sel:verifiedAccessGroupId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
verifiedAccessGroupId} -> Maybe Text
verifiedAccessGroupId) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:verifiedAccessGroupId:VerifiedAccessEndpoint' :: Maybe Text
verifiedAccessGroupId = Maybe Text
a} :: VerifiedAccessEndpoint)

-- | The ID of the Amazon Web Services Verified Access instance.
verifiedAccessEndpoint_verifiedAccessInstanceId :: Lens.Lens' VerifiedAccessEndpoint (Prelude.Maybe Prelude.Text)
verifiedAccessEndpoint_verifiedAccessInstanceId :: Lens' VerifiedAccessEndpoint (Maybe Text)
verifiedAccessEndpoint_verifiedAccessInstanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\VerifiedAccessEndpoint' {Maybe Text
verifiedAccessInstanceId :: Maybe Text
$sel:verifiedAccessInstanceId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
verifiedAccessInstanceId} -> Maybe Text
verifiedAccessInstanceId) (\s :: VerifiedAccessEndpoint
s@VerifiedAccessEndpoint' {} Maybe Text
a -> VerifiedAccessEndpoint
s {$sel:verifiedAccessInstanceId:VerifiedAccessEndpoint' :: Maybe Text
verifiedAccessInstanceId = Maybe Text
a} :: VerifiedAccessEndpoint)

instance Data.FromXML VerifiedAccessEndpoint where
  parseXML :: [Node] -> Either String VerifiedAccessEndpoint
parseXML [Node]
x =
    Maybe Text
-> Maybe VerifiedAccessEndpointAttachmentType
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe VerifiedAccessEndpointType
-> Maybe Text
-> Maybe VerifiedAccessEndpointLoadBalancerOptions
-> Maybe VerifiedAccessEndpointEniOptions
-> Maybe [Text]
-> Maybe VerifiedAccessEndpointStatus
-> Maybe [Tag]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> VerifiedAccessEndpoint
VerifiedAccessEndpoint'
      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
"applicationDomain")
      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
"attachmentType")
      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
"creationTime")
      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
"deletionTime")
      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
"description")
      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
"deviceValidationDomain")
      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
"domainCertificateArn")
      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
"endpointDomain")
      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
"endpointType")
      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
"lastUpdatedTime")
      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
"loadBalancerOptions")
      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
"networkInterfaceOptions")
      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
"securityGroupIdSet"
                      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
"status")
      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
"verifiedAccessEndpointId")
      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
"verifiedAccessGroupId")
      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
"verifiedAccessInstanceId")

instance Prelude.Hashable VerifiedAccessEndpoint where
  hashWithSalt :: Int -> VerifiedAccessEndpoint -> Int
hashWithSalt Int
_salt VerifiedAccessEndpoint' {Maybe [Text]
Maybe [Tag]
Maybe Text
Maybe VerifiedAccessEndpointAttachmentType
Maybe VerifiedAccessEndpointLoadBalancerOptions
Maybe VerifiedAccessEndpointEniOptions
Maybe VerifiedAccessEndpointStatus
Maybe VerifiedAccessEndpointType
verifiedAccessInstanceId :: Maybe Text
verifiedAccessGroupId :: Maybe Text
verifiedAccessEndpointId :: Maybe Text
tags :: Maybe [Tag]
status :: Maybe VerifiedAccessEndpointStatus
securityGroupIds :: Maybe [Text]
networkInterfaceOptions :: Maybe VerifiedAccessEndpointEniOptions
loadBalancerOptions :: Maybe VerifiedAccessEndpointLoadBalancerOptions
lastUpdatedTime :: Maybe Text
endpointType :: Maybe VerifiedAccessEndpointType
endpointDomain :: Maybe Text
domainCertificateArn :: Maybe Text
deviceValidationDomain :: Maybe Text
description :: Maybe Text
deletionTime :: Maybe Text
creationTime :: Maybe Text
attachmentType :: Maybe VerifiedAccessEndpointAttachmentType
applicationDomain :: Maybe Text
$sel:verifiedAccessInstanceId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:verifiedAccessGroupId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:verifiedAccessEndpointId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:tags:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe [Tag]
$sel:status:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointStatus
$sel:securityGroupIds:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe [Text]
$sel:networkInterfaceOptions:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointEniOptions
$sel:loadBalancerOptions:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointLoadBalancerOptions
$sel:lastUpdatedTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:endpointType:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointType
$sel:endpointDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:domainCertificateArn:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:deviceValidationDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:description:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:deletionTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:creationTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:attachmentType:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointAttachmentType
$sel:applicationDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
applicationDomain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VerifiedAccessEndpointAttachmentType
attachmentType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
deletionTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
deviceValidationDomain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainCertificateArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
endpointDomain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VerifiedAccessEndpointType
endpointType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastUpdatedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
securityGroupIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VerifiedAccessEndpointStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
verifiedAccessEndpointId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
verifiedAccessGroupId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
verifiedAccessInstanceId

instance Prelude.NFData VerifiedAccessEndpoint where
  rnf :: VerifiedAccessEndpoint -> ()
rnf VerifiedAccessEndpoint' {Maybe [Text]
Maybe [Tag]
Maybe Text
Maybe VerifiedAccessEndpointAttachmentType
Maybe VerifiedAccessEndpointLoadBalancerOptions
Maybe VerifiedAccessEndpointEniOptions
Maybe VerifiedAccessEndpointStatus
Maybe VerifiedAccessEndpointType
verifiedAccessInstanceId :: Maybe Text
verifiedAccessGroupId :: Maybe Text
verifiedAccessEndpointId :: Maybe Text
tags :: Maybe [Tag]
status :: Maybe VerifiedAccessEndpointStatus
securityGroupIds :: Maybe [Text]
networkInterfaceOptions :: Maybe VerifiedAccessEndpointEniOptions
loadBalancerOptions :: Maybe VerifiedAccessEndpointLoadBalancerOptions
lastUpdatedTime :: Maybe Text
endpointType :: Maybe VerifiedAccessEndpointType
endpointDomain :: Maybe Text
domainCertificateArn :: Maybe Text
deviceValidationDomain :: Maybe Text
description :: Maybe Text
deletionTime :: Maybe Text
creationTime :: Maybe Text
attachmentType :: Maybe VerifiedAccessEndpointAttachmentType
applicationDomain :: Maybe Text
$sel:verifiedAccessInstanceId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:verifiedAccessGroupId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:verifiedAccessEndpointId:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:tags:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe [Tag]
$sel:status:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointStatus
$sel:securityGroupIds:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe [Text]
$sel:networkInterfaceOptions:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointEniOptions
$sel:loadBalancerOptions:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointLoadBalancerOptions
$sel:lastUpdatedTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:endpointType:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe VerifiedAccessEndpointType
$sel:endpointDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:domainCertificateArn:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:deviceValidationDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:description:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:deletionTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:creationTime:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
$sel:attachmentType:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint
-> Maybe VerifiedAccessEndpointAttachmentType
$sel:applicationDomain:VerifiedAccessEndpoint' :: VerifiedAccessEndpoint -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationDomain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VerifiedAccessEndpointAttachmentType
attachmentType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deletionTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deviceValidationDomain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domainCertificateArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endpointDomain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VerifiedAccessEndpointType
endpointType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VerifiedAccessEndpointLoadBalancerOptions
loadBalancerOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VerifiedAccessEndpointEniOptions
networkInterfaceOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
securityGroupIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VerifiedAccessEndpointStatus
status
      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
verifiedAccessEndpointId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
verifiedAccessGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
verifiedAccessInstanceId