amazonka-fsx-2.0: gen/Amazonka/FSx/DescribeStorageVirtualMachines.hs
{-# 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.FSx.DescribeStorageVirtualMachines
-- 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 one or more Amazon FSx for NetApp ONTAP storage virtual
-- machines (SVMs).
--
-- This operation returns paginated results.
module Amazonka.FSx.DescribeStorageVirtualMachines
( -- * Creating a Request
DescribeStorageVirtualMachines (..),
newDescribeStorageVirtualMachines,
-- * Request Lenses
describeStorageVirtualMachines_filters,
describeStorageVirtualMachines_maxResults,
describeStorageVirtualMachines_nextToken,
describeStorageVirtualMachines_storageVirtualMachineIds,
-- * Destructuring the Response
DescribeStorageVirtualMachinesResponse (..),
newDescribeStorageVirtualMachinesResponse,
-- * Response Lenses
describeStorageVirtualMachinesResponse_nextToken,
describeStorageVirtualMachinesResponse_storageVirtualMachines,
describeStorageVirtualMachinesResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FSx.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newDescribeStorageVirtualMachines' smart constructor.
data DescribeStorageVirtualMachines = DescribeStorageVirtualMachines'
{ -- | Enter a filter name:value pair to view a select set of SVMs.
filters :: Prelude.Maybe [StorageVirtualMachineFilter],
maxResults :: Prelude.Maybe Prelude.Natural,
nextToken :: Prelude.Maybe Prelude.Text,
-- | Enter the ID of one or more SVMs that you want to view.
storageVirtualMachineIds :: Prelude.Maybe [Prelude.Text]
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeStorageVirtualMachines' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'filters', 'describeStorageVirtualMachines_filters' - Enter a filter name:value pair to view a select set of SVMs.
--
-- 'maxResults', 'describeStorageVirtualMachines_maxResults' - Undocumented member.
--
-- 'nextToken', 'describeStorageVirtualMachines_nextToken' - Undocumented member.
--
-- 'storageVirtualMachineIds', 'describeStorageVirtualMachines_storageVirtualMachineIds' - Enter the ID of one or more SVMs that you want to view.
newDescribeStorageVirtualMachines ::
DescribeStorageVirtualMachines
newDescribeStorageVirtualMachines =
DescribeStorageVirtualMachines'
{ filters =
Prelude.Nothing,
maxResults = Prelude.Nothing,
nextToken = Prelude.Nothing,
storageVirtualMachineIds = Prelude.Nothing
}
-- | Enter a filter name:value pair to view a select set of SVMs.
describeStorageVirtualMachines_filters :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe [StorageVirtualMachineFilter])
describeStorageVirtualMachines_filters = Lens.lens (\DescribeStorageVirtualMachines' {filters} -> filters) (\s@DescribeStorageVirtualMachines' {} a -> s {filters = a} :: DescribeStorageVirtualMachines) Prelude.. Lens.mapping Lens.coerced
-- | Undocumented member.
describeStorageVirtualMachines_maxResults :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe Prelude.Natural)
describeStorageVirtualMachines_maxResults = Lens.lens (\DescribeStorageVirtualMachines' {maxResults} -> maxResults) (\s@DescribeStorageVirtualMachines' {} a -> s {maxResults = a} :: DescribeStorageVirtualMachines)
-- | Undocumented member.
describeStorageVirtualMachines_nextToken :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe Prelude.Text)
describeStorageVirtualMachines_nextToken = Lens.lens (\DescribeStorageVirtualMachines' {nextToken} -> nextToken) (\s@DescribeStorageVirtualMachines' {} a -> s {nextToken = a} :: DescribeStorageVirtualMachines)
-- | Enter the ID of one or more SVMs that you want to view.
describeStorageVirtualMachines_storageVirtualMachineIds :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe [Prelude.Text])
describeStorageVirtualMachines_storageVirtualMachineIds = Lens.lens (\DescribeStorageVirtualMachines' {storageVirtualMachineIds} -> storageVirtualMachineIds) (\s@DescribeStorageVirtualMachines' {} a -> s {storageVirtualMachineIds = a} :: DescribeStorageVirtualMachines) Prelude.. Lens.mapping Lens.coerced
instance Core.AWSPager DescribeStorageVirtualMachines where
page rq rs
| Core.stop
( rs
Lens.^? describeStorageVirtualMachinesResponse_nextToken
Prelude.. Lens._Just
) =
Prelude.Nothing
| Core.stop
( rs
Lens.^? describeStorageVirtualMachinesResponse_storageVirtualMachines
Prelude.. Lens._Just
) =
Prelude.Nothing
| Prelude.otherwise =
Prelude.Just
Prelude.$ rq
Prelude.& describeStorageVirtualMachines_nextToken
Lens..~ rs
Lens.^? describeStorageVirtualMachinesResponse_nextToken
Prelude.. Lens._Just
instance
Core.AWSRequest
DescribeStorageVirtualMachines
where
type
AWSResponse DescribeStorageVirtualMachines =
DescribeStorageVirtualMachinesResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
DescribeStorageVirtualMachinesResponse'
Prelude.<$> (x Data..?> "NextToken")
Prelude.<*> ( x
Data..?> "StorageVirtualMachines"
Core..!@ Prelude.mempty
)
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance
Prelude.Hashable
DescribeStorageVirtualMachines
where
hashWithSalt
_salt
DescribeStorageVirtualMachines' {..} =
_salt
`Prelude.hashWithSalt` filters
`Prelude.hashWithSalt` maxResults
`Prelude.hashWithSalt` nextToken
`Prelude.hashWithSalt` storageVirtualMachineIds
instance
Prelude.NFData
DescribeStorageVirtualMachines
where
rnf DescribeStorageVirtualMachines' {..} =
Prelude.rnf filters
`Prelude.seq` Prelude.rnf maxResults
`Prelude.seq` Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf storageVirtualMachineIds
instance
Data.ToHeaders
DescribeStorageVirtualMachines
where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "AWSSimbaAPIService_v20180301.DescribeStorageVirtualMachines" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DescribeStorageVirtualMachines where
toJSON DescribeStorageVirtualMachines' {..} =
Data.object
( Prelude.catMaybes
[ ("Filters" Data..=) Prelude.<$> filters,
("MaxResults" Data..=) Prelude.<$> maxResults,
("NextToken" Data..=) Prelude.<$> nextToken,
("StorageVirtualMachineIds" Data..=)
Prelude.<$> storageVirtualMachineIds
]
)
instance Data.ToPath DescribeStorageVirtualMachines where
toPath = Prelude.const "/"
instance Data.ToQuery DescribeStorageVirtualMachines where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newDescribeStorageVirtualMachinesResponse' smart constructor.
data DescribeStorageVirtualMachinesResponse = DescribeStorageVirtualMachinesResponse'
{ nextToken :: Prelude.Maybe Prelude.Text,
-- | Returned after a successful @DescribeStorageVirtualMachines@ operation,
-- describing each SVM.
storageVirtualMachines :: Prelude.Maybe [StorageVirtualMachine],
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeStorageVirtualMachinesResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'nextToken', 'describeStorageVirtualMachinesResponse_nextToken' - Undocumented member.
--
-- 'storageVirtualMachines', 'describeStorageVirtualMachinesResponse_storageVirtualMachines' - Returned after a successful @DescribeStorageVirtualMachines@ operation,
-- describing each SVM.
--
-- 'httpStatus', 'describeStorageVirtualMachinesResponse_httpStatus' - The response's http status code.
newDescribeStorageVirtualMachinesResponse ::
-- | 'httpStatus'
Prelude.Int ->
DescribeStorageVirtualMachinesResponse
newDescribeStorageVirtualMachinesResponse
pHttpStatus_ =
DescribeStorageVirtualMachinesResponse'
{ nextToken =
Prelude.Nothing,
storageVirtualMachines =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Undocumented member.
describeStorageVirtualMachinesResponse_nextToken :: Lens.Lens' DescribeStorageVirtualMachinesResponse (Prelude.Maybe Prelude.Text)
describeStorageVirtualMachinesResponse_nextToken = Lens.lens (\DescribeStorageVirtualMachinesResponse' {nextToken} -> nextToken) (\s@DescribeStorageVirtualMachinesResponse' {} a -> s {nextToken = a} :: DescribeStorageVirtualMachinesResponse)
-- | Returned after a successful @DescribeStorageVirtualMachines@ operation,
-- describing each SVM.
describeStorageVirtualMachinesResponse_storageVirtualMachines :: Lens.Lens' DescribeStorageVirtualMachinesResponse (Prelude.Maybe [StorageVirtualMachine])
describeStorageVirtualMachinesResponse_storageVirtualMachines = Lens.lens (\DescribeStorageVirtualMachinesResponse' {storageVirtualMachines} -> storageVirtualMachines) (\s@DescribeStorageVirtualMachinesResponse' {} a -> s {storageVirtualMachines = a} :: DescribeStorageVirtualMachinesResponse) Prelude.. Lens.mapping Lens.coerced
-- | The response's http status code.
describeStorageVirtualMachinesResponse_httpStatus :: Lens.Lens' DescribeStorageVirtualMachinesResponse Prelude.Int
describeStorageVirtualMachinesResponse_httpStatus = Lens.lens (\DescribeStorageVirtualMachinesResponse' {httpStatus} -> httpStatus) (\s@DescribeStorageVirtualMachinesResponse' {} a -> s {httpStatus = a} :: DescribeStorageVirtualMachinesResponse)
instance
Prelude.NFData
DescribeStorageVirtualMachinesResponse
where
rnf DescribeStorageVirtualMachinesResponse' {..} =
Prelude.rnf nextToken
`Prelude.seq` Prelude.rnf storageVirtualMachines
`Prelude.seq` Prelude.rnf httpStatus