{-# 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.LoadBalancerTlsCertificate
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Lightsail.Types.LoadBalancerTlsCertificate where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import Amazonka.Lightsail.Types.LoadBalancerTlsCertificateDomainValidationRecord
import Amazonka.Lightsail.Types.LoadBalancerTlsCertificateFailureReason
import Amazonka.Lightsail.Types.LoadBalancerTlsCertificateRenewalSummary
import Amazonka.Lightsail.Types.LoadBalancerTlsCertificateRevocationReason
import Amazonka.Lightsail.Types.LoadBalancerTlsCertificateStatus
import Amazonka.Lightsail.Types.ResourceLocation
import Amazonka.Lightsail.Types.ResourceType
import Amazonka.Lightsail.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Describes a load balancer SSL\/TLS certificate.
--
-- TLS is just an updated, more secure version of Secure Socket Layer
-- (SSL).
--
-- /See:/ 'newLoadBalancerTlsCertificate' smart constructor.
data LoadBalancerTlsCertificate = LoadBalancerTlsCertificate'
  { -- | The validation failure reason, if any, of the certificate.
    --
    -- The following failure reasons are possible:
    --
    -- -   __@NO_AVAILABLE_CONTACTS@__ - This failure applies to email
    --     validation, which is not available for Lightsail certificates.
    --
    -- -   __@ADDITIONAL_VERIFICATION_REQUIRED@__ - Lightsail requires
    --     additional information to process this certificate request. This can
    --     happen as a fraud-protection measure, such as when the domain ranks
    --     within the Alexa top 1000 websites. To provide the required
    --     information, use the
    --     <https://console.aws.amazon.com/support/home AWS Support Center> to
    --     contact AWS Support.
    --
    --     You cannot request a certificate for Amazon-owned domain names such
    --     as those ending in amazonaws.com, cloudfront.net, or
    --     elasticbeanstalk.com.
    --
    -- -   __@DOMAIN_NOT_ALLOWED@__ - One or more of the domain names in the
    --     certificate request was reported as an unsafe domain by
    --     <https://www.virustotal.com/gui/home/url VirusTotal>. To correct the
    --     problem, search for your domain name on the
    --     <https://www.virustotal.com/gui/home/url VirusTotal> website. If
    --     your domain is reported as suspicious, see
    --     <https://developers.google.com/web/fundamentals/security/hacked Google Help for Hacked Websites>
    --     to learn what you can do.
    --
    --     If you believe that the result is a false positive, notify the
    --     organization that is reporting the domain. VirusTotal is an
    --     aggregate of several antivirus and URL scanners and cannot remove
    --     your domain from a block list itself. After you correct the problem
    --     and the VirusTotal registry has been updated, request a new
    --     certificate.
    --
    --     If you see this error and your domain is not included in the
    --     VirusTotal list, visit the
    --     <https://console.aws.amazon.com/support/home AWS Support Center> and
    --     create a case.
    --
    -- -   __@INVALID_PUBLIC_DOMAIN@__ - One or more of the domain names in the
    --     certificate request is not valid. Typically, this is because a
    --     domain name in the request is not a valid top-level domain. Try to
    --     request a certificate again, correcting any spelling errors or typos
    --     that were in the failed request, and ensure that all domain names in
    --     the request are for valid top-level domains. For example, you cannot
    --     request a certificate for @example.invalidpublicdomain@ because
    --     @invalidpublicdomain@ is not a valid top-level domain.
    --
    -- -   __@OTHER@__ - Typically, this failure occurs when there is a
    --     typographical error in one or more of the domain names in the
    --     certificate request. Try to request a certificate again, correcting
    --     any spelling errors or typos that were in the failed request.
    LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateFailureReason
failureReason :: Prelude.Maybe LoadBalancerTlsCertificateFailureReason,
    -- | The name of the entity that is associated with the public key contained
    -- in the certificate.
    LoadBalancerTlsCertificate -> Maybe Text
subject :: Prelude.Maybe Prelude.Text,
    -- | The validation status of the SSL\/TLS certificate. Valid values are
    -- below.
    LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateStatus
status :: Prelude.Maybe LoadBalancerTlsCertificateStatus,
    -- | An array of strings that specify the alternate domains (e.g.,
    -- @example2.com@) and subdomains (e.g., @blog.example.com@) for the
    -- certificate.
    LoadBalancerTlsCertificate -> Maybe [Text]
subjectAlternativeNames :: Prelude.Maybe [Prelude.Text],
    -- | The resource type (e.g., @LoadBalancerTlsCertificate@).
    --
    -- -   __@Instance@__ - A Lightsail instance (a virtual private server)
    --
    -- -   __@StaticIp@__ - A static IP address
    --
    -- -   __@KeyPair@__ - The key pair used to connect to a Lightsail instance
    --
    -- -   __@InstanceSnapshot@__ - A Lightsail instance snapshot
    --
    -- -   __@Domain@__ - A DNS zone
    --
    -- -   __@PeeredVpc@__ - A peered VPC
    --
    -- -   __@LoadBalancer@__ - A Lightsail load balancer
    --
    -- -   __@LoadBalancerTlsCertificate@__ - An SSL\/TLS certificate
    --     associated with a Lightsail load balancer
    --
    -- -   __@Disk@__ - A Lightsail block storage disk
    --
    -- -   __@DiskSnapshot@__ - A block storage disk snapshot
    LoadBalancerTlsCertificate -> Maybe ResourceType
resourceType :: Prelude.Maybe ResourceType,
    -- | The Amazon Resource Name (ARN) of the SSL\/TLS certificate.
    LoadBalancerTlsCertificate -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The time when you created your SSL\/TLS certificate.
    LoadBalancerTlsCertificate -> Maybe POSIX
createdAt :: Prelude.Maybe Core.POSIX,
    -- | The AWS Region and Availability Zone where you created your certificate.
    LoadBalancerTlsCertificate -> Maybe ResourceLocation
location :: Prelude.Maybe ResourceLocation,
    -- | The load balancer name where your SSL\/TLS certificate is attached.
    LoadBalancerTlsCertificate -> Maybe Text
loadBalancerName :: Prelude.Maybe Prelude.Text,
    -- | The serial number of the certificate.
    LoadBalancerTlsCertificate -> Maybe Text
serial :: Prelude.Maybe Prelude.Text,
    -- | When @true@, the SSL\/TLS certificate is attached to the Lightsail load
    -- balancer.
    LoadBalancerTlsCertificate -> Maybe Bool
isAttached :: Prelude.Maybe Prelude.Bool,
    -- | The timestamp when the certificate was revoked. This value is present
    -- only when the certificate status is @REVOKED@.
    LoadBalancerTlsCertificate -> Maybe POSIX
revokedAt :: Prelude.Maybe Core.POSIX,
    -- | The timestamp when the SSL\/TLS certificate is first valid.
    LoadBalancerTlsCertificate -> Maybe POSIX
notBefore :: Prelude.Maybe Core.POSIX,
    -- | The reason the certificate was revoked. This value is present only when
    -- the certificate status is @REVOKED@.
    LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateRevocationReason
revocationReason :: Prelude.Maybe LoadBalancerTlsCertificateRevocationReason,
    -- | The domain name for your SSL\/TLS certificate.
    LoadBalancerTlsCertificate -> Maybe Text
domainName :: Prelude.Maybe Prelude.Text,
    -- | The name of the SSL\/TLS certificate (e.g., @my-certificate@).
    LoadBalancerTlsCertificate -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | An object that describes the status of the certificate renewal managed
    -- by Lightsail.
    LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateRenewalSummary
renewalSummary :: Prelude.Maybe LoadBalancerTlsCertificateRenewalSummary,
    -- | The support code. Include this code in your email to support when you
    -- have questions about your Lightsail load balancer or SSL\/TLS
    -- certificate. This code enables our support team to look up your
    -- Lightsail information more easily.
    LoadBalancerTlsCertificate -> Maybe Text
supportCode :: Prelude.Maybe Prelude.Text,
    -- | An array of LoadBalancerTlsCertificateDomainValidationRecord objects
    -- describing the records.
    LoadBalancerTlsCertificate
-> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
domainValidationRecords :: Prelude.Maybe [LoadBalancerTlsCertificateDomainValidationRecord],
    -- | The time when the SSL\/TLS certificate was issued.
    LoadBalancerTlsCertificate -> Maybe POSIX
issuedAt :: Prelude.Maybe Core.POSIX,
    -- | The algorithm used to generate the key pair (the public and private
    -- key).
    LoadBalancerTlsCertificate -> Maybe Text
keyAlgorithm :: Prelude.Maybe Prelude.Text,
    -- | The algorithm that was used to sign the certificate.
    LoadBalancerTlsCertificate -> Maybe Text
signatureAlgorithm :: Prelude.Maybe Prelude.Text,
    -- | The issuer of the certificate.
    LoadBalancerTlsCertificate -> Maybe Text
issuer :: 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>.
    LoadBalancerTlsCertificate -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The timestamp when the SSL\/TLS certificate expires.
    LoadBalancerTlsCertificate -> Maybe POSIX
notAfter :: Prelude.Maybe Core.POSIX
  }
  deriving (LoadBalancerTlsCertificate -> LoadBalancerTlsCertificate -> Bool
(LoadBalancerTlsCertificate -> LoadBalancerTlsCertificate -> Bool)
-> (LoadBalancerTlsCertificate
    -> LoadBalancerTlsCertificate -> Bool)
-> Eq LoadBalancerTlsCertificate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LoadBalancerTlsCertificate -> LoadBalancerTlsCertificate -> Bool
$c/= :: LoadBalancerTlsCertificate -> LoadBalancerTlsCertificate -> Bool
== :: LoadBalancerTlsCertificate -> LoadBalancerTlsCertificate -> Bool
$c== :: LoadBalancerTlsCertificate -> LoadBalancerTlsCertificate -> Bool
Prelude.Eq, ReadPrec [LoadBalancerTlsCertificate]
ReadPrec LoadBalancerTlsCertificate
Int -> ReadS LoadBalancerTlsCertificate
ReadS [LoadBalancerTlsCertificate]
(Int -> ReadS LoadBalancerTlsCertificate)
-> ReadS [LoadBalancerTlsCertificate]
-> ReadPrec LoadBalancerTlsCertificate
-> ReadPrec [LoadBalancerTlsCertificate]
-> Read LoadBalancerTlsCertificate
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LoadBalancerTlsCertificate]
$creadListPrec :: ReadPrec [LoadBalancerTlsCertificate]
readPrec :: ReadPrec LoadBalancerTlsCertificate
$creadPrec :: ReadPrec LoadBalancerTlsCertificate
readList :: ReadS [LoadBalancerTlsCertificate]
$creadList :: ReadS [LoadBalancerTlsCertificate]
readsPrec :: Int -> ReadS LoadBalancerTlsCertificate
$creadsPrec :: Int -> ReadS LoadBalancerTlsCertificate
Prelude.Read, Int -> LoadBalancerTlsCertificate -> ShowS
[LoadBalancerTlsCertificate] -> ShowS
LoadBalancerTlsCertificate -> String
(Int -> LoadBalancerTlsCertificate -> ShowS)
-> (LoadBalancerTlsCertificate -> String)
-> ([LoadBalancerTlsCertificate] -> ShowS)
-> Show LoadBalancerTlsCertificate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LoadBalancerTlsCertificate] -> ShowS
$cshowList :: [LoadBalancerTlsCertificate] -> ShowS
show :: LoadBalancerTlsCertificate -> String
$cshow :: LoadBalancerTlsCertificate -> String
showsPrec :: Int -> LoadBalancerTlsCertificate -> ShowS
$cshowsPrec :: Int -> LoadBalancerTlsCertificate -> ShowS
Prelude.Show, (forall x.
 LoadBalancerTlsCertificate -> Rep LoadBalancerTlsCertificate x)
-> (forall x.
    Rep LoadBalancerTlsCertificate x -> LoadBalancerTlsCertificate)
-> Generic LoadBalancerTlsCertificate
forall x.
Rep LoadBalancerTlsCertificate x -> LoadBalancerTlsCertificate
forall x.
LoadBalancerTlsCertificate -> Rep LoadBalancerTlsCertificate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep LoadBalancerTlsCertificate x -> LoadBalancerTlsCertificate
$cfrom :: forall x.
LoadBalancerTlsCertificate -> Rep LoadBalancerTlsCertificate x
Prelude.Generic)

-- |
-- Create a value of 'LoadBalancerTlsCertificate' 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:
--
-- 'failureReason', 'loadBalancerTlsCertificate_failureReason' - The validation failure reason, if any, of the certificate.
--
-- The following failure reasons are possible:
--
-- -   __@NO_AVAILABLE_CONTACTS@__ - This failure applies to email
--     validation, which is not available for Lightsail certificates.
--
-- -   __@ADDITIONAL_VERIFICATION_REQUIRED@__ - Lightsail requires
--     additional information to process this certificate request. This can
--     happen as a fraud-protection measure, such as when the domain ranks
--     within the Alexa top 1000 websites. To provide the required
--     information, use the
--     <https://console.aws.amazon.com/support/home AWS Support Center> to
--     contact AWS Support.
--
--     You cannot request a certificate for Amazon-owned domain names such
--     as those ending in amazonaws.com, cloudfront.net, or
--     elasticbeanstalk.com.
--
-- -   __@DOMAIN_NOT_ALLOWED@__ - One or more of the domain names in the
--     certificate request was reported as an unsafe domain by
--     <https://www.virustotal.com/gui/home/url VirusTotal>. To correct the
--     problem, search for your domain name on the
--     <https://www.virustotal.com/gui/home/url VirusTotal> website. If
--     your domain is reported as suspicious, see
--     <https://developers.google.com/web/fundamentals/security/hacked Google Help for Hacked Websites>
--     to learn what you can do.
--
--     If you believe that the result is a false positive, notify the
--     organization that is reporting the domain. VirusTotal is an
--     aggregate of several antivirus and URL scanners and cannot remove
--     your domain from a block list itself. After you correct the problem
--     and the VirusTotal registry has been updated, request a new
--     certificate.
--
--     If you see this error and your domain is not included in the
--     VirusTotal list, visit the
--     <https://console.aws.amazon.com/support/home AWS Support Center> and
--     create a case.
--
-- -   __@INVALID_PUBLIC_DOMAIN@__ - One or more of the domain names in the
--     certificate request is not valid. Typically, this is because a
--     domain name in the request is not a valid top-level domain. Try to
--     request a certificate again, correcting any spelling errors or typos
--     that were in the failed request, and ensure that all domain names in
--     the request are for valid top-level domains. For example, you cannot
--     request a certificate for @example.invalidpublicdomain@ because
--     @invalidpublicdomain@ is not a valid top-level domain.
--
-- -   __@OTHER@__ - Typically, this failure occurs when there is a
--     typographical error in one or more of the domain names in the
--     certificate request. Try to request a certificate again, correcting
--     any spelling errors or typos that were in the failed request.
--
-- 'subject', 'loadBalancerTlsCertificate_subject' - The name of the entity that is associated with the public key contained
-- in the certificate.
--
-- 'status', 'loadBalancerTlsCertificate_status' - The validation status of the SSL\/TLS certificate. Valid values are
-- below.
--
-- 'subjectAlternativeNames', 'loadBalancerTlsCertificate_subjectAlternativeNames' - An array of strings that specify the alternate domains (e.g.,
-- @example2.com@) and subdomains (e.g., @blog.example.com@) for the
-- certificate.
--
-- 'resourceType', 'loadBalancerTlsCertificate_resourceType' - The resource type (e.g., @LoadBalancerTlsCertificate@).
--
-- -   __@Instance@__ - A Lightsail instance (a virtual private server)
--
-- -   __@StaticIp@__ - A static IP address
--
-- -   __@KeyPair@__ - The key pair used to connect to a Lightsail instance
--
-- -   __@InstanceSnapshot@__ - A Lightsail instance snapshot
--
-- -   __@Domain@__ - A DNS zone
--
-- -   __@PeeredVpc@__ - A peered VPC
--
-- -   __@LoadBalancer@__ - A Lightsail load balancer
--
-- -   __@LoadBalancerTlsCertificate@__ - An SSL\/TLS certificate
--     associated with a Lightsail load balancer
--
-- -   __@Disk@__ - A Lightsail block storage disk
--
-- -   __@DiskSnapshot@__ - A block storage disk snapshot
--
-- 'arn', 'loadBalancerTlsCertificate_arn' - The Amazon Resource Name (ARN) of the SSL\/TLS certificate.
--
-- 'createdAt', 'loadBalancerTlsCertificate_createdAt' - The time when you created your SSL\/TLS certificate.
--
-- 'location', 'loadBalancerTlsCertificate_location' - The AWS Region and Availability Zone where you created your certificate.
--
-- 'loadBalancerName', 'loadBalancerTlsCertificate_loadBalancerName' - The load balancer name where your SSL\/TLS certificate is attached.
--
-- 'serial', 'loadBalancerTlsCertificate_serial' - The serial number of the certificate.
--
-- 'isAttached', 'loadBalancerTlsCertificate_isAttached' - When @true@, the SSL\/TLS certificate is attached to the Lightsail load
-- balancer.
--
-- 'revokedAt', 'loadBalancerTlsCertificate_revokedAt' - The timestamp when the certificate was revoked. This value is present
-- only when the certificate status is @REVOKED@.
--
-- 'notBefore', 'loadBalancerTlsCertificate_notBefore' - The timestamp when the SSL\/TLS certificate is first valid.
--
-- 'revocationReason', 'loadBalancerTlsCertificate_revocationReason' - The reason the certificate was revoked. This value is present only when
-- the certificate status is @REVOKED@.
--
-- 'domainName', 'loadBalancerTlsCertificate_domainName' - The domain name for your SSL\/TLS certificate.
--
-- 'name', 'loadBalancerTlsCertificate_name' - The name of the SSL\/TLS certificate (e.g., @my-certificate@).
--
-- 'renewalSummary', 'loadBalancerTlsCertificate_renewalSummary' - An object that describes the status of the certificate renewal managed
-- by Lightsail.
--
-- 'supportCode', 'loadBalancerTlsCertificate_supportCode' - The support code. Include this code in your email to support when you
-- have questions about your Lightsail load balancer or SSL\/TLS
-- certificate. This code enables our support team to look up your
-- Lightsail information more easily.
--
-- 'domainValidationRecords', 'loadBalancerTlsCertificate_domainValidationRecords' - An array of LoadBalancerTlsCertificateDomainValidationRecord objects
-- describing the records.
--
-- 'issuedAt', 'loadBalancerTlsCertificate_issuedAt' - The time when the SSL\/TLS certificate was issued.
--
-- 'keyAlgorithm', 'loadBalancerTlsCertificate_keyAlgorithm' - The algorithm used to generate the key pair (the public and private
-- key).
--
-- 'signatureAlgorithm', 'loadBalancerTlsCertificate_signatureAlgorithm' - The algorithm that was used to sign the certificate.
--
-- 'issuer', 'loadBalancerTlsCertificate_issuer' - The issuer of the certificate.
--
-- 'tags', 'loadBalancerTlsCertificate_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>.
--
-- 'notAfter', 'loadBalancerTlsCertificate_notAfter' - The timestamp when the SSL\/TLS certificate expires.
newLoadBalancerTlsCertificate ::
  LoadBalancerTlsCertificate
newLoadBalancerTlsCertificate :: LoadBalancerTlsCertificate
newLoadBalancerTlsCertificate =
  LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateFailureReason
-> Maybe Text
-> Maybe LoadBalancerTlsCertificateStatus
-> Maybe [Text]
-> Maybe ResourceType
-> Maybe Text
-> Maybe POSIX
-> Maybe ResourceLocation
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe POSIX
-> Maybe POSIX
-> Maybe LoadBalancerTlsCertificateRevocationReason
-> Maybe Text
-> Maybe Text
-> Maybe LoadBalancerTlsCertificateRenewalSummary
-> Maybe Text
-> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> Maybe POSIX
-> LoadBalancerTlsCertificate
LoadBalancerTlsCertificate'
    { $sel:failureReason:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateFailureReason
failureReason =
        Maybe LoadBalancerTlsCertificateFailureReason
forall a. Maybe a
Prelude.Nothing,
      $sel:subject:LoadBalancerTlsCertificate' :: Maybe Text
subject = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:status:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateStatus
status = Maybe LoadBalancerTlsCertificateStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:subjectAlternativeNames:LoadBalancerTlsCertificate' :: Maybe [Text]
subjectAlternativeNames = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:resourceType:LoadBalancerTlsCertificate' :: Maybe ResourceType
resourceType = Maybe ResourceType
forall a. Maybe a
Prelude.Nothing,
      $sel:arn:LoadBalancerTlsCertificate' :: Maybe Text
arn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:LoadBalancerTlsCertificate' :: Maybe POSIX
createdAt = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:location:LoadBalancerTlsCertificate' :: Maybe ResourceLocation
location = Maybe ResourceLocation
forall a. Maybe a
Prelude.Nothing,
      $sel:loadBalancerName:LoadBalancerTlsCertificate' :: Maybe Text
loadBalancerName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:serial:LoadBalancerTlsCertificate' :: Maybe Text
serial = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:isAttached:LoadBalancerTlsCertificate' :: Maybe Bool
isAttached = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:revokedAt:LoadBalancerTlsCertificate' :: Maybe POSIX
revokedAt = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:notBefore:LoadBalancerTlsCertificate' :: Maybe POSIX
notBefore = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:revocationReason:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateRevocationReason
revocationReason = Maybe LoadBalancerTlsCertificateRevocationReason
forall a. Maybe a
Prelude.Nothing,
      $sel:domainName:LoadBalancerTlsCertificate' :: Maybe Text
domainName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:name:LoadBalancerTlsCertificate' :: Maybe Text
name = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:renewalSummary:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateRenewalSummary
renewalSummary = Maybe LoadBalancerTlsCertificateRenewalSummary
forall a. Maybe a
Prelude.Nothing,
      $sel:supportCode:LoadBalancerTlsCertificate' :: Maybe Text
supportCode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:domainValidationRecords:LoadBalancerTlsCertificate' :: Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
domainValidationRecords = Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
forall a. Maybe a
Prelude.Nothing,
      $sel:issuedAt:LoadBalancerTlsCertificate' :: Maybe POSIX
issuedAt = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:keyAlgorithm:LoadBalancerTlsCertificate' :: Maybe Text
keyAlgorithm = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:signatureAlgorithm:LoadBalancerTlsCertificate' :: Maybe Text
signatureAlgorithm = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:issuer:LoadBalancerTlsCertificate' :: Maybe Text
issuer = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:LoadBalancerTlsCertificate' :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing,
      $sel:notAfter:LoadBalancerTlsCertificate' :: Maybe POSIX
notAfter = Maybe POSIX
forall a. Maybe a
Prelude.Nothing
    }

-- | The validation failure reason, if any, of the certificate.
--
-- The following failure reasons are possible:
--
-- -   __@NO_AVAILABLE_CONTACTS@__ - This failure applies to email
--     validation, which is not available for Lightsail certificates.
--
-- -   __@ADDITIONAL_VERIFICATION_REQUIRED@__ - Lightsail requires
--     additional information to process this certificate request. This can
--     happen as a fraud-protection measure, such as when the domain ranks
--     within the Alexa top 1000 websites. To provide the required
--     information, use the
--     <https://console.aws.amazon.com/support/home AWS Support Center> to
--     contact AWS Support.
--
--     You cannot request a certificate for Amazon-owned domain names such
--     as those ending in amazonaws.com, cloudfront.net, or
--     elasticbeanstalk.com.
--
-- -   __@DOMAIN_NOT_ALLOWED@__ - One or more of the domain names in the
--     certificate request was reported as an unsafe domain by
--     <https://www.virustotal.com/gui/home/url VirusTotal>. To correct the
--     problem, search for your domain name on the
--     <https://www.virustotal.com/gui/home/url VirusTotal> website. If
--     your domain is reported as suspicious, see
--     <https://developers.google.com/web/fundamentals/security/hacked Google Help for Hacked Websites>
--     to learn what you can do.
--
--     If you believe that the result is a false positive, notify the
--     organization that is reporting the domain. VirusTotal is an
--     aggregate of several antivirus and URL scanners and cannot remove
--     your domain from a block list itself. After you correct the problem
--     and the VirusTotal registry has been updated, request a new
--     certificate.
--
--     If you see this error and your domain is not included in the
--     VirusTotal list, visit the
--     <https://console.aws.amazon.com/support/home AWS Support Center> and
--     create a case.
--
-- -   __@INVALID_PUBLIC_DOMAIN@__ - One or more of the domain names in the
--     certificate request is not valid. Typically, this is because a
--     domain name in the request is not a valid top-level domain. Try to
--     request a certificate again, correcting any spelling errors or typos
--     that were in the failed request, and ensure that all domain names in
--     the request are for valid top-level domains. For example, you cannot
--     request a certificate for @example.invalidpublicdomain@ because
--     @invalidpublicdomain@ is not a valid top-level domain.
--
-- -   __@OTHER@__ - Typically, this failure occurs when there is a
--     typographical error in one or more of the domain names in the
--     certificate request. Try to request a certificate again, correcting
--     any spelling errors or typos that were in the failed request.
loadBalancerTlsCertificate_failureReason :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe LoadBalancerTlsCertificateFailureReason)
loadBalancerTlsCertificate_failureReason :: (Maybe LoadBalancerTlsCertificateFailureReason
 -> f (Maybe LoadBalancerTlsCertificateFailureReason))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_failureReason = (LoadBalancerTlsCertificate
 -> Maybe LoadBalancerTlsCertificateFailureReason)
-> (LoadBalancerTlsCertificate
    -> Maybe LoadBalancerTlsCertificateFailureReason
    -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe LoadBalancerTlsCertificateFailureReason)
     (Maybe LoadBalancerTlsCertificateFailureReason)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe LoadBalancerTlsCertificateFailureReason
failureReason :: Maybe LoadBalancerTlsCertificateFailureReason
$sel:failureReason:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateFailureReason
failureReason} -> Maybe LoadBalancerTlsCertificateFailureReason
failureReason) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe LoadBalancerTlsCertificateFailureReason
a -> LoadBalancerTlsCertificate
s {$sel:failureReason:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateFailureReason
failureReason = Maybe LoadBalancerTlsCertificateFailureReason
a} :: LoadBalancerTlsCertificate)

-- | The name of the entity that is associated with the public key contained
-- in the certificate.
loadBalancerTlsCertificate_subject :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_subject :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_subject = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
subject :: Maybe Text
$sel:subject:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
subject} -> Maybe Text
subject) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:subject:LoadBalancerTlsCertificate' :: Maybe Text
subject = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | The validation status of the SSL\/TLS certificate. Valid values are
-- below.
loadBalancerTlsCertificate_status :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe LoadBalancerTlsCertificateStatus)
loadBalancerTlsCertificate_status :: (Maybe LoadBalancerTlsCertificateStatus
 -> f (Maybe LoadBalancerTlsCertificateStatus))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_status = (LoadBalancerTlsCertificate
 -> Maybe LoadBalancerTlsCertificateStatus)
-> (LoadBalancerTlsCertificate
    -> Maybe LoadBalancerTlsCertificateStatus
    -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe LoadBalancerTlsCertificateStatus)
     (Maybe LoadBalancerTlsCertificateStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe LoadBalancerTlsCertificateStatus
status :: Maybe LoadBalancerTlsCertificateStatus
$sel:status:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateStatus
status} -> Maybe LoadBalancerTlsCertificateStatus
status) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe LoadBalancerTlsCertificateStatus
a -> LoadBalancerTlsCertificate
s {$sel:status:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateStatus
status = Maybe LoadBalancerTlsCertificateStatus
a} :: LoadBalancerTlsCertificate)

-- | An array of strings that specify the alternate domains (e.g.,
-- @example2.com@) and subdomains (e.g., @blog.example.com@) for the
-- certificate.
loadBalancerTlsCertificate_subjectAlternativeNames :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe [Prelude.Text])
loadBalancerTlsCertificate_subjectAlternativeNames :: (Maybe [Text] -> f (Maybe [Text]))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_subjectAlternativeNames = (LoadBalancerTlsCertificate -> Maybe [Text])
-> (LoadBalancerTlsCertificate
    -> Maybe [Text] -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe [Text]
subjectAlternativeNames :: Maybe [Text]
$sel:subjectAlternativeNames:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe [Text]
subjectAlternativeNames} -> Maybe [Text]
subjectAlternativeNames) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe [Text]
a -> LoadBalancerTlsCertificate
s {$sel:subjectAlternativeNames:LoadBalancerTlsCertificate' :: Maybe [Text]
subjectAlternativeNames = Maybe [Text]
a} :: LoadBalancerTlsCertificate) ((Maybe [Text] -> f (Maybe [Text]))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The resource type (e.g., @LoadBalancerTlsCertificate@).
--
-- -   __@Instance@__ - A Lightsail instance (a virtual private server)
--
-- -   __@StaticIp@__ - A static IP address
--
-- -   __@KeyPair@__ - The key pair used to connect to a Lightsail instance
--
-- -   __@InstanceSnapshot@__ - A Lightsail instance snapshot
--
-- -   __@Domain@__ - A DNS zone
--
-- -   __@PeeredVpc@__ - A peered VPC
--
-- -   __@LoadBalancer@__ - A Lightsail load balancer
--
-- -   __@LoadBalancerTlsCertificate@__ - An SSL\/TLS certificate
--     associated with a Lightsail load balancer
--
-- -   __@Disk@__ - A Lightsail block storage disk
--
-- -   __@DiskSnapshot@__ - A block storage disk snapshot
loadBalancerTlsCertificate_resourceType :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe ResourceType)
loadBalancerTlsCertificate_resourceType :: (Maybe ResourceType -> f (Maybe ResourceType))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_resourceType = (LoadBalancerTlsCertificate -> Maybe ResourceType)
-> (LoadBalancerTlsCertificate
    -> Maybe ResourceType -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe ResourceType)
     (Maybe ResourceType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe ResourceType
resourceType :: Maybe ResourceType
$sel:resourceType:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe ResourceType
resourceType} -> Maybe ResourceType
resourceType) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe ResourceType
a -> LoadBalancerTlsCertificate
s {$sel:resourceType:LoadBalancerTlsCertificate' :: Maybe ResourceType
resourceType = Maybe ResourceType
a} :: LoadBalancerTlsCertificate)

-- | The Amazon Resource Name (ARN) of the SSL\/TLS certificate.
loadBalancerTlsCertificate_arn :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_arn :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_arn = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
arn :: Maybe Text
$sel:arn:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
arn} -> Maybe Text
arn) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:arn:LoadBalancerTlsCertificate' :: Maybe Text
arn = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | The time when you created your SSL\/TLS certificate.
loadBalancerTlsCertificate_createdAt :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.UTCTime)
loadBalancerTlsCertificate_createdAt :: (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_createdAt = (LoadBalancerTlsCertificate -> Maybe POSIX)
-> (LoadBalancerTlsCertificate
    -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe POSIX
a -> LoadBalancerTlsCertificate
s {$sel:createdAt:LoadBalancerTlsCertificate' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: LoadBalancerTlsCertificate) ((Maybe POSIX -> f (Maybe POSIX))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The AWS Region and Availability Zone where you created your certificate.
loadBalancerTlsCertificate_location :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe ResourceLocation)
loadBalancerTlsCertificate_location :: (Maybe ResourceLocation -> f (Maybe ResourceLocation))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_location = (LoadBalancerTlsCertificate -> Maybe ResourceLocation)
-> (LoadBalancerTlsCertificate
    -> Maybe ResourceLocation -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe ResourceLocation)
     (Maybe ResourceLocation)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe ResourceLocation
location :: Maybe ResourceLocation
$sel:location:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe ResourceLocation
location} -> Maybe ResourceLocation
location) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe ResourceLocation
a -> LoadBalancerTlsCertificate
s {$sel:location:LoadBalancerTlsCertificate' :: Maybe ResourceLocation
location = Maybe ResourceLocation
a} :: LoadBalancerTlsCertificate)

-- | The load balancer name where your SSL\/TLS certificate is attached.
loadBalancerTlsCertificate_loadBalancerName :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_loadBalancerName :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_loadBalancerName = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
loadBalancerName :: Maybe Text
$sel:loadBalancerName:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
loadBalancerName} -> Maybe Text
loadBalancerName) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:loadBalancerName:LoadBalancerTlsCertificate' :: Maybe Text
loadBalancerName = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | The serial number of the certificate.
loadBalancerTlsCertificate_serial :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_serial :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_serial = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
serial :: Maybe Text
$sel:serial:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
serial} -> Maybe Text
serial) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:serial:LoadBalancerTlsCertificate' :: Maybe Text
serial = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | When @true@, the SSL\/TLS certificate is attached to the Lightsail load
-- balancer.
loadBalancerTlsCertificate_isAttached :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Bool)
loadBalancerTlsCertificate_isAttached :: (Maybe Bool -> f (Maybe Bool))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_isAttached = (LoadBalancerTlsCertificate -> Maybe Bool)
-> (LoadBalancerTlsCertificate
    -> Maybe Bool -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Bool
isAttached :: Maybe Bool
$sel:isAttached:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Bool
isAttached} -> Maybe Bool
isAttached) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Bool
a -> LoadBalancerTlsCertificate
s {$sel:isAttached:LoadBalancerTlsCertificate' :: Maybe Bool
isAttached = Maybe Bool
a} :: LoadBalancerTlsCertificate)

-- | The timestamp when the certificate was revoked. This value is present
-- only when the certificate status is @REVOKED@.
loadBalancerTlsCertificate_revokedAt :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.UTCTime)
loadBalancerTlsCertificate_revokedAt :: (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_revokedAt = (LoadBalancerTlsCertificate -> Maybe POSIX)
-> (LoadBalancerTlsCertificate
    -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe POSIX
revokedAt :: Maybe POSIX
$sel:revokedAt:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe POSIX
revokedAt} -> Maybe POSIX
revokedAt) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe POSIX
a -> LoadBalancerTlsCertificate
s {$sel:revokedAt:LoadBalancerTlsCertificate' :: Maybe POSIX
revokedAt = Maybe POSIX
a} :: LoadBalancerTlsCertificate) ((Maybe POSIX -> f (Maybe POSIX))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The timestamp when the SSL\/TLS certificate is first valid.
loadBalancerTlsCertificate_notBefore :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.UTCTime)
loadBalancerTlsCertificate_notBefore :: (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_notBefore = (LoadBalancerTlsCertificate -> Maybe POSIX)
-> (LoadBalancerTlsCertificate
    -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe POSIX
notBefore :: Maybe POSIX
$sel:notBefore:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe POSIX
notBefore} -> Maybe POSIX
notBefore) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe POSIX
a -> LoadBalancerTlsCertificate
s {$sel:notBefore:LoadBalancerTlsCertificate' :: Maybe POSIX
notBefore = Maybe POSIX
a} :: LoadBalancerTlsCertificate) ((Maybe POSIX -> f (Maybe POSIX))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The reason the certificate was revoked. This value is present only when
-- the certificate status is @REVOKED@.
loadBalancerTlsCertificate_revocationReason :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe LoadBalancerTlsCertificateRevocationReason)
loadBalancerTlsCertificate_revocationReason :: (Maybe LoadBalancerTlsCertificateRevocationReason
 -> f (Maybe LoadBalancerTlsCertificateRevocationReason))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_revocationReason = (LoadBalancerTlsCertificate
 -> Maybe LoadBalancerTlsCertificateRevocationReason)
-> (LoadBalancerTlsCertificate
    -> Maybe LoadBalancerTlsCertificateRevocationReason
    -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe LoadBalancerTlsCertificateRevocationReason)
     (Maybe LoadBalancerTlsCertificateRevocationReason)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe LoadBalancerTlsCertificateRevocationReason
revocationReason :: Maybe LoadBalancerTlsCertificateRevocationReason
$sel:revocationReason:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateRevocationReason
revocationReason} -> Maybe LoadBalancerTlsCertificateRevocationReason
revocationReason) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe LoadBalancerTlsCertificateRevocationReason
a -> LoadBalancerTlsCertificate
s {$sel:revocationReason:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateRevocationReason
revocationReason = Maybe LoadBalancerTlsCertificateRevocationReason
a} :: LoadBalancerTlsCertificate)

-- | The domain name for your SSL\/TLS certificate.
loadBalancerTlsCertificate_domainName :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_domainName :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_domainName = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
domainName :: Maybe Text
$sel:domainName:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
domainName} -> Maybe Text
domainName) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:domainName:LoadBalancerTlsCertificate' :: Maybe Text
domainName = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | The name of the SSL\/TLS certificate (e.g., @my-certificate@).
loadBalancerTlsCertificate_name :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_name :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_name = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
name :: Maybe Text
$sel:name:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
name} -> Maybe Text
name) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:name:LoadBalancerTlsCertificate' :: Maybe Text
name = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | An object that describes the status of the certificate renewal managed
-- by Lightsail.
loadBalancerTlsCertificate_renewalSummary :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe LoadBalancerTlsCertificateRenewalSummary)
loadBalancerTlsCertificate_renewalSummary :: (Maybe LoadBalancerTlsCertificateRenewalSummary
 -> f (Maybe LoadBalancerTlsCertificateRenewalSummary))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_renewalSummary = (LoadBalancerTlsCertificate
 -> Maybe LoadBalancerTlsCertificateRenewalSummary)
-> (LoadBalancerTlsCertificate
    -> Maybe LoadBalancerTlsCertificateRenewalSummary
    -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe LoadBalancerTlsCertificateRenewalSummary)
     (Maybe LoadBalancerTlsCertificateRenewalSummary)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe LoadBalancerTlsCertificateRenewalSummary
renewalSummary :: Maybe LoadBalancerTlsCertificateRenewalSummary
$sel:renewalSummary:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate
-> Maybe LoadBalancerTlsCertificateRenewalSummary
renewalSummary} -> Maybe LoadBalancerTlsCertificateRenewalSummary
renewalSummary) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe LoadBalancerTlsCertificateRenewalSummary
a -> LoadBalancerTlsCertificate
s {$sel:renewalSummary:LoadBalancerTlsCertificate' :: Maybe LoadBalancerTlsCertificateRenewalSummary
renewalSummary = Maybe LoadBalancerTlsCertificateRenewalSummary
a} :: LoadBalancerTlsCertificate)

-- | The support code. Include this code in your email to support when you
-- have questions about your Lightsail load balancer or SSL\/TLS
-- certificate. This code enables our support team to look up your
-- Lightsail information more easily.
loadBalancerTlsCertificate_supportCode :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_supportCode :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_supportCode = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
supportCode :: Maybe Text
$sel:supportCode:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
supportCode} -> Maybe Text
supportCode) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:supportCode:LoadBalancerTlsCertificate' :: Maybe Text
supportCode = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | An array of LoadBalancerTlsCertificateDomainValidationRecord objects
-- describing the records.
loadBalancerTlsCertificate_domainValidationRecords :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
loadBalancerTlsCertificate_domainValidationRecords :: (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
 -> f (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_domainValidationRecords = (LoadBalancerTlsCertificate
 -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
-> (LoadBalancerTlsCertificate
    -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
    -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
domainValidationRecords :: Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
$sel:domainValidationRecords:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate
-> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
domainValidationRecords} -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
domainValidationRecords) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
a -> LoadBalancerTlsCertificate
s {$sel:domainValidationRecords:LoadBalancerTlsCertificate' :: Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
domainValidationRecords = Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
a} :: LoadBalancerTlsCertificate) ((Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
  -> f (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
     -> f (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
    -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
    -> f (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
-> (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
    -> f (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [LoadBalancerTlsCertificateDomainValidationRecord]
  [LoadBalancerTlsCertificateDomainValidationRecord]
  [LoadBalancerTlsCertificateDomainValidationRecord]
  [LoadBalancerTlsCertificateDomainValidationRecord]
-> Iso
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
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 AnIso
  [LoadBalancerTlsCertificateDomainValidationRecord]
  [LoadBalancerTlsCertificateDomainValidationRecord]
  [LoadBalancerTlsCertificateDomainValidationRecord]
  [LoadBalancerTlsCertificateDomainValidationRecord]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The time when the SSL\/TLS certificate was issued.
loadBalancerTlsCertificate_issuedAt :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.UTCTime)
loadBalancerTlsCertificate_issuedAt :: (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_issuedAt = (LoadBalancerTlsCertificate -> Maybe POSIX)
-> (LoadBalancerTlsCertificate
    -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe POSIX
issuedAt :: Maybe POSIX
$sel:issuedAt:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe POSIX
issuedAt} -> Maybe POSIX
issuedAt) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe POSIX
a -> LoadBalancerTlsCertificate
s {$sel:issuedAt:LoadBalancerTlsCertificate' :: Maybe POSIX
issuedAt = Maybe POSIX
a} :: LoadBalancerTlsCertificate) ((Maybe POSIX -> f (Maybe POSIX))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The algorithm used to generate the key pair (the public and private
-- key).
loadBalancerTlsCertificate_keyAlgorithm :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_keyAlgorithm :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_keyAlgorithm = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
keyAlgorithm :: Maybe Text
$sel:keyAlgorithm:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
keyAlgorithm} -> Maybe Text
keyAlgorithm) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:keyAlgorithm:LoadBalancerTlsCertificate' :: Maybe Text
keyAlgorithm = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | The algorithm that was used to sign the certificate.
loadBalancerTlsCertificate_signatureAlgorithm :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_signatureAlgorithm :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_signatureAlgorithm = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
signatureAlgorithm :: Maybe Text
$sel:signatureAlgorithm:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
signatureAlgorithm} -> Maybe Text
signatureAlgorithm) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:signatureAlgorithm:LoadBalancerTlsCertificate' :: Maybe Text
signatureAlgorithm = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | The issuer of the certificate.
loadBalancerTlsCertificate_issuer :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.Text)
loadBalancerTlsCertificate_issuer :: (Maybe Text -> f (Maybe Text))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_issuer = (LoadBalancerTlsCertificate -> Maybe Text)
-> (LoadBalancerTlsCertificate
    -> Maybe Text -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe Text
issuer :: Maybe Text
$sel:issuer:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe Text
issuer} -> Maybe Text
issuer) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe Text
a -> LoadBalancerTlsCertificate
s {$sel:issuer:LoadBalancerTlsCertificate' :: Maybe Text
issuer = Maybe Text
a} :: LoadBalancerTlsCertificate)

-- | 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>.
loadBalancerTlsCertificate_tags :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe [Tag])
loadBalancerTlsCertificate_tags :: (Maybe [Tag] -> f (Maybe [Tag]))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_tags = (LoadBalancerTlsCertificate -> Maybe [Tag])
-> (LoadBalancerTlsCertificate
    -> Maybe [Tag] -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe [Tag])
     (Maybe [Tag])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe [Tag]
a -> LoadBalancerTlsCertificate
s {$sel:tags:LoadBalancerTlsCertificate' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: LoadBalancerTlsCertificate) ((Maybe [Tag] -> f (Maybe [Tag]))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
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 AnIso [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The timestamp when the SSL\/TLS certificate expires.
loadBalancerTlsCertificate_notAfter :: Lens.Lens' LoadBalancerTlsCertificate (Prelude.Maybe Prelude.UTCTime)
loadBalancerTlsCertificate_notAfter :: (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate
loadBalancerTlsCertificate_notAfter = (LoadBalancerTlsCertificate -> Maybe POSIX)
-> (LoadBalancerTlsCertificate
    -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Lens
     LoadBalancerTlsCertificate
     LoadBalancerTlsCertificate
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LoadBalancerTlsCertificate' {Maybe POSIX
notAfter :: Maybe POSIX
$sel:notAfter:LoadBalancerTlsCertificate' :: LoadBalancerTlsCertificate -> Maybe POSIX
notAfter} -> Maybe POSIX
notAfter) (\s :: LoadBalancerTlsCertificate
s@LoadBalancerTlsCertificate' {} Maybe POSIX
a -> LoadBalancerTlsCertificate
s {$sel:notAfter:LoadBalancerTlsCertificate' :: Maybe POSIX
notAfter = Maybe POSIX
a} :: LoadBalancerTlsCertificate) ((Maybe POSIX -> f (Maybe POSIX))
 -> LoadBalancerTlsCertificate -> f LoadBalancerTlsCertificate)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> LoadBalancerTlsCertificate
-> f LoadBalancerTlsCertificate
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

instance Core.FromJSON LoadBalancerTlsCertificate where
  parseJSON :: Value -> Parser LoadBalancerTlsCertificate
parseJSON =
    String
-> (Object -> Parser LoadBalancerTlsCertificate)
-> Value
-> Parser LoadBalancerTlsCertificate
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"LoadBalancerTlsCertificate"
      ( \Object
x ->
          Maybe LoadBalancerTlsCertificateFailureReason
-> Maybe Text
-> Maybe LoadBalancerTlsCertificateStatus
-> Maybe [Text]
-> Maybe ResourceType
-> Maybe Text
-> Maybe POSIX
-> Maybe ResourceLocation
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe POSIX
-> Maybe POSIX
-> Maybe LoadBalancerTlsCertificateRevocationReason
-> Maybe Text
-> Maybe Text
-> Maybe LoadBalancerTlsCertificateRenewalSummary
-> Maybe Text
-> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> Maybe POSIX
-> LoadBalancerTlsCertificate
LoadBalancerTlsCertificate'
            (Maybe LoadBalancerTlsCertificateFailureReason
 -> Maybe Text
 -> Maybe LoadBalancerTlsCertificateStatus
 -> Maybe [Text]
 -> Maybe ResourceType
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe ResourceLocation
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe LoadBalancerTlsCertificateRevocationReason
 -> Maybe Text
 -> Maybe Text
 -> Maybe LoadBalancerTlsCertificateRenewalSummary
 -> Maybe Text
 -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Tag]
 -> Maybe POSIX
 -> LoadBalancerTlsCertificate)
-> Parser (Maybe LoadBalancerTlsCertificateFailureReason)
-> Parser
     (Maybe Text
      -> Maybe LoadBalancerTlsCertificateStatus
      -> Maybe [Text]
      -> Maybe ResourceType
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object
-> Text -> Parser (Maybe LoadBalancerTlsCertificateFailureReason)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"failureReason")
            Parser
  (Maybe Text
   -> Maybe LoadBalancerTlsCertificateStatus
   -> Maybe [Text]
   -> Maybe ResourceType
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe LoadBalancerTlsCertificateStatus
      -> Maybe [Text]
      -> Maybe ResourceType
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"subject")
            Parser
  (Maybe LoadBalancerTlsCertificateStatus
   -> Maybe [Text]
   -> Maybe ResourceType
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe LoadBalancerTlsCertificateStatus)
-> Parser
     (Maybe [Text]
      -> Maybe ResourceType
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe LoadBalancerTlsCertificateStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"status")
            Parser
  (Maybe [Text]
   -> Maybe ResourceType
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe [Text])
-> Parser
     (Maybe ResourceType
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"subjectAlternativeNames"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe ResourceType
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe ResourceType)
-> Parser
     (Maybe Text
      -> Maybe POSIX
      -> Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ResourceType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"resourceType")
            Parser
  (Maybe Text
   -> Maybe POSIX
   -> Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe POSIX
      -> Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"arn")
            Parser
  (Maybe POSIX
   -> Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe ResourceLocation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"createdAt")
            Parser
  (Maybe ResourceLocation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe ResourceLocation)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ResourceLocation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"location")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"loadBalancerName")
            Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"serial")
            Parser
  (Maybe Bool
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Bool)
-> Parser
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"isAttached")
            Parser
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe POSIX
      -> Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"revokedAt")
            Parser
  (Maybe POSIX
   -> Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe LoadBalancerTlsCertificateRevocationReason
      -> Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"notBefore")
            Parser
  (Maybe LoadBalancerTlsCertificateRevocationReason
   -> Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe LoadBalancerTlsCertificateRevocationReason)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser (Maybe LoadBalancerTlsCertificateRevocationReason)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"revocationReason")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"domainName")
            Parser
  (Maybe Text
   -> Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe LoadBalancerTlsCertificateRenewalSummary
      -> Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"name")
            Parser
  (Maybe LoadBalancerTlsCertificateRenewalSummary
   -> Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe LoadBalancerTlsCertificateRenewalSummary)
-> Parser
     (Maybe Text
      -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe LoadBalancerTlsCertificateRenewalSummary)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"renewalSummary")
            Parser
  (Maybe Text
   -> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"supportCode")
            Parser
  (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
-> Parser
     (Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser
     (Maybe (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"domainValidationRecords"
                            Parser
  (Maybe (Maybe [LoadBalancerTlsCertificateDomainValidationRecord]))
-> Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
-> Parser
     (Maybe [LoadBalancerTlsCertificateDomainValidationRecord])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [LoadBalancerTlsCertificateDomainValidationRecord]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"issuedAt")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Tag]
      -> Maybe POSIX
      -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"keyAlgorithm")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Tag]
   -> Maybe POSIX
   -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Tag] -> Maybe POSIX -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"signatureAlgorithm")
            Parser
  (Maybe Text
   -> Maybe [Tag] -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Tag] -> Maybe POSIX -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"issuer")
            Parser (Maybe [Tag] -> Maybe POSIX -> LoadBalancerTlsCertificate)
-> Parser (Maybe [Tag])
-> Parser (Maybe POSIX -> LoadBalancerTlsCertificate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [Tag]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"tags" Parser (Maybe (Maybe [Tag])) -> Maybe [Tag] -> Parser (Maybe [Tag])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Tag]
forall a. Monoid a => a
Prelude.mempty)
            Parser (Maybe POSIX -> LoadBalancerTlsCertificate)
-> Parser (Maybe POSIX) -> Parser LoadBalancerTlsCertificate
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"notAfter")
      )

instance Prelude.Hashable LoadBalancerTlsCertificate

instance Prelude.NFData LoadBalancerTlsCertificate