amazonka-amplify-2.0: gen/Amazonka/Amplify/Types/SubDomain.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.Amplify.Types.SubDomain
-- 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.Amplify.Types.SubDomain where
import Amazonka.Amplify.Types.SubDomainSetting
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
-- | The subdomain for the domain association.
--
-- /See:/ 'newSubDomain' smart constructor.
data SubDomain = SubDomain'
{ -- | Describes the settings for the subdomain.
subDomainSetting :: SubDomainSetting,
-- | The verified status of the subdomain
verified :: Prelude.Bool,
-- | The DNS record for the subdomain.
dnsRecord :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'SubDomain' 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:
--
-- 'subDomainSetting', 'subDomain_subDomainSetting' - Describes the settings for the subdomain.
--
-- 'verified', 'subDomain_verified' - The verified status of the subdomain
--
-- 'dnsRecord', 'subDomain_dnsRecord' - The DNS record for the subdomain.
newSubDomain ::
-- | 'subDomainSetting'
SubDomainSetting ->
-- | 'verified'
Prelude.Bool ->
-- | 'dnsRecord'
Prelude.Text ->
SubDomain
newSubDomain
pSubDomainSetting_
pVerified_
pDnsRecord_ =
SubDomain'
{ subDomainSetting = pSubDomainSetting_,
verified = pVerified_,
dnsRecord = pDnsRecord_
}
-- | Describes the settings for the subdomain.
subDomain_subDomainSetting :: Lens.Lens' SubDomain SubDomainSetting
subDomain_subDomainSetting = Lens.lens (\SubDomain' {subDomainSetting} -> subDomainSetting) (\s@SubDomain' {} a -> s {subDomainSetting = a} :: SubDomain)
-- | The verified status of the subdomain
subDomain_verified :: Lens.Lens' SubDomain Prelude.Bool
subDomain_verified = Lens.lens (\SubDomain' {verified} -> verified) (\s@SubDomain' {} a -> s {verified = a} :: SubDomain)
-- | The DNS record for the subdomain.
subDomain_dnsRecord :: Lens.Lens' SubDomain Prelude.Text
subDomain_dnsRecord = Lens.lens (\SubDomain' {dnsRecord} -> dnsRecord) (\s@SubDomain' {} a -> s {dnsRecord = a} :: SubDomain)
instance Data.FromJSON SubDomain where
parseJSON =
Data.withObject
"SubDomain"
( \x ->
SubDomain'
Prelude.<$> (x Data..: "subDomainSetting")
Prelude.<*> (x Data..: "verified")
Prelude.<*> (x Data..: "dnsRecord")
)
instance Prelude.Hashable SubDomain where
hashWithSalt _salt SubDomain' {..} =
_salt
`Prelude.hashWithSalt` subDomainSetting
`Prelude.hashWithSalt` verified
`Prelude.hashWithSalt` dnsRecord
instance Prelude.NFData SubDomain where
rnf SubDomain' {..} =
Prelude.rnf subDomainSetting
`Prelude.seq` Prelude.rnf verified
`Prelude.seq` Prelude.rnf dnsRecord