{-# 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.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists available reserved Elasticsearch instance offerings.
--
-- This operation returns paginated results.
module Amazonka.ElasticSearch.DescribeReservedElasticsearchInstanceOfferings
  ( -- * Creating a Request
    DescribeReservedElasticsearchInstanceOfferings (..),
    newDescribeReservedElasticsearchInstanceOfferings,

    -- * Request Lenses
    describeReservedElasticsearchInstanceOfferings_maxResults,
    describeReservedElasticsearchInstanceOfferings_nextToken,
    describeReservedElasticsearchInstanceOfferings_reservedElasticsearchInstanceOfferingId,

    -- * Destructuring the Response
    DescribeReservedElasticsearchInstanceOfferingsResponse (..),
    newDescribeReservedElasticsearchInstanceOfferingsResponse,

    -- * Response Lenses
    describeReservedElasticsearchInstanceOfferingsResponse_nextToken,
    describeReservedElasticsearchInstanceOfferingsResponse_reservedElasticsearchInstanceOfferings,
    describeReservedElasticsearchInstanceOfferingsResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElasticSearch.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Container for parameters to
-- @DescribeReservedElasticsearchInstanceOfferings@
--
-- /See:/ 'newDescribeReservedElasticsearchInstanceOfferings' smart constructor.
data DescribeReservedElasticsearchInstanceOfferings = DescribeReservedElasticsearchInstanceOfferings'
  { -- | Set this value to limit the number of results returned. If not
    -- specified, defaults to 100.
    DescribeReservedElasticsearchInstanceOfferings -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | NextToken should be sent in case if earlier API call produced result
    -- containing NextToken. It is used for pagination.
    DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The offering identifier filter value. Use this parameter to show only
    -- the available offering that matches the specified reservation
    -- identifier.
    DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
reservedElasticsearchInstanceOfferingId :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeReservedElasticsearchInstanceOfferings
-> DescribeReservedElasticsearchInstanceOfferings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeReservedElasticsearchInstanceOfferings
-> DescribeReservedElasticsearchInstanceOfferings -> Bool
$c/= :: DescribeReservedElasticsearchInstanceOfferings
-> DescribeReservedElasticsearchInstanceOfferings -> Bool
== :: DescribeReservedElasticsearchInstanceOfferings
-> DescribeReservedElasticsearchInstanceOfferings -> Bool
$c== :: DescribeReservedElasticsearchInstanceOfferings
-> DescribeReservedElasticsearchInstanceOfferings -> Bool
Prelude.Eq, ReadPrec [DescribeReservedElasticsearchInstanceOfferings]
ReadPrec DescribeReservedElasticsearchInstanceOfferings
Int -> ReadS DescribeReservedElasticsearchInstanceOfferings
ReadS [DescribeReservedElasticsearchInstanceOfferings]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeReservedElasticsearchInstanceOfferings]
$creadListPrec :: ReadPrec [DescribeReservedElasticsearchInstanceOfferings]
readPrec :: ReadPrec DescribeReservedElasticsearchInstanceOfferings
$creadPrec :: ReadPrec DescribeReservedElasticsearchInstanceOfferings
readList :: ReadS [DescribeReservedElasticsearchInstanceOfferings]
$creadList :: ReadS [DescribeReservedElasticsearchInstanceOfferings]
readsPrec :: Int -> ReadS DescribeReservedElasticsearchInstanceOfferings
$creadsPrec :: Int -> ReadS DescribeReservedElasticsearchInstanceOfferings
Prelude.Read, Int -> DescribeReservedElasticsearchInstanceOfferings -> ShowS
[DescribeReservedElasticsearchInstanceOfferings] -> ShowS
DescribeReservedElasticsearchInstanceOfferings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeReservedElasticsearchInstanceOfferings] -> ShowS
$cshowList :: [DescribeReservedElasticsearchInstanceOfferings] -> ShowS
show :: DescribeReservedElasticsearchInstanceOfferings -> String
$cshow :: DescribeReservedElasticsearchInstanceOfferings -> String
showsPrec :: Int -> DescribeReservedElasticsearchInstanceOfferings -> ShowS
$cshowsPrec :: Int -> DescribeReservedElasticsearchInstanceOfferings -> ShowS
Prelude.Show, forall x.
Rep DescribeReservedElasticsearchInstanceOfferings x
-> DescribeReservedElasticsearchInstanceOfferings
forall x.
DescribeReservedElasticsearchInstanceOfferings
-> Rep DescribeReservedElasticsearchInstanceOfferings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeReservedElasticsearchInstanceOfferings x
-> DescribeReservedElasticsearchInstanceOfferings
$cfrom :: forall x.
DescribeReservedElasticsearchInstanceOfferings
-> Rep DescribeReservedElasticsearchInstanceOfferings x
Prelude.Generic)

-- |
-- Create a value of 'DescribeReservedElasticsearchInstanceOfferings' 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:
--
-- 'maxResults', 'describeReservedElasticsearchInstanceOfferings_maxResults' - Set this value to limit the number of results returned. If not
-- specified, defaults to 100.
--
-- 'nextToken', 'describeReservedElasticsearchInstanceOfferings_nextToken' - NextToken should be sent in case if earlier API call produced result
-- containing NextToken. It is used for pagination.
--
-- 'reservedElasticsearchInstanceOfferingId', 'describeReservedElasticsearchInstanceOfferings_reservedElasticsearchInstanceOfferingId' - The offering identifier filter value. Use this parameter to show only
-- the available offering that matches the specified reservation
-- identifier.
newDescribeReservedElasticsearchInstanceOfferings ::
  DescribeReservedElasticsearchInstanceOfferings
newDescribeReservedElasticsearchInstanceOfferings :: DescribeReservedElasticsearchInstanceOfferings
newDescribeReservedElasticsearchInstanceOfferings =
  DescribeReservedElasticsearchInstanceOfferings'
    { $sel:maxResults:DescribeReservedElasticsearchInstanceOfferings' :: Maybe Int
maxResults =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeReservedElasticsearchInstanceOfferings' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:reservedElasticsearchInstanceOfferingId:DescribeReservedElasticsearchInstanceOfferings' :: Maybe Text
reservedElasticsearchInstanceOfferingId =
        forall a. Maybe a
Prelude.Nothing
    }

-- | Set this value to limit the number of results returned. If not
-- specified, defaults to 100.
describeReservedElasticsearchInstanceOfferings_maxResults :: Lens.Lens' DescribeReservedElasticsearchInstanceOfferings (Prelude.Maybe Prelude.Int)
describeReservedElasticsearchInstanceOfferings_maxResults :: Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Int)
describeReservedElasticsearchInstanceOfferings_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReservedElasticsearchInstanceOfferings' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: DescribeReservedElasticsearchInstanceOfferings
s@DescribeReservedElasticsearchInstanceOfferings' {} Maybe Int
a -> DescribeReservedElasticsearchInstanceOfferings
s {$sel:maxResults:DescribeReservedElasticsearchInstanceOfferings' :: Maybe Int
maxResults = Maybe Int
a} :: DescribeReservedElasticsearchInstanceOfferings)

-- | NextToken should be sent in case if earlier API call produced result
-- containing NextToken. It is used for pagination.
describeReservedElasticsearchInstanceOfferings_nextToken :: Lens.Lens' DescribeReservedElasticsearchInstanceOfferings (Prelude.Maybe Prelude.Text)
describeReservedElasticsearchInstanceOfferings_nextToken :: Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Text)
describeReservedElasticsearchInstanceOfferings_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReservedElasticsearchInstanceOfferings' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeReservedElasticsearchInstanceOfferings
s@DescribeReservedElasticsearchInstanceOfferings' {} Maybe Text
a -> DescribeReservedElasticsearchInstanceOfferings
s {$sel:nextToken:DescribeReservedElasticsearchInstanceOfferings' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeReservedElasticsearchInstanceOfferings)

-- | The offering identifier filter value. Use this parameter to show only
-- the available offering that matches the specified reservation
-- identifier.
describeReservedElasticsearchInstanceOfferings_reservedElasticsearchInstanceOfferingId :: Lens.Lens' DescribeReservedElasticsearchInstanceOfferings (Prelude.Maybe Prelude.Text)
describeReservedElasticsearchInstanceOfferings_reservedElasticsearchInstanceOfferingId :: Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Text)
describeReservedElasticsearchInstanceOfferings_reservedElasticsearchInstanceOfferingId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReservedElasticsearchInstanceOfferings' {Maybe Text
reservedElasticsearchInstanceOfferingId :: Maybe Text
$sel:reservedElasticsearchInstanceOfferingId:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
reservedElasticsearchInstanceOfferingId} -> Maybe Text
reservedElasticsearchInstanceOfferingId) (\s :: DescribeReservedElasticsearchInstanceOfferings
s@DescribeReservedElasticsearchInstanceOfferings' {} Maybe Text
a -> DescribeReservedElasticsearchInstanceOfferings
s {$sel:reservedElasticsearchInstanceOfferingId:DescribeReservedElasticsearchInstanceOfferings' :: Maybe Text
reservedElasticsearchInstanceOfferingId = Maybe Text
a} :: DescribeReservedElasticsearchInstanceOfferings)

instance
  Core.AWSPager
    DescribeReservedElasticsearchInstanceOfferings
  where
  page :: DescribeReservedElasticsearchInstanceOfferings
-> AWSResponse DescribeReservedElasticsearchInstanceOfferings
-> Maybe DescribeReservedElasticsearchInstanceOfferings
page DescribeReservedElasticsearchInstanceOfferings
rq AWSResponse DescribeReservedElasticsearchInstanceOfferings
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeReservedElasticsearchInstanceOfferings
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeReservedElasticsearchInstanceOfferingsResponse (Maybe Text)
describeReservedElasticsearchInstanceOfferingsResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeReservedElasticsearchInstanceOfferings
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeReservedElasticsearchInstanceOfferingsResponse
  (Maybe [ReservedElasticsearchInstanceOffering])
describeReservedElasticsearchInstanceOfferingsResponse_reservedElasticsearchInstanceOfferings
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeReservedElasticsearchInstanceOfferings
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeReservedElasticsearchInstanceOfferings (Maybe Text)
describeReservedElasticsearchInstanceOfferings_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeReservedElasticsearchInstanceOfferings
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeReservedElasticsearchInstanceOfferingsResponse (Maybe Text)
describeReservedElasticsearchInstanceOfferingsResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance
  Core.AWSRequest
    DescribeReservedElasticsearchInstanceOfferings
  where
  type
    AWSResponse
      DescribeReservedElasticsearchInstanceOfferings =
      DescribeReservedElasticsearchInstanceOfferingsResponse
  request :: (Service -> Service)
-> DescribeReservedElasticsearchInstanceOfferings
-> Request DescribeReservedElasticsearchInstanceOfferings
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeReservedElasticsearchInstanceOfferings
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse DescribeReservedElasticsearchInstanceOfferings)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe [ReservedElasticsearchInstanceOffering]
-> Int
-> DescribeReservedElasticsearchInstanceOfferingsResponse
DescribeReservedElasticsearchInstanceOfferingsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"NextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ReservedElasticsearchInstanceOfferings"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    DescribeReservedElasticsearchInstanceOfferings
  where
  hashWithSalt :: Int -> DescribeReservedElasticsearchInstanceOfferings -> Int
hashWithSalt
    Int
_salt
    DescribeReservedElasticsearchInstanceOfferings' {Maybe Int
Maybe Text
reservedElasticsearchInstanceOfferingId :: Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:reservedElasticsearchInstanceOfferingId:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
$sel:nextToken:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
$sel:maxResults:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Int
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
reservedElasticsearchInstanceOfferingId

instance
  Prelude.NFData
    DescribeReservedElasticsearchInstanceOfferings
  where
  rnf :: DescribeReservedElasticsearchInstanceOfferings -> ()
rnf
    DescribeReservedElasticsearchInstanceOfferings' {Maybe Int
Maybe Text
reservedElasticsearchInstanceOfferingId :: Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:reservedElasticsearchInstanceOfferingId:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
$sel:nextToken:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
$sel:maxResults:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Int
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxResults
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
reservedElasticsearchInstanceOfferingId

instance
  Data.ToHeaders
    DescribeReservedElasticsearchInstanceOfferings
  where
  toHeaders :: DescribeReservedElasticsearchInstanceOfferings -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance
  Data.ToPath
    DescribeReservedElasticsearchInstanceOfferings
  where
  toPath :: DescribeReservedElasticsearchInstanceOfferings -> ByteString
toPath =
    forall a b. a -> b -> a
Prelude.const
      ByteString
"/2015-01-01/es/reservedInstanceOfferings"

instance
  Data.ToQuery
    DescribeReservedElasticsearchInstanceOfferings
  where
  toQuery :: DescribeReservedElasticsearchInstanceOfferings -> QueryString
toQuery
    DescribeReservedElasticsearchInstanceOfferings' {Maybe Int
Maybe Text
reservedElasticsearchInstanceOfferingId :: Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:reservedElasticsearchInstanceOfferingId:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
$sel:nextToken:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Text
$sel:maxResults:DescribeReservedElasticsearchInstanceOfferings' :: DescribeReservedElasticsearchInstanceOfferings -> Maybe Int
..} =
      forall a. Monoid a => [a] -> a
Prelude.mconcat
        [ ByteString
"maxResults" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxResults,
          ByteString
"nextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
          ByteString
"offeringId"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
reservedElasticsearchInstanceOfferingId
        ]

-- | Container for results from
-- @DescribeReservedElasticsearchInstanceOfferings@
--
-- /See:/ 'newDescribeReservedElasticsearchInstanceOfferingsResponse' smart constructor.
data DescribeReservedElasticsearchInstanceOfferingsResponse = DescribeReservedElasticsearchInstanceOfferingsResponse'
  { -- | Provides an identifier to allow retrieval of paginated results.
    DescribeReservedElasticsearchInstanceOfferingsResponse
-> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | List of reserved Elasticsearch instance offerings
    DescribeReservedElasticsearchInstanceOfferingsResponse
-> Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings :: Prelude.Maybe [ReservedElasticsearchInstanceOffering],
    -- | The response's http status code.
    DescribeReservedElasticsearchInstanceOfferingsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeReservedElasticsearchInstanceOfferingsResponse
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> Bool
$c/= :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> Bool
== :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> Bool
$c== :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeReservedElasticsearchInstanceOfferingsResponse]
ReadPrec DescribeReservedElasticsearchInstanceOfferingsResponse
Int -> ReadS DescribeReservedElasticsearchInstanceOfferingsResponse
ReadS [DescribeReservedElasticsearchInstanceOfferingsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeReservedElasticsearchInstanceOfferingsResponse]
$creadListPrec :: ReadPrec [DescribeReservedElasticsearchInstanceOfferingsResponse]
readPrec :: ReadPrec DescribeReservedElasticsearchInstanceOfferingsResponse
$creadPrec :: ReadPrec DescribeReservedElasticsearchInstanceOfferingsResponse
readList :: ReadS [DescribeReservedElasticsearchInstanceOfferingsResponse]
$creadList :: ReadS [DescribeReservedElasticsearchInstanceOfferingsResponse]
readsPrec :: Int -> ReadS DescribeReservedElasticsearchInstanceOfferingsResponse
$creadsPrec :: Int -> ReadS DescribeReservedElasticsearchInstanceOfferingsResponse
Prelude.Read, Int
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> ShowS
[DescribeReservedElasticsearchInstanceOfferingsResponse] -> ShowS
DescribeReservedElasticsearchInstanceOfferingsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeReservedElasticsearchInstanceOfferingsResponse] -> ShowS
$cshowList :: [DescribeReservedElasticsearchInstanceOfferingsResponse] -> ShowS
show :: DescribeReservedElasticsearchInstanceOfferingsResponse -> String
$cshow :: DescribeReservedElasticsearchInstanceOfferingsResponse -> String
showsPrec :: Int
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> ShowS
$cshowsPrec :: Int
-> DescribeReservedElasticsearchInstanceOfferingsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeReservedElasticsearchInstanceOfferingsResponse x
-> DescribeReservedElasticsearchInstanceOfferingsResponse
forall x.
DescribeReservedElasticsearchInstanceOfferingsResponse
-> Rep DescribeReservedElasticsearchInstanceOfferingsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeReservedElasticsearchInstanceOfferingsResponse x
-> DescribeReservedElasticsearchInstanceOfferingsResponse
$cfrom :: forall x.
DescribeReservedElasticsearchInstanceOfferingsResponse
-> Rep DescribeReservedElasticsearchInstanceOfferingsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeReservedElasticsearchInstanceOfferingsResponse' 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', 'describeReservedElasticsearchInstanceOfferingsResponse_nextToken' - Provides an identifier to allow retrieval of paginated results.
--
-- 'reservedElasticsearchInstanceOfferings', 'describeReservedElasticsearchInstanceOfferingsResponse_reservedElasticsearchInstanceOfferings' - List of reserved Elasticsearch instance offerings
--
-- 'httpStatus', 'describeReservedElasticsearchInstanceOfferingsResponse_httpStatus' - The response's http status code.
newDescribeReservedElasticsearchInstanceOfferingsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeReservedElasticsearchInstanceOfferingsResponse
newDescribeReservedElasticsearchInstanceOfferingsResponse :: Int -> DescribeReservedElasticsearchInstanceOfferingsResponse
newDescribeReservedElasticsearchInstanceOfferingsResponse
  Int
pHttpStatus_ =
    DescribeReservedElasticsearchInstanceOfferingsResponse'
      { $sel:nextToken:DescribeReservedElasticsearchInstanceOfferingsResponse' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:reservedElasticsearchInstanceOfferings:DescribeReservedElasticsearchInstanceOfferingsResponse' :: Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeReservedElasticsearchInstanceOfferingsResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | Provides an identifier to allow retrieval of paginated results.
describeReservedElasticsearchInstanceOfferingsResponse_nextToken :: Lens.Lens' DescribeReservedElasticsearchInstanceOfferingsResponse (Prelude.Maybe Prelude.Text)
describeReservedElasticsearchInstanceOfferingsResponse_nextToken :: Lens'
  DescribeReservedElasticsearchInstanceOfferingsResponse (Maybe Text)
describeReservedElasticsearchInstanceOfferingsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReservedElasticsearchInstanceOfferingsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeReservedElasticsearchInstanceOfferingsResponse' :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeReservedElasticsearchInstanceOfferingsResponse
s@DescribeReservedElasticsearchInstanceOfferingsResponse' {} Maybe Text
a -> DescribeReservedElasticsearchInstanceOfferingsResponse
s {$sel:nextToken:DescribeReservedElasticsearchInstanceOfferingsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeReservedElasticsearchInstanceOfferingsResponse)

-- | List of reserved Elasticsearch instance offerings
describeReservedElasticsearchInstanceOfferingsResponse_reservedElasticsearchInstanceOfferings :: Lens.Lens' DescribeReservedElasticsearchInstanceOfferingsResponse (Prelude.Maybe [ReservedElasticsearchInstanceOffering])
describeReservedElasticsearchInstanceOfferingsResponse_reservedElasticsearchInstanceOfferings :: Lens'
  DescribeReservedElasticsearchInstanceOfferingsResponse
  (Maybe [ReservedElasticsearchInstanceOffering])
describeReservedElasticsearchInstanceOfferingsResponse_reservedElasticsearchInstanceOfferings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReservedElasticsearchInstanceOfferingsResponse' {Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings :: Maybe [ReservedElasticsearchInstanceOffering]
$sel:reservedElasticsearchInstanceOfferings:DescribeReservedElasticsearchInstanceOfferingsResponse' :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings} -> Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings) (\s :: DescribeReservedElasticsearchInstanceOfferingsResponse
s@DescribeReservedElasticsearchInstanceOfferingsResponse' {} Maybe [ReservedElasticsearchInstanceOffering]
a -> DescribeReservedElasticsearchInstanceOfferingsResponse
s {$sel:reservedElasticsearchInstanceOfferings:DescribeReservedElasticsearchInstanceOfferingsResponse' :: Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings = Maybe [ReservedElasticsearchInstanceOffering]
a} :: DescribeReservedElasticsearchInstanceOfferingsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The response's http status code.
describeReservedElasticsearchInstanceOfferingsResponse_httpStatus :: Lens.Lens' DescribeReservedElasticsearchInstanceOfferingsResponse Prelude.Int
describeReservedElasticsearchInstanceOfferingsResponse_httpStatus :: Lens' DescribeReservedElasticsearchInstanceOfferingsResponse Int
describeReservedElasticsearchInstanceOfferingsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeReservedElasticsearchInstanceOfferingsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeReservedElasticsearchInstanceOfferingsResponse' :: DescribeReservedElasticsearchInstanceOfferingsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeReservedElasticsearchInstanceOfferingsResponse
s@DescribeReservedElasticsearchInstanceOfferingsResponse' {} Int
a -> DescribeReservedElasticsearchInstanceOfferingsResponse
s {$sel:httpStatus:DescribeReservedElasticsearchInstanceOfferingsResponse' :: Int
httpStatus = Int
a} :: DescribeReservedElasticsearchInstanceOfferingsResponse)

instance
  Prelude.NFData
    DescribeReservedElasticsearchInstanceOfferingsResponse
  where
  rnf :: DescribeReservedElasticsearchInstanceOfferingsResponse -> ()
rnf
    DescribeReservedElasticsearchInstanceOfferingsResponse' {Int
Maybe [ReservedElasticsearchInstanceOffering]
Maybe Text
httpStatus :: Int
reservedElasticsearchInstanceOfferings :: Maybe [ReservedElasticsearchInstanceOffering]
nextToken :: Maybe Text
$sel:httpStatus:DescribeReservedElasticsearchInstanceOfferingsResponse' :: DescribeReservedElasticsearchInstanceOfferingsResponse -> Int
$sel:reservedElasticsearchInstanceOfferings:DescribeReservedElasticsearchInstanceOfferingsResponse' :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> Maybe [ReservedElasticsearchInstanceOffering]
$sel:nextToken:DescribeReservedElasticsearchInstanceOfferingsResponse' :: DescribeReservedElasticsearchInstanceOfferingsResponse
-> Maybe Text
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ReservedElasticsearchInstanceOffering]
reservedElasticsearchInstanceOfferings
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus