{-# 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.CertificateManager.Types.CertificateSummary
-- 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.CertificateManager.Types.CertificateSummary where

import Amazonka.CertificateManager.Types.CertificateStatus
import Amazonka.CertificateManager.Types.CertificateType
import Amazonka.CertificateManager.Types.ExtendedKeyUsageName
import Amazonka.CertificateManager.Types.KeyAlgorithm
import Amazonka.CertificateManager.Types.KeyUsageName
import Amazonka.CertificateManager.Types.RenewalEligibility
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | This structure is returned in the response object of ListCertificates
-- action.
--
-- /See:/ 'newCertificateSummary' smart constructor.
data CertificateSummary = CertificateSummary'
  { -- | Amazon Resource Name (ARN) of the certificate. This is of the form:
    --
    -- @arn:aws:acm:region:123456789012:certificate\/12345678-1234-1234-1234-123456789012@
    --
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>.
    CertificateSummary -> Maybe Text
certificateArn :: Prelude.Maybe Prelude.Text,
    -- | The time at which the certificate was requested.
    CertificateSummary -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | Fully qualified domain name (FQDN), such as www.example.com or
    -- example.com, for the certificate.
    CertificateSummary -> Maybe Text
domainName :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the certificate has been exported. This value exists
    -- only when the certificate type is @PRIVATE@.
    CertificateSummary -> Maybe Bool
exported :: Prelude.Maybe Prelude.Bool,
    -- | Contains a list of Extended Key Usage X.509 v3 extension objects. Each
    -- object specifies a purpose for which the certificate public key can be
    -- used and consists of a name and an object identifier (OID).
    CertificateSummary -> Maybe [ExtendedKeyUsageName]
extendedKeyUsages :: Prelude.Maybe [ExtendedKeyUsageName],
    -- | When called by
    -- <https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html ListCertificates>,
    -- indicates whether the full list of subject alternative names has been
    -- included in the response. If false, the response includes all of the
    -- subject alternative names included in the certificate. If true, the
    -- response only includes the first 100 subject alternative names included
    -- in the certificate. To display the full list of subject alternative
    -- names, use
    -- <https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html DescribeCertificate>.
    CertificateSummary -> Maybe Bool
hasAdditionalSubjectAlternativeNames :: Prelude.Maybe Prelude.Bool,
    -- | The date and time when the certificate was imported. This value exists
    -- only when the certificate type is @IMPORTED@.
    CertificateSummary -> Maybe POSIX
importedAt :: Prelude.Maybe Data.POSIX,
    -- | Indicates whether the certificate is currently in use by any Amazon Web
    -- Services resources.
    CertificateSummary -> Maybe Bool
inUse :: Prelude.Maybe Prelude.Bool,
    -- | The time at which the certificate was issued. This value exists only
    -- when the certificate type is @AMAZON_ISSUED@.
    CertificateSummary -> Maybe POSIX
issuedAt :: Prelude.Maybe Data.POSIX,
    -- | The algorithm that was used to generate the public-private key pair.
    CertificateSummary -> Maybe KeyAlgorithm
keyAlgorithm :: Prelude.Maybe KeyAlgorithm,
    -- | A list of Key Usage X.509 v3 extension objects. Each object is a string
    -- value that identifies the purpose of the public key contained in the
    -- certificate. Possible extension values include DIGITAL_SIGNATURE,
    -- KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.
    CertificateSummary -> Maybe [KeyUsageName]
keyUsages :: Prelude.Maybe [KeyUsageName],
    -- | The time after which the certificate is not valid.
    CertificateSummary -> Maybe POSIX
notAfter :: Prelude.Maybe Data.POSIX,
    -- | The time before which the certificate is not valid.
    CertificateSummary -> Maybe POSIX
notBefore :: Prelude.Maybe Data.POSIX,
    -- | Specifies whether the certificate is eligible for renewal. At this time,
    -- only exported private certificates can be renewed with the
    -- RenewCertificate command.
    CertificateSummary -> Maybe RenewalEligibility
renewalEligibility :: Prelude.Maybe RenewalEligibility,
    -- | The time at which the certificate was revoked. This value exists only
    -- when the certificate status is @REVOKED@.
    CertificateSummary -> Maybe POSIX
revokedAt :: Prelude.Maybe Data.POSIX,
    -- | The status of the certificate.
    --
    -- A certificate enters status PENDING_VALIDATION upon being requested,
    -- unless it fails for any of the reasons given in the troubleshooting
    -- topic
    -- <https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html Certificate request fails>.
    -- ACM makes repeated attempts to validate a certificate for 72 hours and
    -- then times out. If a certificate shows status FAILED or
    -- VALIDATION_TIMED_OUT, delete the request, correct the issue with
    -- <https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html DNS validation>
    -- or
    -- <https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html Email validation>,
    -- and try again. If validation succeeds, the certificate enters status
    -- ISSUED.
    CertificateSummary -> Maybe CertificateStatus
status :: Prelude.Maybe CertificateStatus,
    -- | One or more domain names (subject alternative names) included in the
    -- certificate. This list contains the domain names that are bound to the
    -- public key that is contained in the certificate. The subject alternative
    -- names include the canonical domain name (CN) of the certificate and
    -- additional domain names that can be used to connect to the website.
    --
    -- When called by
    -- <https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html ListCertificates>,
    -- this parameter will only return the first 100 subject alternative names
    -- included in the certificate. To display the full list of subject
    -- alternative names, use
    -- <https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html DescribeCertificate>.
    CertificateSummary -> Maybe (NonEmpty Text)
subjectAlternativeNameSummaries :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The source of the certificate. For certificates provided by ACM, this
    -- value is @AMAZON_ISSUED@. For certificates that you imported with
    -- ImportCertificate, this value is @IMPORTED@. ACM does not provide
    -- <https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html managed renewal>
    -- for imported certificates. For more information about the differences
    -- between certificates that you import and those that ACM provides, see
    -- <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html Importing Certificates>
    -- in the /Certificate Manager User Guide/.
    CertificateSummary -> Maybe CertificateType
type' :: Prelude.Maybe CertificateType
  }
  deriving (CertificateSummary -> CertificateSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CertificateSummary -> CertificateSummary -> Bool
$c/= :: CertificateSummary -> CertificateSummary -> Bool
== :: CertificateSummary -> CertificateSummary -> Bool
$c== :: CertificateSummary -> CertificateSummary -> Bool
Prelude.Eq, ReadPrec [CertificateSummary]
ReadPrec CertificateSummary
Int -> ReadS CertificateSummary
ReadS [CertificateSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CertificateSummary]
$creadListPrec :: ReadPrec [CertificateSummary]
readPrec :: ReadPrec CertificateSummary
$creadPrec :: ReadPrec CertificateSummary
readList :: ReadS [CertificateSummary]
$creadList :: ReadS [CertificateSummary]
readsPrec :: Int -> ReadS CertificateSummary
$creadsPrec :: Int -> ReadS CertificateSummary
Prelude.Read, Int -> CertificateSummary -> ShowS
[CertificateSummary] -> ShowS
CertificateSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CertificateSummary] -> ShowS
$cshowList :: [CertificateSummary] -> ShowS
show :: CertificateSummary -> String
$cshow :: CertificateSummary -> String
showsPrec :: Int -> CertificateSummary -> ShowS
$cshowsPrec :: Int -> CertificateSummary -> ShowS
Prelude.Show, forall x. Rep CertificateSummary x -> CertificateSummary
forall x. CertificateSummary -> Rep CertificateSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CertificateSummary x -> CertificateSummary
$cfrom :: forall x. CertificateSummary -> Rep CertificateSummary x
Prelude.Generic)

-- |
-- Create a value of 'CertificateSummary' 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:
--
-- 'certificateArn', 'certificateSummary_certificateArn' - Amazon Resource Name (ARN) of the certificate. This is of the form:
--
-- @arn:aws:acm:region:123456789012:certificate\/12345678-1234-1234-1234-123456789012@
--
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>.
--
-- 'createdAt', 'certificateSummary_createdAt' - The time at which the certificate was requested.
--
-- 'domainName', 'certificateSummary_domainName' - Fully qualified domain name (FQDN), such as www.example.com or
-- example.com, for the certificate.
--
-- 'exported', 'certificateSummary_exported' - Indicates whether the certificate has been exported. This value exists
-- only when the certificate type is @PRIVATE@.
--
-- 'extendedKeyUsages', 'certificateSummary_extendedKeyUsages' - Contains a list of Extended Key Usage X.509 v3 extension objects. Each
-- object specifies a purpose for which the certificate public key can be
-- used and consists of a name and an object identifier (OID).
--
-- 'hasAdditionalSubjectAlternativeNames', 'certificateSummary_hasAdditionalSubjectAlternativeNames' - When called by
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html ListCertificates>,
-- indicates whether the full list of subject alternative names has been
-- included in the response. If false, the response includes all of the
-- subject alternative names included in the certificate. If true, the
-- response only includes the first 100 subject alternative names included
-- in the certificate. To display the full list of subject alternative
-- names, use
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html DescribeCertificate>.
--
-- 'importedAt', 'certificateSummary_importedAt' - The date and time when the certificate was imported. This value exists
-- only when the certificate type is @IMPORTED@.
--
-- 'inUse', 'certificateSummary_inUse' - Indicates whether the certificate is currently in use by any Amazon Web
-- Services resources.
--
-- 'issuedAt', 'certificateSummary_issuedAt' - The time at which the certificate was issued. This value exists only
-- when the certificate type is @AMAZON_ISSUED@.
--
-- 'keyAlgorithm', 'certificateSummary_keyAlgorithm' - The algorithm that was used to generate the public-private key pair.
--
-- 'keyUsages', 'certificateSummary_keyUsages' - A list of Key Usage X.509 v3 extension objects. Each object is a string
-- value that identifies the purpose of the public key contained in the
-- certificate. Possible extension values include DIGITAL_SIGNATURE,
-- KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.
--
-- 'notAfter', 'certificateSummary_notAfter' - The time after which the certificate is not valid.
--
-- 'notBefore', 'certificateSummary_notBefore' - The time before which the certificate is not valid.
--
-- 'renewalEligibility', 'certificateSummary_renewalEligibility' - Specifies whether the certificate is eligible for renewal. At this time,
-- only exported private certificates can be renewed with the
-- RenewCertificate command.
--
-- 'revokedAt', 'certificateSummary_revokedAt' - The time at which the certificate was revoked. This value exists only
-- when the certificate status is @REVOKED@.
--
-- 'status', 'certificateSummary_status' - The status of the certificate.
--
-- A certificate enters status PENDING_VALIDATION upon being requested,
-- unless it fails for any of the reasons given in the troubleshooting
-- topic
-- <https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html Certificate request fails>.
-- ACM makes repeated attempts to validate a certificate for 72 hours and
-- then times out. If a certificate shows status FAILED or
-- VALIDATION_TIMED_OUT, delete the request, correct the issue with
-- <https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html DNS validation>
-- or
-- <https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html Email validation>,
-- and try again. If validation succeeds, the certificate enters status
-- ISSUED.
--
-- 'subjectAlternativeNameSummaries', 'certificateSummary_subjectAlternativeNameSummaries' - One or more domain names (subject alternative names) included in the
-- certificate. This list contains the domain names that are bound to the
-- public key that is contained in the certificate. The subject alternative
-- names include the canonical domain name (CN) of the certificate and
-- additional domain names that can be used to connect to the website.
--
-- When called by
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html ListCertificates>,
-- this parameter will only return the first 100 subject alternative names
-- included in the certificate. To display the full list of subject
-- alternative names, use
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html DescribeCertificate>.
--
-- 'type'', 'certificateSummary_type' - The source of the certificate. For certificates provided by ACM, this
-- value is @AMAZON_ISSUED@. For certificates that you imported with
-- ImportCertificate, this value is @IMPORTED@. ACM does not provide
-- <https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html managed renewal>
-- for imported certificates. For more information about the differences
-- between certificates that you import and those that ACM provides, see
-- <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html Importing Certificates>
-- in the /Certificate Manager User Guide/.
newCertificateSummary ::
  CertificateSummary
newCertificateSummary :: CertificateSummary
newCertificateSummary =
  CertificateSummary'
    { $sel:certificateArn:CertificateSummary' :: Maybe Text
certificateArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:CertificateSummary' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:domainName:CertificateSummary' :: Maybe Text
domainName = forall a. Maybe a
Prelude.Nothing,
      $sel:exported:CertificateSummary' :: Maybe Bool
exported = forall a. Maybe a
Prelude.Nothing,
      $sel:extendedKeyUsages:CertificateSummary' :: Maybe [ExtendedKeyUsageName]
extendedKeyUsages = forall a. Maybe a
Prelude.Nothing,
      $sel:hasAdditionalSubjectAlternativeNames:CertificateSummary' :: Maybe Bool
hasAdditionalSubjectAlternativeNames =
        forall a. Maybe a
Prelude.Nothing,
      $sel:importedAt:CertificateSummary' :: Maybe POSIX
importedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:inUse:CertificateSummary' :: Maybe Bool
inUse = forall a. Maybe a
Prelude.Nothing,
      $sel:issuedAt:CertificateSummary' :: Maybe POSIX
issuedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:keyAlgorithm:CertificateSummary' :: Maybe KeyAlgorithm
keyAlgorithm = forall a. Maybe a
Prelude.Nothing,
      $sel:keyUsages:CertificateSummary' :: Maybe [KeyUsageName]
keyUsages = forall a. Maybe a
Prelude.Nothing,
      $sel:notAfter:CertificateSummary' :: Maybe POSIX
notAfter = forall a. Maybe a
Prelude.Nothing,
      $sel:notBefore:CertificateSummary' :: Maybe POSIX
notBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:renewalEligibility:CertificateSummary' :: Maybe RenewalEligibility
renewalEligibility = forall a. Maybe a
Prelude.Nothing,
      $sel:revokedAt:CertificateSummary' :: Maybe POSIX
revokedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:status:CertificateSummary' :: Maybe CertificateStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:subjectAlternativeNameSummaries:CertificateSummary' :: Maybe (NonEmpty Text)
subjectAlternativeNameSummaries = forall a. Maybe a
Prelude.Nothing,
      $sel:type':CertificateSummary' :: Maybe CertificateType
type' = forall a. Maybe a
Prelude.Nothing
    }

-- | Amazon Resource Name (ARN) of the certificate. This is of the form:
--
-- @arn:aws:acm:region:123456789012:certificate\/12345678-1234-1234-1234-123456789012@
--
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>.
certificateSummary_certificateArn :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.Text)
certificateSummary_certificateArn :: Lens' CertificateSummary (Maybe Text)
certificateSummary_certificateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe Text
certificateArn :: Maybe Text
$sel:certificateArn:CertificateSummary' :: CertificateSummary -> Maybe Text
certificateArn} -> Maybe Text
certificateArn) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe Text
a -> CertificateSummary
s {$sel:certificateArn:CertificateSummary' :: Maybe Text
certificateArn = Maybe Text
a} :: CertificateSummary)

-- | The time at which the certificate was requested.
certificateSummary_createdAt :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.UTCTime)
certificateSummary_createdAt :: Lens' CertificateSummary (Maybe UTCTime)
certificateSummary_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe POSIX
a -> CertificateSummary
s {$sel:createdAt:CertificateSummary' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: CertificateSummary) 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

-- | Fully qualified domain name (FQDN), such as www.example.com or
-- example.com, for the certificate.
certificateSummary_domainName :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.Text)
certificateSummary_domainName :: Lens' CertificateSummary (Maybe Text)
certificateSummary_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe Text
domainName :: Maybe Text
$sel:domainName:CertificateSummary' :: CertificateSummary -> Maybe Text
domainName} -> Maybe Text
domainName) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe Text
a -> CertificateSummary
s {$sel:domainName:CertificateSummary' :: Maybe Text
domainName = Maybe Text
a} :: CertificateSummary)

-- | Indicates whether the certificate has been exported. This value exists
-- only when the certificate type is @PRIVATE@.
certificateSummary_exported :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.Bool)
certificateSummary_exported :: Lens' CertificateSummary (Maybe Bool)
certificateSummary_exported = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe Bool
exported :: Maybe Bool
$sel:exported:CertificateSummary' :: CertificateSummary -> Maybe Bool
exported} -> Maybe Bool
exported) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe Bool
a -> CertificateSummary
s {$sel:exported:CertificateSummary' :: Maybe Bool
exported = Maybe Bool
a} :: CertificateSummary)

-- | Contains a list of Extended Key Usage X.509 v3 extension objects. Each
-- object specifies a purpose for which the certificate public key can be
-- used and consists of a name and an object identifier (OID).
certificateSummary_extendedKeyUsages :: Lens.Lens' CertificateSummary (Prelude.Maybe [ExtendedKeyUsageName])
certificateSummary_extendedKeyUsages :: Lens' CertificateSummary (Maybe [ExtendedKeyUsageName])
certificateSummary_extendedKeyUsages = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe [ExtendedKeyUsageName]
extendedKeyUsages :: Maybe [ExtendedKeyUsageName]
$sel:extendedKeyUsages:CertificateSummary' :: CertificateSummary -> Maybe [ExtendedKeyUsageName]
extendedKeyUsages} -> Maybe [ExtendedKeyUsageName]
extendedKeyUsages) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe [ExtendedKeyUsageName]
a -> CertificateSummary
s {$sel:extendedKeyUsages:CertificateSummary' :: Maybe [ExtendedKeyUsageName]
extendedKeyUsages = Maybe [ExtendedKeyUsageName]
a} :: CertificateSummary) 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

-- | When called by
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html ListCertificates>,
-- indicates whether the full list of subject alternative names has been
-- included in the response. If false, the response includes all of the
-- subject alternative names included in the certificate. If true, the
-- response only includes the first 100 subject alternative names included
-- in the certificate. To display the full list of subject alternative
-- names, use
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html DescribeCertificate>.
certificateSummary_hasAdditionalSubjectAlternativeNames :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.Bool)
certificateSummary_hasAdditionalSubjectAlternativeNames :: Lens' CertificateSummary (Maybe Bool)
certificateSummary_hasAdditionalSubjectAlternativeNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe Bool
hasAdditionalSubjectAlternativeNames :: Maybe Bool
$sel:hasAdditionalSubjectAlternativeNames:CertificateSummary' :: CertificateSummary -> Maybe Bool
hasAdditionalSubjectAlternativeNames} -> Maybe Bool
hasAdditionalSubjectAlternativeNames) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe Bool
a -> CertificateSummary
s {$sel:hasAdditionalSubjectAlternativeNames:CertificateSummary' :: Maybe Bool
hasAdditionalSubjectAlternativeNames = Maybe Bool
a} :: CertificateSummary)

-- | The date and time when the certificate was imported. This value exists
-- only when the certificate type is @IMPORTED@.
certificateSummary_importedAt :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.UTCTime)
certificateSummary_importedAt :: Lens' CertificateSummary (Maybe UTCTime)
certificateSummary_importedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe POSIX
importedAt :: Maybe POSIX
$sel:importedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
importedAt} -> Maybe POSIX
importedAt) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe POSIX
a -> CertificateSummary
s {$sel:importedAt:CertificateSummary' :: Maybe POSIX
importedAt = Maybe POSIX
a} :: CertificateSummary) 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

-- | Indicates whether the certificate is currently in use by any Amazon Web
-- Services resources.
certificateSummary_inUse :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.Bool)
certificateSummary_inUse :: Lens' CertificateSummary (Maybe Bool)
certificateSummary_inUse = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe Bool
inUse :: Maybe Bool
$sel:inUse:CertificateSummary' :: CertificateSummary -> Maybe Bool
inUse} -> Maybe Bool
inUse) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe Bool
a -> CertificateSummary
s {$sel:inUse:CertificateSummary' :: Maybe Bool
inUse = Maybe Bool
a} :: CertificateSummary)

-- | The time at which the certificate was issued. This value exists only
-- when the certificate type is @AMAZON_ISSUED@.
certificateSummary_issuedAt :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.UTCTime)
certificateSummary_issuedAt :: Lens' CertificateSummary (Maybe UTCTime)
certificateSummary_issuedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe POSIX
issuedAt :: Maybe POSIX
$sel:issuedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
issuedAt} -> Maybe POSIX
issuedAt) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe POSIX
a -> CertificateSummary
s {$sel:issuedAt:CertificateSummary' :: Maybe POSIX
issuedAt = Maybe POSIX
a} :: CertificateSummary) 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

-- | The algorithm that was used to generate the public-private key pair.
certificateSummary_keyAlgorithm :: Lens.Lens' CertificateSummary (Prelude.Maybe KeyAlgorithm)
certificateSummary_keyAlgorithm :: Lens' CertificateSummary (Maybe KeyAlgorithm)
certificateSummary_keyAlgorithm = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe KeyAlgorithm
keyAlgorithm :: Maybe KeyAlgorithm
$sel:keyAlgorithm:CertificateSummary' :: CertificateSummary -> Maybe KeyAlgorithm
keyAlgorithm} -> Maybe KeyAlgorithm
keyAlgorithm) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe KeyAlgorithm
a -> CertificateSummary
s {$sel:keyAlgorithm:CertificateSummary' :: Maybe KeyAlgorithm
keyAlgorithm = Maybe KeyAlgorithm
a} :: CertificateSummary)

-- | A list of Key Usage X.509 v3 extension objects. Each object is a string
-- value that identifies the purpose of the public key contained in the
-- certificate. Possible extension values include DIGITAL_SIGNATURE,
-- KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.
certificateSummary_keyUsages :: Lens.Lens' CertificateSummary (Prelude.Maybe [KeyUsageName])
certificateSummary_keyUsages :: Lens' CertificateSummary (Maybe [KeyUsageName])
certificateSummary_keyUsages = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe [KeyUsageName]
keyUsages :: Maybe [KeyUsageName]
$sel:keyUsages:CertificateSummary' :: CertificateSummary -> Maybe [KeyUsageName]
keyUsages} -> Maybe [KeyUsageName]
keyUsages) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe [KeyUsageName]
a -> CertificateSummary
s {$sel:keyUsages:CertificateSummary' :: Maybe [KeyUsageName]
keyUsages = Maybe [KeyUsageName]
a} :: CertificateSummary) 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 time after which the certificate is not valid.
certificateSummary_notAfter :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.UTCTime)
certificateSummary_notAfter :: Lens' CertificateSummary (Maybe UTCTime)
certificateSummary_notAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe POSIX
notAfter :: Maybe POSIX
$sel:notAfter:CertificateSummary' :: CertificateSummary -> Maybe POSIX
notAfter} -> Maybe POSIX
notAfter) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe POSIX
a -> CertificateSummary
s {$sel:notAfter:CertificateSummary' :: Maybe POSIX
notAfter = Maybe POSIX
a} :: CertificateSummary) 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

-- | The time before which the certificate is not valid.
certificateSummary_notBefore :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.UTCTime)
certificateSummary_notBefore :: Lens' CertificateSummary (Maybe UTCTime)
certificateSummary_notBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe POSIX
notBefore :: Maybe POSIX
$sel:notBefore:CertificateSummary' :: CertificateSummary -> Maybe POSIX
notBefore} -> Maybe POSIX
notBefore) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe POSIX
a -> CertificateSummary
s {$sel:notBefore:CertificateSummary' :: Maybe POSIX
notBefore = Maybe POSIX
a} :: CertificateSummary) 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

-- | Specifies whether the certificate is eligible for renewal. At this time,
-- only exported private certificates can be renewed with the
-- RenewCertificate command.
certificateSummary_renewalEligibility :: Lens.Lens' CertificateSummary (Prelude.Maybe RenewalEligibility)
certificateSummary_renewalEligibility :: Lens' CertificateSummary (Maybe RenewalEligibility)
certificateSummary_renewalEligibility = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe RenewalEligibility
renewalEligibility :: Maybe RenewalEligibility
$sel:renewalEligibility:CertificateSummary' :: CertificateSummary -> Maybe RenewalEligibility
renewalEligibility} -> Maybe RenewalEligibility
renewalEligibility) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe RenewalEligibility
a -> CertificateSummary
s {$sel:renewalEligibility:CertificateSummary' :: Maybe RenewalEligibility
renewalEligibility = Maybe RenewalEligibility
a} :: CertificateSummary)

-- | The time at which the certificate was revoked. This value exists only
-- when the certificate status is @REVOKED@.
certificateSummary_revokedAt :: Lens.Lens' CertificateSummary (Prelude.Maybe Prelude.UTCTime)
certificateSummary_revokedAt :: Lens' CertificateSummary (Maybe UTCTime)
certificateSummary_revokedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe POSIX
revokedAt :: Maybe POSIX
$sel:revokedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
revokedAt} -> Maybe POSIX
revokedAt) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe POSIX
a -> CertificateSummary
s {$sel:revokedAt:CertificateSummary' :: Maybe POSIX
revokedAt = Maybe POSIX
a} :: CertificateSummary) 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

-- | The status of the certificate.
--
-- A certificate enters status PENDING_VALIDATION upon being requested,
-- unless it fails for any of the reasons given in the troubleshooting
-- topic
-- <https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html Certificate request fails>.
-- ACM makes repeated attempts to validate a certificate for 72 hours and
-- then times out. If a certificate shows status FAILED or
-- VALIDATION_TIMED_OUT, delete the request, correct the issue with
-- <https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html DNS validation>
-- or
-- <https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html Email validation>,
-- and try again. If validation succeeds, the certificate enters status
-- ISSUED.
certificateSummary_status :: Lens.Lens' CertificateSummary (Prelude.Maybe CertificateStatus)
certificateSummary_status :: Lens' CertificateSummary (Maybe CertificateStatus)
certificateSummary_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe CertificateStatus
status :: Maybe CertificateStatus
$sel:status:CertificateSummary' :: CertificateSummary -> Maybe CertificateStatus
status} -> Maybe CertificateStatus
status) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe CertificateStatus
a -> CertificateSummary
s {$sel:status:CertificateSummary' :: Maybe CertificateStatus
status = Maybe CertificateStatus
a} :: CertificateSummary)

-- | One or more domain names (subject alternative names) included in the
-- certificate. This list contains the domain names that are bound to the
-- public key that is contained in the certificate. The subject alternative
-- names include the canonical domain name (CN) of the certificate and
-- additional domain names that can be used to connect to the website.
--
-- When called by
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html ListCertificates>,
-- this parameter will only return the first 100 subject alternative names
-- included in the certificate. To display the full list of subject
-- alternative names, use
-- <https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html DescribeCertificate>.
certificateSummary_subjectAlternativeNameSummaries :: Lens.Lens' CertificateSummary (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
certificateSummary_subjectAlternativeNameSummaries :: Lens' CertificateSummary (Maybe (NonEmpty Text))
certificateSummary_subjectAlternativeNameSummaries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe (NonEmpty Text)
subjectAlternativeNameSummaries :: Maybe (NonEmpty Text)
$sel:subjectAlternativeNameSummaries:CertificateSummary' :: CertificateSummary -> Maybe (NonEmpty Text)
subjectAlternativeNameSummaries} -> Maybe (NonEmpty Text)
subjectAlternativeNameSummaries) (\s :: CertificateSummary
s@CertificateSummary' {} Maybe (NonEmpty Text)
a -> CertificateSummary
s {$sel:subjectAlternativeNameSummaries:CertificateSummary' :: Maybe (NonEmpty Text)
subjectAlternativeNameSummaries = Maybe (NonEmpty Text)
a} :: CertificateSummary) 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 source of the certificate. For certificates provided by ACM, this
-- value is @AMAZON_ISSUED@. For certificates that you imported with
-- ImportCertificate, this value is @IMPORTED@. ACM does not provide
-- <https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html managed renewal>
-- for imported certificates. For more information about the differences
-- between certificates that you import and those that ACM provides, see
-- <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html Importing Certificates>
-- in the /Certificate Manager User Guide/.
certificateSummary_type :: Lens.Lens' CertificateSummary (Prelude.Maybe CertificateType)
certificateSummary_type :: Lens' CertificateSummary (Maybe CertificateType)
certificateSummary_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CertificateSummary' {Maybe CertificateType
type' :: Maybe CertificateType
$sel:type':CertificateSummary' :: CertificateSummary -> Maybe CertificateType
type'} -> Maybe CertificateType
type') (\s :: CertificateSummary
s@CertificateSummary' {} Maybe CertificateType
a -> CertificateSummary
s {$sel:type':CertificateSummary' :: Maybe CertificateType
type' = Maybe CertificateType
a} :: CertificateSummary)

instance Data.FromJSON CertificateSummary where
  parseJSON :: Value -> Parser CertificateSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"CertificateSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Bool
-> Maybe [ExtendedKeyUsageName]
-> Maybe Bool
-> Maybe POSIX
-> Maybe Bool
-> Maybe POSIX
-> Maybe KeyAlgorithm
-> Maybe [KeyUsageName]
-> Maybe POSIX
-> Maybe POSIX
-> Maybe RenewalEligibility
-> Maybe POSIX
-> Maybe CertificateStatus
-> Maybe (NonEmpty Text)
-> Maybe CertificateType
-> CertificateSummary
CertificateSummary'
            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
"CertificateArn")
            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
"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
"Exported")
            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
"ExtendedKeyUsages"
                            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
"HasAdditionalSubjectAlternativeNames")
            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
"ImportedAt")
            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
"InUse")
            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
"IssuedAt")
            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
"KeyAlgorithm")
            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
"KeyUsages" 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
"NotAfter")
            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
"NotBefore")
            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
"RenewalEligibility")
            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
"RevokedAt")
            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
"SubjectAlternativeNameSummaries")
            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
"Type")
      )

instance Prelude.Hashable CertificateSummary where
  hashWithSalt :: Int -> CertificateSummary -> Int
hashWithSalt Int
_salt CertificateSummary' {Maybe Bool
Maybe [ExtendedKeyUsageName]
Maybe [KeyUsageName]
Maybe (NonEmpty Text)
Maybe Text
Maybe POSIX
Maybe CertificateStatus
Maybe CertificateType
Maybe KeyAlgorithm
Maybe RenewalEligibility
type' :: Maybe CertificateType
subjectAlternativeNameSummaries :: Maybe (NonEmpty Text)
status :: Maybe CertificateStatus
revokedAt :: Maybe POSIX
renewalEligibility :: Maybe RenewalEligibility
notBefore :: Maybe POSIX
notAfter :: Maybe POSIX
keyUsages :: Maybe [KeyUsageName]
keyAlgorithm :: Maybe KeyAlgorithm
issuedAt :: Maybe POSIX
inUse :: Maybe Bool
importedAt :: Maybe POSIX
hasAdditionalSubjectAlternativeNames :: Maybe Bool
extendedKeyUsages :: Maybe [ExtendedKeyUsageName]
exported :: Maybe Bool
domainName :: Maybe Text
createdAt :: Maybe POSIX
certificateArn :: Maybe Text
$sel:type':CertificateSummary' :: CertificateSummary -> Maybe CertificateType
$sel:subjectAlternativeNameSummaries:CertificateSummary' :: CertificateSummary -> Maybe (NonEmpty Text)
$sel:status:CertificateSummary' :: CertificateSummary -> Maybe CertificateStatus
$sel:revokedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:renewalEligibility:CertificateSummary' :: CertificateSummary -> Maybe RenewalEligibility
$sel:notBefore:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:notAfter:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:keyUsages:CertificateSummary' :: CertificateSummary -> Maybe [KeyUsageName]
$sel:keyAlgorithm:CertificateSummary' :: CertificateSummary -> Maybe KeyAlgorithm
$sel:issuedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:inUse:CertificateSummary' :: CertificateSummary -> Maybe Bool
$sel:importedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:hasAdditionalSubjectAlternativeNames:CertificateSummary' :: CertificateSummary -> Maybe Bool
$sel:extendedKeyUsages:CertificateSummary' :: CertificateSummary -> Maybe [ExtendedKeyUsageName]
$sel:exported:CertificateSummary' :: CertificateSummary -> Maybe Bool
$sel:domainName:CertificateSummary' :: CertificateSummary -> Maybe Text
$sel:createdAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:certificateArn:CertificateSummary' :: CertificateSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
certificateArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
exported
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ExtendedKeyUsageName]
extendedKeyUsages
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
hasAdditionalSubjectAlternativeNames
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
importedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
inUse
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
issuedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KeyAlgorithm
keyAlgorithm
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [KeyUsageName]
keyUsages
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
notAfter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
notBefore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RenewalEligibility
renewalEligibility
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
revokedAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CertificateStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
subjectAlternativeNameSummaries
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CertificateType
type'

instance Prelude.NFData CertificateSummary where
  rnf :: CertificateSummary -> ()
rnf CertificateSummary' {Maybe Bool
Maybe [ExtendedKeyUsageName]
Maybe [KeyUsageName]
Maybe (NonEmpty Text)
Maybe Text
Maybe POSIX
Maybe CertificateStatus
Maybe CertificateType
Maybe KeyAlgorithm
Maybe RenewalEligibility
type' :: Maybe CertificateType
subjectAlternativeNameSummaries :: Maybe (NonEmpty Text)
status :: Maybe CertificateStatus
revokedAt :: Maybe POSIX
renewalEligibility :: Maybe RenewalEligibility
notBefore :: Maybe POSIX
notAfter :: Maybe POSIX
keyUsages :: Maybe [KeyUsageName]
keyAlgorithm :: Maybe KeyAlgorithm
issuedAt :: Maybe POSIX
inUse :: Maybe Bool
importedAt :: Maybe POSIX
hasAdditionalSubjectAlternativeNames :: Maybe Bool
extendedKeyUsages :: Maybe [ExtendedKeyUsageName]
exported :: Maybe Bool
domainName :: Maybe Text
createdAt :: Maybe POSIX
certificateArn :: Maybe Text
$sel:type':CertificateSummary' :: CertificateSummary -> Maybe CertificateType
$sel:subjectAlternativeNameSummaries:CertificateSummary' :: CertificateSummary -> Maybe (NonEmpty Text)
$sel:status:CertificateSummary' :: CertificateSummary -> Maybe CertificateStatus
$sel:revokedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:renewalEligibility:CertificateSummary' :: CertificateSummary -> Maybe RenewalEligibility
$sel:notBefore:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:notAfter:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:keyUsages:CertificateSummary' :: CertificateSummary -> Maybe [KeyUsageName]
$sel:keyAlgorithm:CertificateSummary' :: CertificateSummary -> Maybe KeyAlgorithm
$sel:issuedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:inUse:CertificateSummary' :: CertificateSummary -> Maybe Bool
$sel:importedAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:hasAdditionalSubjectAlternativeNames:CertificateSummary' :: CertificateSummary -> Maybe Bool
$sel:extendedKeyUsages:CertificateSummary' :: CertificateSummary -> Maybe [ExtendedKeyUsageName]
$sel:exported:CertificateSummary' :: CertificateSummary -> Maybe Bool
$sel:domainName:CertificateSummary' :: CertificateSummary -> Maybe Text
$sel:createdAt:CertificateSummary' :: CertificateSummary -> Maybe POSIX
$sel:certificateArn:CertificateSummary' :: CertificateSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificateArn
      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 Text
domainName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
exported
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ExtendedKeyUsageName]
extendedKeyUsages
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
hasAdditionalSubjectAlternativeNames
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
importedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
inUse
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
issuedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KeyAlgorithm
keyAlgorithm
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [KeyUsageName]
keyUsages
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
notAfter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
notBefore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RenewalEligibility
renewalEligibility
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
revokedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CertificateStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe (NonEmpty Text)
subjectAlternativeNameSummaries
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CertificateType
type'