{-# 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.CustomerProfiles.DeleteDomain -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes a specific domain and all of its customer data, such as customer -- profile attributes and their related objects. module Amazonka.CustomerProfiles.DeleteDomain ( -- * Creating a Request DeleteDomain (..), newDeleteDomain, -- * Request Lenses deleteDomain_domainName, -- * Destructuring the Response DeleteDomainResponse (..), newDeleteDomainResponse, -- * Response Lenses deleteDomainResponse_httpStatus, deleteDomainResponse_message, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import Amazonka.CustomerProfiles.Types import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDeleteDomain' smart constructor. data DeleteDomain = DeleteDomain' { -- | The unique name of the domain. domainName :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteDomain' 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: -- -- 'domainName', 'deleteDomain_domainName' - The unique name of the domain. newDeleteDomain :: -- | 'domainName' Prelude.Text -> DeleteDomain newDeleteDomain pDomainName_ = DeleteDomain' {domainName = pDomainName_} -- | The unique name of the domain. deleteDomain_domainName :: Lens.Lens' DeleteDomain Prelude.Text deleteDomain_domainName = Lens.lens (\DeleteDomain' {domainName} -> domainName) (\s@DeleteDomain' {} a -> s {domainName = a} :: DeleteDomain) instance Core.AWSRequest DeleteDomain where type AWSResponse DeleteDomain = DeleteDomainResponse request overrides = Request.delete (overrides defaultService) response = Response.receiveJSON ( \s h x -> DeleteDomainResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..:> "Message") ) instance Prelude.Hashable DeleteDomain where hashWithSalt _salt DeleteDomain' {..} = _salt `Prelude.hashWithSalt` domainName instance Prelude.NFData DeleteDomain where rnf DeleteDomain' {..} = Prelude.rnf domainName instance Data.ToHeaders DeleteDomain where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToPath DeleteDomain where toPath DeleteDomain' {..} = Prelude.mconcat ["/domains/", Data.toBS domainName] instance Data.ToQuery DeleteDomain where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeleteDomainResponse' smart constructor. data DeleteDomainResponse = DeleteDomainResponse' { -- | The response's http status code. httpStatus :: Prelude.Int, -- | A message that indicates the delete request is done. message :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteDomainResponse' 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: -- -- 'httpStatus', 'deleteDomainResponse_httpStatus' - The response's http status code. -- -- 'message', 'deleteDomainResponse_message' - A message that indicates the delete request is done. newDeleteDomainResponse :: -- | 'httpStatus' Prelude.Int -> -- | 'message' Prelude.Text -> DeleteDomainResponse newDeleteDomainResponse pHttpStatus_ pMessage_ = DeleteDomainResponse' { httpStatus = pHttpStatus_, message = pMessage_ } -- | The response's http status code. deleteDomainResponse_httpStatus :: Lens.Lens' DeleteDomainResponse Prelude.Int deleteDomainResponse_httpStatus = Lens.lens (\DeleteDomainResponse' {httpStatus} -> httpStatus) (\s@DeleteDomainResponse' {} a -> s {httpStatus = a} :: DeleteDomainResponse) -- | A message that indicates the delete request is done. deleteDomainResponse_message :: Lens.Lens' DeleteDomainResponse Prelude.Text deleteDomainResponse_message = Lens.lens (\DeleteDomainResponse' {message} -> message) (\s@DeleteDomainResponse' {} a -> s {message = a} :: DeleteDomainResponse) instance Prelude.NFData DeleteDomainResponse where rnf DeleteDomainResponse' {..} = Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf message