{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.DirectoryService.DescribeCertificate -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Displays information about the certificate registered for secure LDAP or -- client certificate authentication. module Amazonka.DirectoryService.DescribeCertificate ( -- * Creating a Request DescribeCertificate (..), newDescribeCertificate, -- * Request Lenses describeCertificate_directoryId, describeCertificate_certificateId, -- * Destructuring the Response DescribeCertificateResponse (..), newDescribeCertificateResponse, -- * Response Lenses describeCertificateResponse_certificate, describeCertificateResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.DirectoryService.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDescribeCertificate' smart constructor. data DescribeCertificate = DescribeCertificate' { -- | The identifier of the directory. directoryId :: Prelude.Text, -- | The identifier of the certificate. certificateId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeCertificate' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'directoryId', 'describeCertificate_directoryId' - The identifier of the directory. -- -- 'certificateId', 'describeCertificate_certificateId' - The identifier of the certificate. newDescribeCertificate :: -- | 'directoryId' Prelude.Text -> -- | 'certificateId' Prelude.Text -> DescribeCertificate newDescribeCertificate pDirectoryId_ pCertificateId_ = DescribeCertificate' { directoryId = pDirectoryId_, certificateId = pCertificateId_ } -- | The identifier of the directory. describeCertificate_directoryId :: Lens.Lens' DescribeCertificate Prelude.Text describeCertificate_directoryId = Lens.lens (\DescribeCertificate' {directoryId} -> directoryId) (\s@DescribeCertificate' {} a -> s {directoryId = a} :: DescribeCertificate) -- | The identifier of the certificate. describeCertificate_certificateId :: Lens.Lens' DescribeCertificate Prelude.Text describeCertificate_certificateId = Lens.lens (\DescribeCertificate' {certificateId} -> certificateId) (\s@DescribeCertificate' {} a -> s {certificateId = a} :: DescribeCertificate) instance Core.AWSRequest DescribeCertificate where type AWSResponse DescribeCertificate = DescribeCertificateResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeCertificateResponse' Prelude.<$> (x Data..?> "Certificate") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeCertificate where hashWithSalt _salt DescribeCertificate' {..} = _salt `Prelude.hashWithSalt` directoryId `Prelude.hashWithSalt` certificateId instance Prelude.NFData DescribeCertificate where rnf DescribeCertificate' {..} = Prelude.rnf directoryId `Prelude.seq` Prelude.rnf certificateId instance Data.ToHeaders DescribeCertificate where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "DirectoryService_20150416.DescribeCertificate" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DescribeCertificate where toJSON DescribeCertificate' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("DirectoryId" Data..= directoryId), Prelude.Just ("CertificateId" Data..= certificateId) ] ) instance Data.ToPath DescribeCertificate where toPath = Prelude.const "/" instance Data.ToQuery DescribeCertificate where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeCertificateResponse' smart constructor. data DescribeCertificateResponse = DescribeCertificateResponse' { -- | Information about the certificate, including registered date time, -- certificate state, the reason for the state, expiration date time, and -- certificate common name. certificate :: Prelude.Maybe Certificate, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeCertificateResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'certificate', 'describeCertificateResponse_certificate' - Information about the certificate, including registered date time, -- certificate state, the reason for the state, expiration date time, and -- certificate common name. -- -- 'httpStatus', 'describeCertificateResponse_httpStatus' - The response's http status code. newDescribeCertificateResponse :: -- | 'httpStatus' Prelude.Int -> DescribeCertificateResponse newDescribeCertificateResponse pHttpStatus_ = DescribeCertificateResponse' { certificate = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Information about the certificate, including registered date time, -- certificate state, the reason for the state, expiration date time, and -- certificate common name. describeCertificateResponse_certificate :: Lens.Lens' DescribeCertificateResponse (Prelude.Maybe Certificate) describeCertificateResponse_certificate = Lens.lens (\DescribeCertificateResponse' {certificate} -> certificate) (\s@DescribeCertificateResponse' {} a -> s {certificate = a} :: DescribeCertificateResponse) -- | The response's http status code. describeCertificateResponse_httpStatus :: Lens.Lens' DescribeCertificateResponse Prelude.Int describeCertificateResponse_httpStatus = Lens.lens (\DescribeCertificateResponse' {httpStatus} -> httpStatus) (\s@DescribeCertificateResponse' {} a -> s {httpStatus = a} :: DescribeCertificateResponse) instance Prelude.NFData DescribeCertificateResponse where rnf DescribeCertificateResponse' {..} = Prelude.rnf certificate `Prelude.seq` Prelude.rnf httpStatus