{-# 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.GamesParks.GetSnapshot -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Gets a copy of the game configuration in a snapshot. module Amazonka.GamesParks.GetSnapshot ( -- * Creating a Request GetSnapshot (..), newGetSnapshot, -- * Request Lenses getSnapshot_sections, getSnapshot_gameName, getSnapshot_snapshotId, -- * Destructuring the Response GetSnapshotResponse (..), newGetSnapshotResponse, -- * Response Lenses getSnapshotResponse_snapshot, getSnapshotResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.GamesParks.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newGetSnapshot' smart constructor. data GetSnapshot = GetSnapshot' { -- | The list of game configuration sections to be described. sections :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text), -- | The name of the game. gameName :: Prelude.Text, -- | The identifier of the snapshot. snapshotId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetSnapshot' 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: -- -- 'sections', 'getSnapshot_sections' - The list of game configuration sections to be described. -- -- 'gameName', 'getSnapshot_gameName' - The name of the game. -- -- 'snapshotId', 'getSnapshot_snapshotId' - The identifier of the snapshot. newGetSnapshot :: -- | 'gameName' Prelude.Text -> -- | 'snapshotId' Prelude.Text -> GetSnapshot newGetSnapshot pGameName_ pSnapshotId_ = GetSnapshot' { sections = Prelude.Nothing, gameName = pGameName_, snapshotId = pSnapshotId_ } -- | The list of game configuration sections to be described. getSnapshot_sections :: Lens.Lens' GetSnapshot (Prelude.Maybe (Prelude.NonEmpty Prelude.Text)) getSnapshot_sections = Lens.lens (\GetSnapshot' {sections} -> sections) (\s@GetSnapshot' {} a -> s {sections = a} :: GetSnapshot) Prelude.. Lens.mapping Lens.coerced -- | The name of the game. getSnapshot_gameName :: Lens.Lens' GetSnapshot Prelude.Text getSnapshot_gameName = Lens.lens (\GetSnapshot' {gameName} -> gameName) (\s@GetSnapshot' {} a -> s {gameName = a} :: GetSnapshot) -- | The identifier of the snapshot. getSnapshot_snapshotId :: Lens.Lens' GetSnapshot Prelude.Text getSnapshot_snapshotId = Lens.lens (\GetSnapshot' {snapshotId} -> snapshotId) (\s@GetSnapshot' {} a -> s {snapshotId = a} :: GetSnapshot) instance Core.AWSRequest GetSnapshot where type AWSResponse GetSnapshot = GetSnapshotResponse request overrides = Request.get (overrides defaultService) response = Response.receiveJSON ( \s h x -> GetSnapshotResponse' Prelude.<$> (x Data..?> "Snapshot") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable GetSnapshot where hashWithSalt _salt GetSnapshot' {..} = _salt `Prelude.hashWithSalt` sections `Prelude.hashWithSalt` gameName `Prelude.hashWithSalt` snapshotId instance Prelude.NFData GetSnapshot where rnf GetSnapshot' {..} = Prelude.rnf sections `Prelude.seq` Prelude.rnf gameName `Prelude.seq` Prelude.rnf snapshotId instance Data.ToHeaders GetSnapshot where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToPath GetSnapshot where toPath GetSnapshot' {..} = Prelude.mconcat [ "/game/", Data.toBS gameName, "/snapshot/", Data.toBS snapshotId ] instance Data.ToQuery GetSnapshot where toQuery GetSnapshot' {..} = Prelude.mconcat [ "Sections" Data.=: Data.toQuery (Data.toQueryList "member" Prelude.<$> sections) ] -- | /See:/ 'newGetSnapshotResponse' smart constructor. data GetSnapshotResponse = GetSnapshotResponse' { -- | Properties that provide details of the snapshot. snapshot :: Prelude.Maybe SnapshotDetails, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GetSnapshotResponse' 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: -- -- 'snapshot', 'getSnapshotResponse_snapshot' - Properties that provide details of the snapshot. -- -- 'httpStatus', 'getSnapshotResponse_httpStatus' - The response's http status code. newGetSnapshotResponse :: -- | 'httpStatus' Prelude.Int -> GetSnapshotResponse newGetSnapshotResponse pHttpStatus_ = GetSnapshotResponse' { snapshot = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Properties that provide details of the snapshot. getSnapshotResponse_snapshot :: Lens.Lens' GetSnapshotResponse (Prelude.Maybe SnapshotDetails) getSnapshotResponse_snapshot = Lens.lens (\GetSnapshotResponse' {snapshot} -> snapshot) (\s@GetSnapshotResponse' {} a -> s {snapshot = a} :: GetSnapshotResponse) -- | The response's http status code. getSnapshotResponse_httpStatus :: Lens.Lens' GetSnapshotResponse Prelude.Int getSnapshotResponse_httpStatus = Lens.lens (\GetSnapshotResponse' {httpStatus} -> httpStatus) (\s@GetSnapshotResponse' {} a -> s {httpStatus = a} :: GetSnapshotResponse) instance Prelude.NFData GetSnapshotResponse where rnf GetSnapshotResponse' {..} = Prelude.rnf snapshot `Prelude.seq` Prelude.rnf httpStatus