{-# 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.Lightsail.Types.LightsailDistribution
-- 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.Lightsail.Types.LightsailDistribution where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lightsail.Types.CacheBehavior
import Amazonka.Lightsail.Types.CacheBehaviorPerPath
import Amazonka.Lightsail.Types.CacheSettings
import Amazonka.Lightsail.Types.IpAddressType
import Amazonka.Lightsail.Types.Origin
import Amazonka.Lightsail.Types.ResourceLocation
import Amazonka.Lightsail.Types.ResourceType
import Amazonka.Lightsail.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Describes an Amazon Lightsail content delivery network (CDN)
-- distribution.
--
-- /See:/ 'newLightsailDistribution' smart constructor.
data LightsailDistribution = LightsailDistribution'
  { -- | Indicates whether the bundle that is currently applied to your
    -- distribution, specified using the @distributionName@ parameter, can be
    -- changed to another bundle.
    --
    -- Use the @UpdateDistributionBundle@ action to change your distribution\'s
    -- bundle.
    LightsailDistribution -> Maybe Bool
ableToUpdateBundle :: Prelude.Maybe Prelude.Bool,
    -- | The alternate domain names of the distribution.
    LightsailDistribution -> Maybe [Text]
alternativeDomainNames :: Prelude.Maybe [Prelude.Text],
    -- | The Amazon Resource Name (ARN) of the distribution.
    LightsailDistribution -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The ID of the bundle currently applied to the distribution.
    LightsailDistribution -> Maybe Text
bundleId :: Prelude.Maybe Prelude.Text,
    -- | An object that describes the cache behavior settings of the
    -- distribution.
    LightsailDistribution -> Maybe CacheSettings
cacheBehaviorSettings :: Prelude.Maybe CacheSettings,
    -- | An array of objects that describe the per-path cache behavior of the
    -- distribution.
    LightsailDistribution -> Maybe [CacheBehaviorPerPath]
cacheBehaviors :: Prelude.Maybe [CacheBehaviorPerPath],
    -- | The name of the SSL\/TLS certificate attached to the distribution, if
    -- any.
    LightsailDistribution -> Maybe Text
certificateName :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the distribution was created.
    LightsailDistribution -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | An object that describes the default cache behavior of the distribution.
    LightsailDistribution -> Maybe CacheBehavior
defaultCacheBehavior :: Prelude.Maybe CacheBehavior,
    -- | The domain name of the distribution.
    LightsailDistribution -> Maybe Text
domainName :: Prelude.Maybe Prelude.Text,
    -- | The IP address type of the distribution.
    --
    -- The possible values are @ipv4@ for IPv4 only, and @dualstack@ for IPv4
    -- and IPv6.
    LightsailDistribution -> Maybe IpAddressType
ipAddressType :: Prelude.Maybe IpAddressType,
    -- | Indicates whether the distribution is enabled.
    LightsailDistribution -> Maybe Bool
isEnabled :: Prelude.Maybe Prelude.Bool,
    -- | An object that describes the location of the distribution, such as the
    -- Amazon Web Services Region and Availability Zone.
    --
    -- Lightsail distributions are global resources that can reference an
    -- origin in any Amazon Web Services Region, and distribute its content
    -- globally. However, all distributions are located in the @us-east-1@
    -- Region.
    LightsailDistribution -> Maybe ResourceLocation
location :: Prelude.Maybe ResourceLocation,
    -- | The name of the distribution.
    LightsailDistribution -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | An object that describes the origin resource of the distribution, such
    -- as a Lightsail instance, bucket, or load balancer.
    --
    -- The distribution pulls, caches, and serves content from the origin.
    LightsailDistribution -> Maybe Origin
origin :: Prelude.Maybe Origin,
    -- | The public DNS of the origin.
    LightsailDistribution -> Maybe Text
originPublicDNS :: Prelude.Maybe Prelude.Text,
    -- | The Lightsail resource type (e.g., @Distribution@).
    LightsailDistribution -> Maybe ResourceType
resourceType :: Prelude.Maybe ResourceType,
    -- | The status of the distribution.
    LightsailDistribution -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The support code. Include this code in your email to support when you
    -- have questions about your Lightsail distribution. This code enables our
    -- support team to look up your Lightsail information more easily.
    LightsailDistribution -> Maybe Text
supportCode :: Prelude.Maybe Prelude.Text,
    -- | The tag keys and optional values for the resource. For more information
    -- about tags in Lightsail, see the
    -- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-tags Amazon Lightsail Developer Guide>.
    LightsailDistribution -> Maybe [Tag]
tags :: Prelude.Maybe [Tag]
  }
  deriving (LightsailDistribution -> LightsailDistribution -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LightsailDistribution -> LightsailDistribution -> Bool
$c/= :: LightsailDistribution -> LightsailDistribution -> Bool
== :: LightsailDistribution -> LightsailDistribution -> Bool
$c== :: LightsailDistribution -> LightsailDistribution -> Bool
Prelude.Eq, ReadPrec [LightsailDistribution]
ReadPrec LightsailDistribution
Int -> ReadS LightsailDistribution
ReadS [LightsailDistribution]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LightsailDistribution]
$creadListPrec :: ReadPrec [LightsailDistribution]
readPrec :: ReadPrec LightsailDistribution
$creadPrec :: ReadPrec LightsailDistribution
readList :: ReadS [LightsailDistribution]
$creadList :: ReadS [LightsailDistribution]
readsPrec :: Int -> ReadS LightsailDistribution
$creadsPrec :: Int -> ReadS LightsailDistribution
Prelude.Read, Int -> LightsailDistribution -> ShowS
[LightsailDistribution] -> ShowS
LightsailDistribution -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LightsailDistribution] -> ShowS
$cshowList :: [LightsailDistribution] -> ShowS
show :: LightsailDistribution -> String
$cshow :: LightsailDistribution -> String
showsPrec :: Int -> LightsailDistribution -> ShowS
$cshowsPrec :: Int -> LightsailDistribution -> ShowS
Prelude.Show, forall x. Rep LightsailDistribution x -> LightsailDistribution
forall x. LightsailDistribution -> Rep LightsailDistribution x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LightsailDistribution x -> LightsailDistribution
$cfrom :: forall x. LightsailDistribution -> Rep LightsailDistribution x
Prelude.Generic)

-- |
-- Create a value of 'LightsailDistribution' 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:
--
-- 'ableToUpdateBundle', 'lightsailDistribution_ableToUpdateBundle' - Indicates whether the bundle that is currently applied to your
-- distribution, specified using the @distributionName@ parameter, can be
-- changed to another bundle.
--
-- Use the @UpdateDistributionBundle@ action to change your distribution\'s
-- bundle.
--
-- 'alternativeDomainNames', 'lightsailDistribution_alternativeDomainNames' - The alternate domain names of the distribution.
--
-- 'arn', 'lightsailDistribution_arn' - The Amazon Resource Name (ARN) of the distribution.
--
-- 'bundleId', 'lightsailDistribution_bundleId' - The ID of the bundle currently applied to the distribution.
--
-- 'cacheBehaviorSettings', 'lightsailDistribution_cacheBehaviorSettings' - An object that describes the cache behavior settings of the
-- distribution.
--
-- 'cacheBehaviors', 'lightsailDistribution_cacheBehaviors' - An array of objects that describe the per-path cache behavior of the
-- distribution.
--
-- 'certificateName', 'lightsailDistribution_certificateName' - The name of the SSL\/TLS certificate attached to the distribution, if
-- any.
--
-- 'createdAt', 'lightsailDistribution_createdAt' - The timestamp when the distribution was created.
--
-- 'defaultCacheBehavior', 'lightsailDistribution_defaultCacheBehavior' - An object that describes the default cache behavior of the distribution.
--
-- 'domainName', 'lightsailDistribution_domainName' - The domain name of the distribution.
--
-- 'ipAddressType', 'lightsailDistribution_ipAddressType' - The IP address type of the distribution.
--
-- The possible values are @ipv4@ for IPv4 only, and @dualstack@ for IPv4
-- and IPv6.
--
-- 'isEnabled', 'lightsailDistribution_isEnabled' - Indicates whether the distribution is enabled.
--
-- 'location', 'lightsailDistribution_location' - An object that describes the location of the distribution, such as the
-- Amazon Web Services Region and Availability Zone.
--
-- Lightsail distributions are global resources that can reference an
-- origin in any Amazon Web Services Region, and distribute its content
-- globally. However, all distributions are located in the @us-east-1@
-- Region.
--
-- 'name', 'lightsailDistribution_name' - The name of the distribution.
--
-- 'origin', 'lightsailDistribution_origin' - An object that describes the origin resource of the distribution, such
-- as a Lightsail instance, bucket, or load balancer.
--
-- The distribution pulls, caches, and serves content from the origin.
--
-- 'originPublicDNS', 'lightsailDistribution_originPublicDNS' - The public DNS of the origin.
--
-- 'resourceType', 'lightsailDistribution_resourceType' - The Lightsail resource type (e.g., @Distribution@).
--
-- 'status', 'lightsailDistribution_status' - The status of the distribution.
--
-- 'supportCode', 'lightsailDistribution_supportCode' - The support code. Include this code in your email to support when you
-- have questions about your Lightsail distribution. This code enables our
-- support team to look up your Lightsail information more easily.
--
-- 'tags', 'lightsailDistribution_tags' - The tag keys and optional values for the resource. For more information
-- about tags in Lightsail, see the
-- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-tags Amazon Lightsail Developer Guide>.
newLightsailDistribution ::
  LightsailDistribution
newLightsailDistribution :: LightsailDistribution
newLightsailDistribution =
  LightsailDistribution'
    { $sel:ableToUpdateBundle:LightsailDistribution' :: Maybe Bool
ableToUpdateBundle =
        forall a. Maybe a
Prelude.Nothing,
      $sel:alternativeDomainNames:LightsailDistribution' :: Maybe [Text]
alternativeDomainNames = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:LightsailDistribution' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:bundleId:LightsailDistribution' :: Maybe Text
bundleId = forall a. Maybe a
Prelude.Nothing,
      $sel:cacheBehaviorSettings:LightsailDistribution' :: Maybe CacheSettings
cacheBehaviorSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:cacheBehaviors:LightsailDistribution' :: Maybe [CacheBehaviorPerPath]
cacheBehaviors = forall a. Maybe a
Prelude.Nothing,
      $sel:certificateName:LightsailDistribution' :: Maybe Text
certificateName = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:LightsailDistribution' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:defaultCacheBehavior:LightsailDistribution' :: Maybe CacheBehavior
defaultCacheBehavior = forall a. Maybe a
Prelude.Nothing,
      $sel:domainName:LightsailDistribution' :: Maybe Text
domainName = forall a. Maybe a
Prelude.Nothing,
      $sel:ipAddressType:LightsailDistribution' :: Maybe IpAddressType
ipAddressType = forall a. Maybe a
Prelude.Nothing,
      $sel:isEnabled:LightsailDistribution' :: Maybe Bool
isEnabled = forall a. Maybe a
Prelude.Nothing,
      $sel:location:LightsailDistribution' :: Maybe ResourceLocation
location = forall a. Maybe a
Prelude.Nothing,
      $sel:name:LightsailDistribution' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:origin:LightsailDistribution' :: Maybe Origin
origin = forall a. Maybe a
Prelude.Nothing,
      $sel:originPublicDNS:LightsailDistribution' :: Maybe Text
originPublicDNS = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceType:LightsailDistribution' :: Maybe ResourceType
resourceType = forall a. Maybe a
Prelude.Nothing,
      $sel:status:LightsailDistribution' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:supportCode:LightsailDistribution' :: Maybe Text
supportCode = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:LightsailDistribution' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing
    }

-- | Indicates whether the bundle that is currently applied to your
-- distribution, specified using the @distributionName@ parameter, can be
-- changed to another bundle.
--
-- Use the @UpdateDistributionBundle@ action to change your distribution\'s
-- bundle.
lightsailDistribution_ableToUpdateBundle :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Bool)
lightsailDistribution_ableToUpdateBundle :: Lens' LightsailDistribution (Maybe Bool)
lightsailDistribution_ableToUpdateBundle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Bool
ableToUpdateBundle :: Maybe Bool
$sel:ableToUpdateBundle:LightsailDistribution' :: LightsailDistribution -> Maybe Bool
ableToUpdateBundle} -> Maybe Bool
ableToUpdateBundle) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Bool
a -> LightsailDistribution
s {$sel:ableToUpdateBundle:LightsailDistribution' :: Maybe Bool
ableToUpdateBundle = Maybe Bool
a} :: LightsailDistribution)

-- | The alternate domain names of the distribution.
lightsailDistribution_alternativeDomainNames :: Lens.Lens' LightsailDistribution (Prelude.Maybe [Prelude.Text])
lightsailDistribution_alternativeDomainNames :: Lens' LightsailDistribution (Maybe [Text])
lightsailDistribution_alternativeDomainNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe [Text]
alternativeDomainNames :: Maybe [Text]
$sel:alternativeDomainNames:LightsailDistribution' :: LightsailDistribution -> Maybe [Text]
alternativeDomainNames} -> Maybe [Text]
alternativeDomainNames) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe [Text]
a -> LightsailDistribution
s {$sel:alternativeDomainNames:LightsailDistribution' :: Maybe [Text]
alternativeDomainNames = Maybe [Text]
a} :: LightsailDistribution) 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 Amazon Resource Name (ARN) of the distribution.
lightsailDistribution_arn :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_arn :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
arn :: Maybe Text
$sel:arn:LightsailDistribution' :: LightsailDistribution -> Maybe Text
arn} -> Maybe Text
arn) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:arn:LightsailDistribution' :: Maybe Text
arn = Maybe Text
a} :: LightsailDistribution)

-- | The ID of the bundle currently applied to the distribution.
lightsailDistribution_bundleId :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_bundleId :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_bundleId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
bundleId :: Maybe Text
$sel:bundleId:LightsailDistribution' :: LightsailDistribution -> Maybe Text
bundleId} -> Maybe Text
bundleId) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:bundleId:LightsailDistribution' :: Maybe Text
bundleId = Maybe Text
a} :: LightsailDistribution)

-- | An object that describes the cache behavior settings of the
-- distribution.
lightsailDistribution_cacheBehaviorSettings :: Lens.Lens' LightsailDistribution (Prelude.Maybe CacheSettings)
lightsailDistribution_cacheBehaviorSettings :: Lens' LightsailDistribution (Maybe CacheSettings)
lightsailDistribution_cacheBehaviorSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe CacheSettings
cacheBehaviorSettings :: Maybe CacheSettings
$sel:cacheBehaviorSettings:LightsailDistribution' :: LightsailDistribution -> Maybe CacheSettings
cacheBehaviorSettings} -> Maybe CacheSettings
cacheBehaviorSettings) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe CacheSettings
a -> LightsailDistribution
s {$sel:cacheBehaviorSettings:LightsailDistribution' :: Maybe CacheSettings
cacheBehaviorSettings = Maybe CacheSettings
a} :: LightsailDistribution)

-- | An array of objects that describe the per-path cache behavior of the
-- distribution.
lightsailDistribution_cacheBehaviors :: Lens.Lens' LightsailDistribution (Prelude.Maybe [CacheBehaviorPerPath])
lightsailDistribution_cacheBehaviors :: Lens' LightsailDistribution (Maybe [CacheBehaviorPerPath])
lightsailDistribution_cacheBehaviors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe [CacheBehaviorPerPath]
cacheBehaviors :: Maybe [CacheBehaviorPerPath]
$sel:cacheBehaviors:LightsailDistribution' :: LightsailDistribution -> Maybe [CacheBehaviorPerPath]
cacheBehaviors} -> Maybe [CacheBehaviorPerPath]
cacheBehaviors) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe [CacheBehaviorPerPath]
a -> LightsailDistribution
s {$sel:cacheBehaviors:LightsailDistribution' :: Maybe [CacheBehaviorPerPath]
cacheBehaviors = Maybe [CacheBehaviorPerPath]
a} :: LightsailDistribution) 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 SSL\/TLS certificate attached to the distribution, if
-- any.
lightsailDistribution_certificateName :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_certificateName :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_certificateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
certificateName :: Maybe Text
$sel:certificateName:LightsailDistribution' :: LightsailDistribution -> Maybe Text
certificateName} -> Maybe Text
certificateName) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:certificateName:LightsailDistribution' :: Maybe Text
certificateName = Maybe Text
a} :: LightsailDistribution)

-- | The timestamp when the distribution was created.
lightsailDistribution_createdAt :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.UTCTime)
lightsailDistribution_createdAt :: Lens' LightsailDistribution (Maybe UTCTime)
lightsailDistribution_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:LightsailDistribution' :: LightsailDistribution -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe POSIX
a -> LightsailDistribution
s {$sel:createdAt:LightsailDistribution' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: LightsailDistribution) 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

-- | An object that describes the default cache behavior of the distribution.
lightsailDistribution_defaultCacheBehavior :: Lens.Lens' LightsailDistribution (Prelude.Maybe CacheBehavior)
lightsailDistribution_defaultCacheBehavior :: Lens' LightsailDistribution (Maybe CacheBehavior)
lightsailDistribution_defaultCacheBehavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe CacheBehavior
defaultCacheBehavior :: Maybe CacheBehavior
$sel:defaultCacheBehavior:LightsailDistribution' :: LightsailDistribution -> Maybe CacheBehavior
defaultCacheBehavior} -> Maybe CacheBehavior
defaultCacheBehavior) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe CacheBehavior
a -> LightsailDistribution
s {$sel:defaultCacheBehavior:LightsailDistribution' :: Maybe CacheBehavior
defaultCacheBehavior = Maybe CacheBehavior
a} :: LightsailDistribution)

-- | The domain name of the distribution.
lightsailDistribution_domainName :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_domainName :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
domainName :: Maybe Text
$sel:domainName:LightsailDistribution' :: LightsailDistribution -> Maybe Text
domainName} -> Maybe Text
domainName) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:domainName:LightsailDistribution' :: Maybe Text
domainName = Maybe Text
a} :: LightsailDistribution)

-- | The IP address type of the distribution.
--
-- The possible values are @ipv4@ for IPv4 only, and @dualstack@ for IPv4
-- and IPv6.
lightsailDistribution_ipAddressType :: Lens.Lens' LightsailDistribution (Prelude.Maybe IpAddressType)
lightsailDistribution_ipAddressType :: Lens' LightsailDistribution (Maybe IpAddressType)
lightsailDistribution_ipAddressType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe IpAddressType
ipAddressType :: Maybe IpAddressType
$sel:ipAddressType:LightsailDistribution' :: LightsailDistribution -> Maybe IpAddressType
ipAddressType} -> Maybe IpAddressType
ipAddressType) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe IpAddressType
a -> LightsailDistribution
s {$sel:ipAddressType:LightsailDistribution' :: Maybe IpAddressType
ipAddressType = Maybe IpAddressType
a} :: LightsailDistribution)

-- | Indicates whether the distribution is enabled.
lightsailDistribution_isEnabled :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Bool)
lightsailDistribution_isEnabled :: Lens' LightsailDistribution (Maybe Bool)
lightsailDistribution_isEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Bool
isEnabled :: Maybe Bool
$sel:isEnabled:LightsailDistribution' :: LightsailDistribution -> Maybe Bool
isEnabled} -> Maybe Bool
isEnabled) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Bool
a -> LightsailDistribution
s {$sel:isEnabled:LightsailDistribution' :: Maybe Bool
isEnabled = Maybe Bool
a} :: LightsailDistribution)

-- | An object that describes the location of the distribution, such as the
-- Amazon Web Services Region and Availability Zone.
--
-- Lightsail distributions are global resources that can reference an
-- origin in any Amazon Web Services Region, and distribute its content
-- globally. However, all distributions are located in the @us-east-1@
-- Region.
lightsailDistribution_location :: Lens.Lens' LightsailDistribution (Prelude.Maybe ResourceLocation)
lightsailDistribution_location :: Lens' LightsailDistribution (Maybe ResourceLocation)
lightsailDistribution_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe ResourceLocation
location :: Maybe ResourceLocation
$sel:location:LightsailDistribution' :: LightsailDistribution -> Maybe ResourceLocation
location} -> Maybe ResourceLocation
location) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe ResourceLocation
a -> LightsailDistribution
s {$sel:location:LightsailDistribution' :: Maybe ResourceLocation
location = Maybe ResourceLocation
a} :: LightsailDistribution)

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

-- | An object that describes the origin resource of the distribution, such
-- as a Lightsail instance, bucket, or load balancer.
--
-- The distribution pulls, caches, and serves content from the origin.
lightsailDistribution_origin :: Lens.Lens' LightsailDistribution (Prelude.Maybe Origin)
lightsailDistribution_origin :: Lens' LightsailDistribution (Maybe Origin)
lightsailDistribution_origin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Origin
origin :: Maybe Origin
$sel:origin:LightsailDistribution' :: LightsailDistribution -> Maybe Origin
origin} -> Maybe Origin
origin) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Origin
a -> LightsailDistribution
s {$sel:origin:LightsailDistribution' :: Maybe Origin
origin = Maybe Origin
a} :: LightsailDistribution)

-- | The public DNS of the origin.
lightsailDistribution_originPublicDNS :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_originPublicDNS :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_originPublicDNS = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
originPublicDNS :: Maybe Text
$sel:originPublicDNS:LightsailDistribution' :: LightsailDistribution -> Maybe Text
originPublicDNS} -> Maybe Text
originPublicDNS) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:originPublicDNS:LightsailDistribution' :: Maybe Text
originPublicDNS = Maybe Text
a} :: LightsailDistribution)

-- | The Lightsail resource type (e.g., @Distribution@).
lightsailDistribution_resourceType :: Lens.Lens' LightsailDistribution (Prelude.Maybe ResourceType)
lightsailDistribution_resourceType :: Lens' LightsailDistribution (Maybe ResourceType)
lightsailDistribution_resourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe ResourceType
resourceType :: Maybe ResourceType
$sel:resourceType:LightsailDistribution' :: LightsailDistribution -> Maybe ResourceType
resourceType} -> Maybe ResourceType
resourceType) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe ResourceType
a -> LightsailDistribution
s {$sel:resourceType:LightsailDistribution' :: Maybe ResourceType
resourceType = Maybe ResourceType
a} :: LightsailDistribution)

-- | The status of the distribution.
lightsailDistribution_status :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_status :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
status :: Maybe Text
$sel:status:LightsailDistribution' :: LightsailDistribution -> Maybe Text
status} -> Maybe Text
status) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:status:LightsailDistribution' :: Maybe Text
status = Maybe Text
a} :: LightsailDistribution)

-- | The support code. Include this code in your email to support when you
-- have questions about your Lightsail distribution. This code enables our
-- support team to look up your Lightsail information more easily.
lightsailDistribution_supportCode :: Lens.Lens' LightsailDistribution (Prelude.Maybe Prelude.Text)
lightsailDistribution_supportCode :: Lens' LightsailDistribution (Maybe Text)
lightsailDistribution_supportCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe Text
supportCode :: Maybe Text
$sel:supportCode:LightsailDistribution' :: LightsailDistribution -> Maybe Text
supportCode} -> Maybe Text
supportCode) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe Text
a -> LightsailDistribution
s {$sel:supportCode:LightsailDistribution' :: Maybe Text
supportCode = Maybe Text
a} :: LightsailDistribution)

-- | The tag keys and optional values for the resource. For more information
-- about tags in Lightsail, see the
-- <https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-tags Amazon Lightsail Developer Guide>.
lightsailDistribution_tags :: Lens.Lens' LightsailDistribution (Prelude.Maybe [Tag])
lightsailDistribution_tags :: Lens' LightsailDistribution (Maybe [Tag])
lightsailDistribution_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LightsailDistribution' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:LightsailDistribution' :: LightsailDistribution -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: LightsailDistribution
s@LightsailDistribution' {} Maybe [Tag]
a -> LightsailDistribution
s {$sel:tags:LightsailDistribution' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: LightsailDistribution) 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

instance Data.FromJSON LightsailDistribution where
  parseJSON :: Value -> Parser LightsailDistribution
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"LightsailDistribution"
      ( \Object
x ->
          Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe CacheSettings
-> Maybe [CacheBehaviorPerPath]
-> Maybe Text
-> Maybe POSIX
-> Maybe CacheBehavior
-> Maybe Text
-> Maybe IpAddressType
-> Maybe Bool
-> Maybe ResourceLocation
-> Maybe Text
-> Maybe Origin
-> Maybe Text
-> Maybe ResourceType
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> LightsailDistribution
LightsailDistribution'
            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
"ableToUpdateBundle")
            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
"alternativeDomainNames"
                            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
"arn")
            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
"bundleId")
            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
"cacheBehaviorSettings")
            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
"cacheBehaviors" 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
"certificateName")
            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
"createdAt")
            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
"defaultCacheBehavior")
            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
"domainName")
            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
"ipAddressType")
            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
"isEnabled")
            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
"name")
            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
"origin")
            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
"originPublicDNS")
            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
"resourceType")
            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
"status")
            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
"supportCode")
            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 a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable LightsailDistribution where
  hashWithSalt :: Int -> LightsailDistribution -> Int
hashWithSalt Int
_salt LightsailDistribution' {Maybe Bool
Maybe [Text]
Maybe [CacheBehaviorPerPath]
Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe CacheBehavior
Maybe IpAddressType
Maybe CacheSettings
Maybe ResourceLocation
Maybe ResourceType
Maybe Origin
tags :: Maybe [Tag]
supportCode :: Maybe Text
status :: Maybe Text
resourceType :: Maybe ResourceType
originPublicDNS :: Maybe Text
origin :: Maybe Origin
name :: Maybe Text
location :: Maybe ResourceLocation
isEnabled :: Maybe Bool
ipAddressType :: Maybe IpAddressType
domainName :: Maybe Text
defaultCacheBehavior :: Maybe CacheBehavior
createdAt :: Maybe POSIX
certificateName :: Maybe Text
cacheBehaviors :: Maybe [CacheBehaviorPerPath]
cacheBehaviorSettings :: Maybe CacheSettings
bundleId :: Maybe Text
arn :: Maybe Text
alternativeDomainNames :: Maybe [Text]
ableToUpdateBundle :: Maybe Bool
$sel:tags:LightsailDistribution' :: LightsailDistribution -> Maybe [Tag]
$sel:supportCode:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:status:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:resourceType:LightsailDistribution' :: LightsailDistribution -> Maybe ResourceType
$sel:originPublicDNS:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:origin:LightsailDistribution' :: LightsailDistribution -> Maybe Origin
$sel:name:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:location:LightsailDistribution' :: LightsailDistribution -> Maybe ResourceLocation
$sel:isEnabled:LightsailDistribution' :: LightsailDistribution -> Maybe Bool
$sel:ipAddressType:LightsailDistribution' :: LightsailDistribution -> Maybe IpAddressType
$sel:domainName:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:defaultCacheBehavior:LightsailDistribution' :: LightsailDistribution -> Maybe CacheBehavior
$sel:createdAt:LightsailDistribution' :: LightsailDistribution -> Maybe POSIX
$sel:certificateName:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:cacheBehaviors:LightsailDistribution' :: LightsailDistribution -> Maybe [CacheBehaviorPerPath]
$sel:cacheBehaviorSettings:LightsailDistribution' :: LightsailDistribution -> Maybe CacheSettings
$sel:bundleId:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:arn:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:alternativeDomainNames:LightsailDistribution' :: LightsailDistribution -> Maybe [Text]
$sel:ableToUpdateBundle:LightsailDistribution' :: LightsailDistribution -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
ableToUpdateBundle
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
alternativeDomainNames
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
bundleId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CacheSettings
cacheBehaviorSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [CacheBehaviorPerPath]
cacheBehaviors
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
certificateName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CacheBehavior
defaultCacheBehavior
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IpAddressType
ipAddressType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
isEnabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceLocation
location
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Origin
origin
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
originPublicDNS
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceType
resourceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
supportCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags

instance Prelude.NFData LightsailDistribution where
  rnf :: LightsailDistribution -> ()
rnf LightsailDistribution' {Maybe Bool
Maybe [Text]
Maybe [CacheBehaviorPerPath]
Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe CacheBehavior
Maybe IpAddressType
Maybe CacheSettings
Maybe ResourceLocation
Maybe ResourceType
Maybe Origin
tags :: Maybe [Tag]
supportCode :: Maybe Text
status :: Maybe Text
resourceType :: Maybe ResourceType
originPublicDNS :: Maybe Text
origin :: Maybe Origin
name :: Maybe Text
location :: Maybe ResourceLocation
isEnabled :: Maybe Bool
ipAddressType :: Maybe IpAddressType
domainName :: Maybe Text
defaultCacheBehavior :: Maybe CacheBehavior
createdAt :: Maybe POSIX
certificateName :: Maybe Text
cacheBehaviors :: Maybe [CacheBehaviorPerPath]
cacheBehaviorSettings :: Maybe CacheSettings
bundleId :: Maybe Text
arn :: Maybe Text
alternativeDomainNames :: Maybe [Text]
ableToUpdateBundle :: Maybe Bool
$sel:tags:LightsailDistribution' :: LightsailDistribution -> Maybe [Tag]
$sel:supportCode:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:status:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:resourceType:LightsailDistribution' :: LightsailDistribution -> Maybe ResourceType
$sel:originPublicDNS:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:origin:LightsailDistribution' :: LightsailDistribution -> Maybe Origin
$sel:name:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:location:LightsailDistribution' :: LightsailDistribution -> Maybe ResourceLocation
$sel:isEnabled:LightsailDistribution' :: LightsailDistribution -> Maybe Bool
$sel:ipAddressType:LightsailDistribution' :: LightsailDistribution -> Maybe IpAddressType
$sel:domainName:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:defaultCacheBehavior:LightsailDistribution' :: LightsailDistribution -> Maybe CacheBehavior
$sel:createdAt:LightsailDistribution' :: LightsailDistribution -> Maybe POSIX
$sel:certificateName:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:cacheBehaviors:LightsailDistribution' :: LightsailDistribution -> Maybe [CacheBehaviorPerPath]
$sel:cacheBehaviorSettings:LightsailDistribution' :: LightsailDistribution -> Maybe CacheSettings
$sel:bundleId:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:arn:LightsailDistribution' :: LightsailDistribution -> Maybe Text
$sel:alternativeDomainNames:LightsailDistribution' :: LightsailDistribution -> Maybe [Text]
$sel:ableToUpdateBundle:LightsailDistribution' :: LightsailDistribution -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
ableToUpdateBundle
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
alternativeDomainNames
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
bundleId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CacheSettings
cacheBehaviorSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [CacheBehaviorPerPath]
cacheBehaviors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificateName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CacheBehavior
defaultCacheBehavior
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domainName
      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 Bool
isEnabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceLocation
location
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Origin
origin
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
originPublicDNS
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceType
resourceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
supportCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags