{-# 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.Route53RecoveryReadiness.UpdateCell -- 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 a cell to replace the list of nested cells with a new list of -- nested cells. module Amazonka.Route53RecoveryReadiness.UpdateCell ( -- * Creating a Request UpdateCell (..), newUpdateCell, -- * Request Lenses updateCell_cellName, updateCell_cells, -- * Destructuring the Response UpdateCellResponse (..), newUpdateCellResponse, -- * Response Lenses updateCellResponse_cellArn, updateCellResponse_cellName, updateCellResponse_cells, updateCellResponse_parentReadinessScopes, updateCellResponse_tags, updateCellResponse_httpStatus, ) where 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 import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.Route53RecoveryReadiness.Types -- | /See:/ 'newUpdateCell' smart constructor. data UpdateCell = UpdateCell' { -- | The name of the cell. cellName :: Prelude.Text, -- | A list of cell Amazon Resource Names (ARNs), which completely replaces -- the previous list. cells :: [Prelude.Text] } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateCell' 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: -- -- 'cellName', 'updateCell_cellName' - The name of the cell. -- -- 'cells', 'updateCell_cells' - A list of cell Amazon Resource Names (ARNs), which completely replaces -- the previous list. newUpdateCell :: -- | 'cellName' Prelude.Text -> UpdateCell newUpdateCell pCellName_ = UpdateCell' { cellName = pCellName_, cells = Prelude.mempty } -- | The name of the cell. updateCell_cellName :: Lens.Lens' UpdateCell Prelude.Text updateCell_cellName = Lens.lens (\UpdateCell' {cellName} -> cellName) (\s@UpdateCell' {} a -> s {cellName = a} :: UpdateCell) -- | A list of cell Amazon Resource Names (ARNs), which completely replaces -- the previous list. updateCell_cells :: Lens.Lens' UpdateCell [Prelude.Text] updateCell_cells = Lens.lens (\UpdateCell' {cells} -> cells) (\s@UpdateCell' {} a -> s {cells = a} :: UpdateCell) Prelude.. Lens.coerced instance Core.AWSRequest UpdateCell where type AWSResponse UpdateCell = UpdateCellResponse request overrides = Request.putJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> UpdateCellResponse' Prelude.<$> (x Data..?> "cellArn") Prelude.<*> (x Data..?> "cellName") Prelude.<*> (x Data..?> "cells" Core..!@ Prelude.mempty) Prelude.<*> ( x Data..?> "parentReadinessScopes" Core..!@ Prelude.mempty ) Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable UpdateCell where hashWithSalt _salt UpdateCell' {..} = _salt `Prelude.hashWithSalt` cellName `Prelude.hashWithSalt` cells instance Prelude.NFData UpdateCell where rnf UpdateCell' {..} = Prelude.rnf cellName `Prelude.seq` Prelude.rnf cells instance Data.ToHeaders UpdateCell where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON UpdateCell where toJSON UpdateCell' {..} = Data.object ( Prelude.catMaybes [Prelude.Just ("cells" Data..= cells)] ) instance Data.ToPath UpdateCell where toPath UpdateCell' {..} = Prelude.mconcat ["/cells/", Data.toBS cellName] instance Data.ToQuery UpdateCell where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newUpdateCellResponse' smart constructor. data UpdateCellResponse = UpdateCellResponse' { -- | The Amazon Resource Name (ARN) for the cell. cellArn :: Prelude.Maybe Prelude.Text, -- | The name of the cell. cellName :: Prelude.Maybe Prelude.Text, -- | A list of cell ARNs. cells :: Prelude.Maybe [Prelude.Text], -- | The readiness scope for the cell, which can be a cell Amazon Resource -- Name (ARN) or a recovery group ARN. This is a list but currently can -- have only one element. parentReadinessScopes :: Prelude.Maybe [Prelude.Text], -- | Tags on the resources. tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateCellResponse' 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: -- -- 'cellArn', 'updateCellResponse_cellArn' - The Amazon Resource Name (ARN) for the cell. -- -- 'cellName', 'updateCellResponse_cellName' - The name of the cell. -- -- 'cells', 'updateCellResponse_cells' - A list of cell ARNs. -- -- 'parentReadinessScopes', 'updateCellResponse_parentReadinessScopes' - The readiness scope for the cell, which can be a cell Amazon Resource -- Name (ARN) or a recovery group ARN. This is a list but currently can -- have only one element. -- -- 'tags', 'updateCellResponse_tags' - Tags on the resources. -- -- 'httpStatus', 'updateCellResponse_httpStatus' - The response's http status code. newUpdateCellResponse :: -- | 'httpStatus' Prelude.Int -> UpdateCellResponse newUpdateCellResponse pHttpStatus_ = UpdateCellResponse' { cellArn = Prelude.Nothing, cellName = Prelude.Nothing, cells = Prelude.Nothing, parentReadinessScopes = Prelude.Nothing, tags = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The Amazon Resource Name (ARN) for the cell. updateCellResponse_cellArn :: Lens.Lens' UpdateCellResponse (Prelude.Maybe Prelude.Text) updateCellResponse_cellArn = Lens.lens (\UpdateCellResponse' {cellArn} -> cellArn) (\s@UpdateCellResponse' {} a -> s {cellArn = a} :: UpdateCellResponse) -- | The name of the cell. updateCellResponse_cellName :: Lens.Lens' UpdateCellResponse (Prelude.Maybe Prelude.Text) updateCellResponse_cellName = Lens.lens (\UpdateCellResponse' {cellName} -> cellName) (\s@UpdateCellResponse' {} a -> s {cellName = a} :: UpdateCellResponse) -- | A list of cell ARNs. updateCellResponse_cells :: Lens.Lens' UpdateCellResponse (Prelude.Maybe [Prelude.Text]) updateCellResponse_cells = Lens.lens (\UpdateCellResponse' {cells} -> cells) (\s@UpdateCellResponse' {} a -> s {cells = a} :: UpdateCellResponse) Prelude.. Lens.mapping Lens.coerced -- | The readiness scope for the cell, which can be a cell Amazon Resource -- Name (ARN) or a recovery group ARN. This is a list but currently can -- have only one element. updateCellResponse_parentReadinessScopes :: Lens.Lens' UpdateCellResponse (Prelude.Maybe [Prelude.Text]) updateCellResponse_parentReadinessScopes = Lens.lens (\UpdateCellResponse' {parentReadinessScopes} -> parentReadinessScopes) (\s@UpdateCellResponse' {} a -> s {parentReadinessScopes = a} :: UpdateCellResponse) Prelude.. Lens.mapping Lens.coerced -- | Tags on the resources. updateCellResponse_tags :: Lens.Lens' UpdateCellResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) updateCellResponse_tags = Lens.lens (\UpdateCellResponse' {tags} -> tags) (\s@UpdateCellResponse' {} a -> s {tags = a} :: UpdateCellResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. updateCellResponse_httpStatus :: Lens.Lens' UpdateCellResponse Prelude.Int updateCellResponse_httpStatus = Lens.lens (\UpdateCellResponse' {httpStatus} -> httpStatus) (\s@UpdateCellResponse' {} a -> s {httpStatus = a} :: UpdateCellResponse) instance Prelude.NFData UpdateCellResponse where rnf UpdateCellResponse' {..} = Prelude.rnf cellArn `Prelude.seq` Prelude.rnf cellName `Prelude.seq` Prelude.rnf cells `Prelude.seq` Prelude.rnf parentReadinessScopes `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf httpStatus