{-# 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.AppStream.DescribeFleets -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves a list that describes one or more specified fleets, if the -- fleet names are provided. Otherwise, all fleets in the account are -- described. -- -- This operation returns paginated results. module Amazonka.AppStream.DescribeFleets ( -- * Creating a Request DescribeFleets (..), newDescribeFleets, -- * Request Lenses describeFleets_names, describeFleets_nextToken, -- * Destructuring the Response DescribeFleetsResponse (..), newDescribeFleetsResponse, -- * Response Lenses describeFleetsResponse_fleets, describeFleetsResponse_nextToken, describeFleetsResponse_httpStatus, ) where import Amazonka.AppStream.Types 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 -- | /See:/ 'newDescribeFleets' smart constructor. data DescribeFleets = DescribeFleets' { -- | The names of the fleets to describe. names :: Prelude.Maybe [Prelude.Text], -- | The pagination token to use to retrieve the next page of results for -- this operation. If this value is null, it retrieves the first page. nextToken :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeFleets' 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: -- -- 'names', 'describeFleets_names' - The names of the fleets to describe. -- -- 'nextToken', 'describeFleets_nextToken' - The pagination token to use to retrieve the next page of results for -- this operation. If this value is null, it retrieves the first page. newDescribeFleets :: DescribeFleets newDescribeFleets = DescribeFleets' { names = Prelude.Nothing, nextToken = Prelude.Nothing } -- | The names of the fleets to describe. describeFleets_names :: Lens.Lens' DescribeFleets (Prelude.Maybe [Prelude.Text]) describeFleets_names = Lens.lens (\DescribeFleets' {names} -> names) (\s@DescribeFleets' {} a -> s {names = a} :: DescribeFleets) Prelude.. Lens.mapping Lens.coerced -- | The pagination token to use to retrieve the next page of results for -- this operation. If this value is null, it retrieves the first page. describeFleets_nextToken :: Lens.Lens' DescribeFleets (Prelude.Maybe Prelude.Text) describeFleets_nextToken = Lens.lens (\DescribeFleets' {nextToken} -> nextToken) (\s@DescribeFleets' {} a -> s {nextToken = a} :: DescribeFleets) instance Core.AWSPager DescribeFleets where page rq rs | Core.stop ( rs Lens.^? describeFleetsResponse_nextToken Prelude.. Lens._Just ) = Prelude.Nothing | Core.stop ( rs Lens.^? describeFleetsResponse_fleets Prelude.. Lens._Just ) = Prelude.Nothing | Prelude.otherwise = Prelude.Just Prelude.$ rq Prelude.& describeFleets_nextToken Lens..~ rs Lens.^? describeFleetsResponse_nextToken Prelude.. Lens._Just instance Core.AWSRequest DescribeFleets where type AWSResponse DescribeFleets = DescribeFleetsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeFleetsResponse' Prelude.<$> (x Data..?> "Fleets" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "NextToken") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeFleets where hashWithSalt _salt DescribeFleets' {..} = _salt `Prelude.hashWithSalt` names `Prelude.hashWithSalt` nextToken instance Prelude.NFData DescribeFleets where rnf DescribeFleets' {..} = Prelude.rnf names `Prelude.seq` Prelude.rnf nextToken instance Data.ToHeaders DescribeFleets where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "PhotonAdminProxyService.DescribeFleets" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DescribeFleets where toJSON DescribeFleets' {..} = Data.object ( Prelude.catMaybes [ ("Names" Data..=) Prelude.<$> names, ("NextToken" Data..=) Prelude.<$> nextToken ] ) instance Data.ToPath DescribeFleets where toPath = Prelude.const "/" instance Data.ToQuery DescribeFleets where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeFleetsResponse' smart constructor. data DescribeFleetsResponse = DescribeFleetsResponse' { -- | Information about the fleets. fleets :: Prelude.Maybe [Fleet], -- | The pagination token to use to retrieve the next page of results for -- this operation. If there are no more pages, this value is null. 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 'DescribeFleetsResponse' 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: -- -- 'fleets', 'describeFleetsResponse_fleets' - Information about the fleets. -- -- 'nextToken', 'describeFleetsResponse_nextToken' - The pagination token to use to retrieve the next page of results for -- this operation. If there are no more pages, this value is null. -- -- 'httpStatus', 'describeFleetsResponse_httpStatus' - The response's http status code. newDescribeFleetsResponse :: -- | 'httpStatus' Prelude.Int -> DescribeFleetsResponse newDescribeFleetsResponse pHttpStatus_ = DescribeFleetsResponse' { fleets = Prelude.Nothing, nextToken = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Information about the fleets. describeFleetsResponse_fleets :: Lens.Lens' DescribeFleetsResponse (Prelude.Maybe [Fleet]) describeFleetsResponse_fleets = Lens.lens (\DescribeFleetsResponse' {fleets} -> fleets) (\s@DescribeFleetsResponse' {} a -> s {fleets = a} :: DescribeFleetsResponse) Prelude.. Lens.mapping Lens.coerced -- | The pagination token to use to retrieve the next page of results for -- this operation. If there are no more pages, this value is null. describeFleetsResponse_nextToken :: Lens.Lens' DescribeFleetsResponse (Prelude.Maybe Prelude.Text) describeFleetsResponse_nextToken = Lens.lens (\DescribeFleetsResponse' {nextToken} -> nextToken) (\s@DescribeFleetsResponse' {} a -> s {nextToken = a} :: DescribeFleetsResponse) -- | The response's http status code. describeFleetsResponse_httpStatus :: Lens.Lens' DescribeFleetsResponse Prelude.Int describeFleetsResponse_httpStatus = Lens.lens (\DescribeFleetsResponse' {httpStatus} -> httpStatus) (\s@DescribeFleetsResponse' {} a -> s {httpStatus = a} :: DescribeFleetsResponse) instance Prelude.NFData DescribeFleetsResponse where rnf DescribeFleetsResponse' {..} = Prelude.rnf fleets `Prelude.seq` Prelude.rnf nextToken `Prelude.seq` Prelude.rnf httpStatus