{-# 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.LexV2Models.UpdateExport -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Updates the password used to protect an export zip archive. -- -- The password is not required. If you don\'t supply a password, Amazon -- Lex generates a zip file that is not protected by a password. This is -- the archive that is available at the pre-signed S3 URL provided by the -- -- operation. module Amazonka.LexV2Models.UpdateExport ( -- * Creating a Request UpdateExport (..), newUpdateExport, -- * Request Lenses updateExport_filePassword, updateExport_exportId, -- * Destructuring the Response UpdateExportResponse (..), newUpdateExportResponse, -- * Response Lenses updateExportResponse_creationDateTime, updateExportResponse_exportId, updateExportResponse_exportStatus, updateExportResponse_fileFormat, updateExportResponse_lastUpdatedDateTime, updateExportResponse_resourceSpecification, updateExportResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.LexV2Models.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newUpdateExport' smart constructor. data UpdateExport = UpdateExport' { -- | The new password to use to encrypt the export zip archive. filePassword :: Prelude.Maybe (Data.Sensitive Prelude.Text), -- | The unique identifier Amazon Lex assigned to the export. exportId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateExport' 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: -- -- 'filePassword', 'updateExport_filePassword' - The new password to use to encrypt the export zip archive. -- -- 'exportId', 'updateExport_exportId' - The unique identifier Amazon Lex assigned to the export. newUpdateExport :: -- | 'exportId' Prelude.Text -> UpdateExport newUpdateExport pExportId_ = UpdateExport' { filePassword = Prelude.Nothing, exportId = pExportId_ } -- | The new password to use to encrypt the export zip archive. updateExport_filePassword :: Lens.Lens' UpdateExport (Prelude.Maybe Prelude.Text) updateExport_filePassword = Lens.lens (\UpdateExport' {filePassword} -> filePassword) (\s@UpdateExport' {} a -> s {filePassword = a} :: UpdateExport) Prelude.. Lens.mapping Data._Sensitive -- | The unique identifier Amazon Lex assigned to the export. updateExport_exportId :: Lens.Lens' UpdateExport Prelude.Text updateExport_exportId = Lens.lens (\UpdateExport' {exportId} -> exportId) (\s@UpdateExport' {} a -> s {exportId = a} :: UpdateExport) instance Core.AWSRequest UpdateExport where type AWSResponse UpdateExport = UpdateExportResponse request overrides = Request.putJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> UpdateExportResponse' Prelude.<$> (x Data..?> "creationDateTime") Prelude.<*> (x Data..?> "exportId") Prelude.<*> (x Data..?> "exportStatus") Prelude.<*> (x Data..?> "fileFormat") Prelude.<*> (x Data..?> "lastUpdatedDateTime") Prelude.<*> (x Data..?> "resourceSpecification") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable UpdateExport where hashWithSalt _salt UpdateExport' {..} = _salt `Prelude.hashWithSalt` filePassword `Prelude.hashWithSalt` exportId instance Prelude.NFData UpdateExport where rnf UpdateExport' {..} = Prelude.rnf filePassword `Prelude.seq` Prelude.rnf exportId instance Data.ToHeaders UpdateExport where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON UpdateExport where toJSON UpdateExport' {..} = Data.object ( Prelude.catMaybes [("filePassword" Data..=) Prelude.<$> filePassword] ) instance Data.ToPath UpdateExport where toPath UpdateExport' {..} = Prelude.mconcat ["/exports/", Data.toBS exportId, "/"] instance Data.ToQuery UpdateExport where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newUpdateExportResponse' smart constructor. data UpdateExportResponse = UpdateExportResponse' { -- | The date and time that the export was created. creationDateTime :: Prelude.Maybe Data.POSIX, -- | The unique identifier Amazon Lex assigned to the export. exportId :: Prelude.Maybe Prelude.Text, -- | The status of the export. When the status is @Completed@ the export -- archive is available for download. exportStatus :: Prelude.Maybe ExportStatus, -- | The file format used for the files that define the resource. The @TSV@ -- format is required to export a custom vocabulary only; otherwise use -- @LexJson@ format. fileFormat :: Prelude.Maybe ImportExportFileFormat, -- | The date and time that the export was last updated. lastUpdatedDateTime :: Prelude.Maybe Data.POSIX, -- | A description of the type of resource that was exported, either a bot or -- a bot locale. resourceSpecification :: Prelude.Maybe ExportResourceSpecification, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateExportResponse' 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: -- -- 'creationDateTime', 'updateExportResponse_creationDateTime' - The date and time that the export was created. -- -- 'exportId', 'updateExportResponse_exportId' - The unique identifier Amazon Lex assigned to the export. -- -- 'exportStatus', 'updateExportResponse_exportStatus' - The status of the export. When the status is @Completed@ the export -- archive is available for download. -- -- 'fileFormat', 'updateExportResponse_fileFormat' - The file format used for the files that define the resource. The @TSV@ -- format is required to export a custom vocabulary only; otherwise use -- @LexJson@ format. -- -- 'lastUpdatedDateTime', 'updateExportResponse_lastUpdatedDateTime' - The date and time that the export was last updated. -- -- 'resourceSpecification', 'updateExportResponse_resourceSpecification' - A description of the type of resource that was exported, either a bot or -- a bot locale. -- -- 'httpStatus', 'updateExportResponse_httpStatus' - The response's http status code. newUpdateExportResponse :: -- | 'httpStatus' Prelude.Int -> UpdateExportResponse newUpdateExportResponse pHttpStatus_ = UpdateExportResponse' { creationDateTime = Prelude.Nothing, exportId = Prelude.Nothing, exportStatus = Prelude.Nothing, fileFormat = Prelude.Nothing, lastUpdatedDateTime = Prelude.Nothing, resourceSpecification = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The date and time that the export was created. updateExportResponse_creationDateTime :: Lens.Lens' UpdateExportResponse (Prelude.Maybe Prelude.UTCTime) updateExportResponse_creationDateTime = Lens.lens (\UpdateExportResponse' {creationDateTime} -> creationDateTime) (\s@UpdateExportResponse' {} a -> s {creationDateTime = a} :: UpdateExportResponse) Prelude.. Lens.mapping Data._Time -- | The unique identifier Amazon Lex assigned to the export. updateExportResponse_exportId :: Lens.Lens' UpdateExportResponse (Prelude.Maybe Prelude.Text) updateExportResponse_exportId = Lens.lens (\UpdateExportResponse' {exportId} -> exportId) (\s@UpdateExportResponse' {} a -> s {exportId = a} :: UpdateExportResponse) -- | The status of the export. When the status is @Completed@ the export -- archive is available for download. updateExportResponse_exportStatus :: Lens.Lens' UpdateExportResponse (Prelude.Maybe ExportStatus) updateExportResponse_exportStatus = Lens.lens (\UpdateExportResponse' {exportStatus} -> exportStatus) (\s@UpdateExportResponse' {} a -> s {exportStatus = a} :: UpdateExportResponse) -- | The file format used for the files that define the resource. The @TSV@ -- format is required to export a custom vocabulary only; otherwise use -- @LexJson@ format. updateExportResponse_fileFormat :: Lens.Lens' UpdateExportResponse (Prelude.Maybe ImportExportFileFormat) updateExportResponse_fileFormat = Lens.lens (\UpdateExportResponse' {fileFormat} -> fileFormat) (\s@UpdateExportResponse' {} a -> s {fileFormat = a} :: UpdateExportResponse) -- | The date and time that the export was last updated. updateExportResponse_lastUpdatedDateTime :: Lens.Lens' UpdateExportResponse (Prelude.Maybe Prelude.UTCTime) updateExportResponse_lastUpdatedDateTime = Lens.lens (\UpdateExportResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateExportResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateExportResponse) Prelude.. Lens.mapping Data._Time -- | A description of the type of resource that was exported, either a bot or -- a bot locale. updateExportResponse_resourceSpecification :: Lens.Lens' UpdateExportResponse (Prelude.Maybe ExportResourceSpecification) updateExportResponse_resourceSpecification = Lens.lens (\UpdateExportResponse' {resourceSpecification} -> resourceSpecification) (\s@UpdateExportResponse' {} a -> s {resourceSpecification = a} :: UpdateExportResponse) -- | The response's http status code. updateExportResponse_httpStatus :: Lens.Lens' UpdateExportResponse Prelude.Int updateExportResponse_httpStatus = Lens.lens (\UpdateExportResponse' {httpStatus} -> httpStatus) (\s@UpdateExportResponse' {} a -> s {httpStatus = a} :: UpdateExportResponse) instance Prelude.NFData UpdateExportResponse where rnf UpdateExportResponse' {..} = Prelude.rnf creationDateTime `Prelude.seq` Prelude.rnf exportId `Prelude.seq` Prelude.rnf exportStatus `Prelude.seq` Prelude.rnf fileFormat `Prelude.seq` Prelude.rnf lastUpdatedDateTime `Prelude.seq` Prelude.rnf resourceSpecification `Prelude.seq` Prelude.rnf httpStatus