{-# 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.OpsWorksCM.DescribeBackups -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes backups. The results are ordered by time, with newest backups -- first. If you do not specify a BackupId or ServerName, the command -- returns all backups. -- -- This operation is synchronous. -- -- A @ResourceNotFoundException@ is thrown when the backup does not exist. -- A @ValidationException@ is raised when parameters of the request are not -- valid. -- -- This operation returns paginated results. module Amazonka.OpsWorksCM.DescribeBackups ( -- * Creating a Request DescribeBackups (..), newDescribeBackups, -- * Request Lenses describeBackups_backupId, describeBackups_maxResults, describeBackups_nextToken, describeBackups_serverName, -- * Destructuring the Response DescribeBackupsResponse (..), newDescribeBackupsResponse, -- * Response Lenses describeBackupsResponse_backups, describeBackupsResponse_nextToken, describeBackupsResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.OpsWorksCM.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDescribeBackups' smart constructor. data DescribeBackups = DescribeBackups' { -- | Describes a single backup. backupId :: Prelude.Maybe Prelude.Text, -- | This is not currently implemented for @DescribeBackups@ requests. maxResults :: Prelude.Maybe Prelude.Natural, -- | This is not currently implemented for @DescribeBackups@ requests. nextToken :: Prelude.Maybe Prelude.Text, -- | Returns backups for the server with the specified ServerName. serverName :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeBackups' 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: -- -- 'backupId', 'describeBackups_backupId' - Describes a single backup. -- -- 'maxResults', 'describeBackups_maxResults' - This is not currently implemented for @DescribeBackups@ requests. -- -- 'nextToken', 'describeBackups_nextToken' - This is not currently implemented for @DescribeBackups@ requests. -- -- 'serverName', 'describeBackups_serverName' - Returns backups for the server with the specified ServerName. newDescribeBackups :: DescribeBackups newDescribeBackups = DescribeBackups' { backupId = Prelude.Nothing, maxResults = Prelude.Nothing, nextToken = Prelude.Nothing, serverName = Prelude.Nothing } -- | Describes a single backup. describeBackups_backupId :: Lens.Lens' DescribeBackups (Prelude.Maybe Prelude.Text) describeBackups_backupId = Lens.lens (\DescribeBackups' {backupId} -> backupId) (\s@DescribeBackups' {} a -> s {backupId = a} :: DescribeBackups) -- | This is not currently implemented for @DescribeBackups@ requests. describeBackups_maxResults :: Lens.Lens' DescribeBackups (Prelude.Maybe Prelude.Natural) describeBackups_maxResults = Lens.lens (\DescribeBackups' {maxResults} -> maxResults) (\s@DescribeBackups' {} a -> s {maxResults = a} :: DescribeBackups) -- | This is not currently implemented for @DescribeBackups@ requests. describeBackups_nextToken :: Lens.Lens' DescribeBackups (Prelude.Maybe Prelude.Text) describeBackups_nextToken = Lens.lens (\DescribeBackups' {nextToken} -> nextToken) (\s@DescribeBackups' {} a -> s {nextToken = a} :: DescribeBackups) -- | Returns backups for the server with the specified ServerName. describeBackups_serverName :: Lens.Lens' DescribeBackups (Prelude.Maybe Prelude.Text) describeBackups_serverName = Lens.lens (\DescribeBackups' {serverName} -> serverName) (\s@DescribeBackups' {} a -> s {serverName = a} :: DescribeBackups) instance Core.AWSPager DescribeBackups where page rq rs | Core.stop ( rs Lens.^? describeBackupsResponse_nextToken Prelude.. Lens._Just ) = Prelude.Nothing | Core.stop ( rs Lens.^? describeBackupsResponse_backups Prelude.. Lens._Just ) = Prelude.Nothing | Prelude.otherwise = Prelude.Just Prelude.$ rq Prelude.& describeBackups_nextToken Lens..~ rs Lens.^? describeBackupsResponse_nextToken Prelude.. Lens._Just instance Core.AWSRequest DescribeBackups where type AWSResponse DescribeBackups = DescribeBackupsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeBackupsResponse' Prelude.<$> (x Data..?> "Backups" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "NextToken") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeBackups where hashWithSalt _salt DescribeBackups' {..} = _salt `Prelude.hashWithSalt` backupId `Prelude.hashWithSalt` maxResults `Prelude.hashWithSalt` nextToken `Prelude.hashWithSalt` serverName instance Prelude.NFData DescribeBackups where rnf DescribeBackups' {..} = Prelude.rnf backupId `Prelude.seq` Prelude.rnf maxResults `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf serverName instance Data.ToHeaders DescribeBackups where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "OpsWorksCM_V2016_11_01.DescribeBackups" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DescribeBackups where toJSON DescribeBackups' {..} = Data.object ( Prelude.catMaybes [ ("BackupId" Data..=) Prelude.<$> backupId, ("MaxResults" Data..=) Prelude.<$> maxResults, ("NextToken" Data..=) Prelude.<$> nextToken, ("ServerName" Data..=) Prelude.<$> serverName ] ) instance Data.ToPath DescribeBackups where toPath = Prelude.const "/" instance Data.ToQuery DescribeBackups where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeBackupsResponse' smart constructor. data DescribeBackupsResponse = DescribeBackupsResponse' { -- | Contains the response to a @DescribeBackups@ request. backups :: Prelude.Maybe [Backup], -- | This is not currently implemented for @DescribeBackups@ requests. nextToken :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeBackupsResponse' 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: -- -- 'backups', 'describeBackupsResponse_backups' - Contains the response to a @DescribeBackups@ request. -- -- 'nextToken', 'describeBackupsResponse_nextToken' - This is not currently implemented for @DescribeBackups@ requests. -- -- 'httpStatus', 'describeBackupsResponse_httpStatus' - The response's http status code. newDescribeBackupsResponse :: -- | 'httpStatus' Prelude.Int -> DescribeBackupsResponse newDescribeBackupsResponse pHttpStatus_ = DescribeBackupsResponse' { backups = Prelude.Nothing, nextToken = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Contains the response to a @DescribeBackups@ request. describeBackupsResponse_backups :: Lens.Lens' DescribeBackupsResponse (Prelude.Maybe [Backup]) describeBackupsResponse_backups = Lens.lens (\DescribeBackupsResponse' {backups} -> backups) (\s@DescribeBackupsResponse' {} a -> s {backups = a} :: DescribeBackupsResponse) Prelude.. Lens.mapping Lens.coerced -- | This is not currently implemented for @DescribeBackups@ requests. describeBackupsResponse_nextToken :: Lens.Lens' DescribeBackupsResponse (Prelude.Maybe Prelude.Text) describeBackupsResponse_nextToken = Lens.lens (\DescribeBackupsResponse' {nextToken} -> nextToken) (\s@DescribeBackupsResponse' {} a -> s {nextToken = a} :: DescribeBackupsResponse) -- | The response's http status code. describeBackupsResponse_httpStatus :: Lens.Lens' DescribeBackupsResponse Prelude.Int describeBackupsResponse_httpStatus = Lens.lens (\DescribeBackupsResponse' {httpStatus} -> httpStatus) (\s@DescribeBackupsResponse' {} a -> s {httpStatus = a} :: DescribeBackupsResponse) instance Prelude.NFData DescribeBackupsResponse where rnf DescribeBackupsResponse' {..} = Prelude.rnf backups `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf httpStatus