{-# 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.S3.ListBucketIntelligentTieringConfigurations
-- 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 the S3 Intelligent-Tiering configuration from the specified
-- bucket.
--
-- The S3 Intelligent-Tiering storage class is designed to optimize storage
-- costs by automatically moving data to the most cost-effective storage
-- access tier, without performance impact or operational overhead. S3
-- Intelligent-Tiering delivers automatic cost savings in three low latency
-- and high throughput access tiers. To get the lowest storage cost on data
-- that can be accessed in minutes to hours, you can choose to activate
-- additional archiving capabilities.
--
-- The S3 Intelligent-Tiering storage class is the ideal storage class for
-- data with unknown, changing, or unpredictable access patterns,
-- independent of object size or retention period. If the size of an object
-- is less than 128 KB, it is not monitored and not eligible for
-- auto-tiering. Smaller objects can be stored, but they are always charged
-- at the Frequent Access tier rates in the S3 Intelligent-Tiering storage
-- class.
--
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access Storage class for automatically optimizing frequently and infrequently accessed objects>.
--
-- Operations related to @ListBucketIntelligentTieringConfigurations@
-- include:
--
-- -   <https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html DeleteBucketIntelligentTieringConfiguration>
--
-- -   <https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html PutBucketIntelligentTieringConfiguration>
--
-- -   <https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html GetBucketIntelligentTieringConfiguration>
module Amazonka.S3.ListBucketIntelligentTieringConfigurations
  ( -- * Creating a Request
    ListBucketIntelligentTieringConfigurations (..),
    newListBucketIntelligentTieringConfigurations,

    -- * Request Lenses
    listBucketIntelligentTieringConfigurations_continuationToken,
    listBucketIntelligentTieringConfigurations_bucket,

    -- * Destructuring the Response
    ListBucketIntelligentTieringConfigurationsResponse (..),
    newListBucketIntelligentTieringConfigurationsResponse,

    -- * Response Lenses
    listBucketIntelligentTieringConfigurationsResponse_continuationToken,
    listBucketIntelligentTieringConfigurationsResponse_intelligentTieringConfigurationList,
    listBucketIntelligentTieringConfigurationsResponse_isTruncated,
    listBucketIntelligentTieringConfigurationsResponse_nextContinuationToken,
    listBucketIntelligentTieringConfigurationsResponse_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.S3.Types

-- | /See:/ 'newListBucketIntelligentTieringConfigurations' smart constructor.
data ListBucketIntelligentTieringConfigurations = ListBucketIntelligentTieringConfigurations'
  { -- | The @ContinuationToken@ that represents a placeholder from where this
    -- request should begin.
    ListBucketIntelligentTieringConfigurations -> Maybe Text
continuationToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the Amazon S3 bucket whose configuration you want to modify
    -- or retrieve.
    ListBucketIntelligentTieringConfigurations -> BucketName
bucket :: BucketName
  }
  deriving (ListBucketIntelligentTieringConfigurations
-> ListBucketIntelligentTieringConfigurations -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListBucketIntelligentTieringConfigurations
-> ListBucketIntelligentTieringConfigurations -> Bool
$c/= :: ListBucketIntelligentTieringConfigurations
-> ListBucketIntelligentTieringConfigurations -> Bool
== :: ListBucketIntelligentTieringConfigurations
-> ListBucketIntelligentTieringConfigurations -> Bool
$c== :: ListBucketIntelligentTieringConfigurations
-> ListBucketIntelligentTieringConfigurations -> Bool
Prelude.Eq, ReadPrec [ListBucketIntelligentTieringConfigurations]
ReadPrec ListBucketIntelligentTieringConfigurations
Int -> ReadS ListBucketIntelligentTieringConfigurations
ReadS [ListBucketIntelligentTieringConfigurations]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListBucketIntelligentTieringConfigurations]
$creadListPrec :: ReadPrec [ListBucketIntelligentTieringConfigurations]
readPrec :: ReadPrec ListBucketIntelligentTieringConfigurations
$creadPrec :: ReadPrec ListBucketIntelligentTieringConfigurations
readList :: ReadS [ListBucketIntelligentTieringConfigurations]
$creadList :: ReadS [ListBucketIntelligentTieringConfigurations]
readsPrec :: Int -> ReadS ListBucketIntelligentTieringConfigurations
$creadsPrec :: Int -> ReadS ListBucketIntelligentTieringConfigurations
Prelude.Read, Int -> ListBucketIntelligentTieringConfigurations -> ShowS
[ListBucketIntelligentTieringConfigurations] -> ShowS
ListBucketIntelligentTieringConfigurations -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListBucketIntelligentTieringConfigurations] -> ShowS
$cshowList :: [ListBucketIntelligentTieringConfigurations] -> ShowS
show :: ListBucketIntelligentTieringConfigurations -> String
$cshow :: ListBucketIntelligentTieringConfigurations -> String
showsPrec :: Int -> ListBucketIntelligentTieringConfigurations -> ShowS
$cshowsPrec :: Int -> ListBucketIntelligentTieringConfigurations -> ShowS
Prelude.Show, forall x.
Rep ListBucketIntelligentTieringConfigurations x
-> ListBucketIntelligentTieringConfigurations
forall x.
ListBucketIntelligentTieringConfigurations
-> Rep ListBucketIntelligentTieringConfigurations x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListBucketIntelligentTieringConfigurations x
-> ListBucketIntelligentTieringConfigurations
$cfrom :: forall x.
ListBucketIntelligentTieringConfigurations
-> Rep ListBucketIntelligentTieringConfigurations x
Prelude.Generic)

-- |
-- Create a value of 'ListBucketIntelligentTieringConfigurations' 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:
--
-- 'continuationToken', 'listBucketIntelligentTieringConfigurations_continuationToken' - The @ContinuationToken@ that represents a placeholder from where this
-- request should begin.
--
-- 'bucket', 'listBucketIntelligentTieringConfigurations_bucket' - The name of the Amazon S3 bucket whose configuration you want to modify
-- or retrieve.
newListBucketIntelligentTieringConfigurations ::
  -- | 'bucket'
  BucketName ->
  ListBucketIntelligentTieringConfigurations
newListBucketIntelligentTieringConfigurations :: BucketName -> ListBucketIntelligentTieringConfigurations
newListBucketIntelligentTieringConfigurations
  BucketName
pBucket_ =
    ListBucketIntelligentTieringConfigurations'
      { $sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: Maybe Text
continuationToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:bucket:ListBucketIntelligentTieringConfigurations' :: BucketName
bucket = BucketName
pBucket_
      }

-- | The @ContinuationToken@ that represents a placeholder from where this
-- request should begin.
listBucketIntelligentTieringConfigurations_continuationToken :: Lens.Lens' ListBucketIntelligentTieringConfigurations (Prelude.Maybe Prelude.Text)
listBucketIntelligentTieringConfigurations_continuationToken :: Lens' ListBucketIntelligentTieringConfigurations (Maybe Text)
listBucketIntelligentTieringConfigurations_continuationToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListBucketIntelligentTieringConfigurations' {Maybe Text
continuationToken :: Maybe Text
$sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> Maybe Text
continuationToken} -> Maybe Text
continuationToken) (\s :: ListBucketIntelligentTieringConfigurations
s@ListBucketIntelligentTieringConfigurations' {} Maybe Text
a -> ListBucketIntelligentTieringConfigurations
s {$sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: Maybe Text
continuationToken = Maybe Text
a} :: ListBucketIntelligentTieringConfigurations)

-- | The name of the Amazon S3 bucket whose configuration you want to modify
-- or retrieve.
listBucketIntelligentTieringConfigurations_bucket :: Lens.Lens' ListBucketIntelligentTieringConfigurations BucketName
listBucketIntelligentTieringConfigurations_bucket :: Lens' ListBucketIntelligentTieringConfigurations BucketName
listBucketIntelligentTieringConfigurations_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListBucketIntelligentTieringConfigurations' {BucketName
bucket :: BucketName
$sel:bucket:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> BucketName
bucket} -> BucketName
bucket) (\s :: ListBucketIntelligentTieringConfigurations
s@ListBucketIntelligentTieringConfigurations' {} BucketName
a -> ListBucketIntelligentTieringConfigurations
s {$sel:bucket:ListBucketIntelligentTieringConfigurations' :: BucketName
bucket = BucketName
a} :: ListBucketIntelligentTieringConfigurations)

instance
  Core.AWSRequest
    ListBucketIntelligentTieringConfigurations
  where
  type
    AWSResponse
      ListBucketIntelligentTieringConfigurations =
      ListBucketIntelligentTieringConfigurationsResponse
  request :: (Service -> Service)
-> ListBucketIntelligentTieringConfigurations
-> Request ListBucketIntelligentTieringConfigurations
request Service -> Service
overrides =
    forall a. Request a -> Request a
Request.s3vhost
      forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 ListBucketIntelligentTieringConfigurations
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse ListBucketIntelligentTieringConfigurations)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe Text
-> Maybe [IntelligentTieringConfiguration]
-> Maybe Bool
-> Maybe Text
-> Int
-> ListBucketIntelligentTieringConfigurationsResponse
ListBucketIntelligentTieringConfigurationsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ContinuationToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may
                            (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"IntelligentTieringConfiguration")
                            [Node]
x
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"IsTruncated")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"NextContinuationToken")
            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
    ListBucketIntelligentTieringConfigurations
  where
  hashWithSalt :: Int -> ListBucketIntelligentTieringConfigurations -> Int
hashWithSalt
    Int
_salt
    ListBucketIntelligentTieringConfigurations' {Maybe Text
BucketName
bucket :: BucketName
continuationToken :: Maybe Text
$sel:bucket:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> BucketName
$sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
continuationToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BucketName
bucket

instance
  Prelude.NFData
    ListBucketIntelligentTieringConfigurations
  where
  rnf :: ListBucketIntelligentTieringConfigurations -> ()
rnf ListBucketIntelligentTieringConfigurations' {Maybe Text
BucketName
bucket :: BucketName
continuationToken :: Maybe Text
$sel:bucket:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> BucketName
$sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
continuationToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf BucketName
bucket

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

instance
  Data.ToPath
    ListBucketIntelligentTieringConfigurations
  where
  toPath :: ListBucketIntelligentTieringConfigurations -> ByteString
toPath
    ListBucketIntelligentTieringConfigurations' {Maybe Text
BucketName
bucket :: BucketName
continuationToken :: Maybe Text
$sel:bucket:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> BucketName
$sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> Maybe Text
..} =
      forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket]

instance
  Data.ToQuery
    ListBucketIntelligentTieringConfigurations
  where
  toQuery :: ListBucketIntelligentTieringConfigurations -> QueryString
toQuery
    ListBucketIntelligentTieringConfigurations' {Maybe Text
BucketName
bucket :: BucketName
continuationToken :: Maybe Text
$sel:bucket:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> BucketName
$sel:continuationToken:ListBucketIntelligentTieringConfigurations' :: ListBucketIntelligentTieringConfigurations -> Maybe Text
..} =
      forall a. Monoid a => [a] -> a
Prelude.mconcat
        [ ByteString
"continuation-token" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
continuationToken,
          QueryString
"intelligent-tiering"
        ]

-- | /See:/ 'newListBucketIntelligentTieringConfigurationsResponse' smart constructor.
data ListBucketIntelligentTieringConfigurationsResponse = ListBucketIntelligentTieringConfigurationsResponse'
  { -- | The @ContinuationToken@ that represents a placeholder from where this
    -- request should begin.
    ListBucketIntelligentTieringConfigurationsResponse -> Maybe Text
continuationToken :: Prelude.Maybe Prelude.Text,
    -- | The list of S3 Intelligent-Tiering configurations for a bucket.
    ListBucketIntelligentTieringConfigurationsResponse
-> Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList :: Prelude.Maybe [IntelligentTieringConfiguration],
    -- | Indicates whether the returned list of analytics configurations is
    -- complete. A value of @true@ indicates that the list is not complete and
    -- the @NextContinuationToken@ will be provided for a subsequent request.
    ListBucketIntelligentTieringConfigurationsResponse -> Maybe Bool
isTruncated :: Prelude.Maybe Prelude.Bool,
    -- | The marker used to continue this inventory configuration listing. Use
    -- the @NextContinuationToken@ from this response to continue the listing
    -- in a subsequent request. The continuation token is an opaque value that
    -- Amazon S3 understands.
    ListBucketIntelligentTieringConfigurationsResponse -> Maybe Text
nextContinuationToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListBucketIntelligentTieringConfigurationsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListBucketIntelligentTieringConfigurationsResponse
-> ListBucketIntelligentTieringConfigurationsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListBucketIntelligentTieringConfigurationsResponse
-> ListBucketIntelligentTieringConfigurationsResponse -> Bool
$c/= :: ListBucketIntelligentTieringConfigurationsResponse
-> ListBucketIntelligentTieringConfigurationsResponse -> Bool
== :: ListBucketIntelligentTieringConfigurationsResponse
-> ListBucketIntelligentTieringConfigurationsResponse -> Bool
$c== :: ListBucketIntelligentTieringConfigurationsResponse
-> ListBucketIntelligentTieringConfigurationsResponse -> Bool
Prelude.Eq, ReadPrec [ListBucketIntelligentTieringConfigurationsResponse]
ReadPrec ListBucketIntelligentTieringConfigurationsResponse
Int -> ReadS ListBucketIntelligentTieringConfigurationsResponse
ReadS [ListBucketIntelligentTieringConfigurationsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListBucketIntelligentTieringConfigurationsResponse]
$creadListPrec :: ReadPrec [ListBucketIntelligentTieringConfigurationsResponse]
readPrec :: ReadPrec ListBucketIntelligentTieringConfigurationsResponse
$creadPrec :: ReadPrec ListBucketIntelligentTieringConfigurationsResponse
readList :: ReadS [ListBucketIntelligentTieringConfigurationsResponse]
$creadList :: ReadS [ListBucketIntelligentTieringConfigurationsResponse]
readsPrec :: Int -> ReadS ListBucketIntelligentTieringConfigurationsResponse
$creadsPrec :: Int -> ReadS ListBucketIntelligentTieringConfigurationsResponse
Prelude.Read, Int -> ListBucketIntelligentTieringConfigurationsResponse -> ShowS
[ListBucketIntelligentTieringConfigurationsResponse] -> ShowS
ListBucketIntelligentTieringConfigurationsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListBucketIntelligentTieringConfigurationsResponse] -> ShowS
$cshowList :: [ListBucketIntelligentTieringConfigurationsResponse] -> ShowS
show :: ListBucketIntelligentTieringConfigurationsResponse -> String
$cshow :: ListBucketIntelligentTieringConfigurationsResponse -> String
showsPrec :: Int -> ListBucketIntelligentTieringConfigurationsResponse -> ShowS
$cshowsPrec :: Int -> ListBucketIntelligentTieringConfigurationsResponse -> ShowS
Prelude.Show, forall x.
Rep ListBucketIntelligentTieringConfigurationsResponse x
-> ListBucketIntelligentTieringConfigurationsResponse
forall x.
ListBucketIntelligentTieringConfigurationsResponse
-> Rep ListBucketIntelligentTieringConfigurationsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListBucketIntelligentTieringConfigurationsResponse x
-> ListBucketIntelligentTieringConfigurationsResponse
$cfrom :: forall x.
ListBucketIntelligentTieringConfigurationsResponse
-> Rep ListBucketIntelligentTieringConfigurationsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListBucketIntelligentTieringConfigurationsResponse' 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:
--
-- 'continuationToken', 'listBucketIntelligentTieringConfigurationsResponse_continuationToken' - The @ContinuationToken@ that represents a placeholder from where this
-- request should begin.
--
-- 'intelligentTieringConfigurationList', 'listBucketIntelligentTieringConfigurationsResponse_intelligentTieringConfigurationList' - The list of S3 Intelligent-Tiering configurations for a bucket.
--
-- 'isTruncated', 'listBucketIntelligentTieringConfigurationsResponse_isTruncated' - Indicates whether the returned list of analytics configurations is
-- complete. A value of @true@ indicates that the list is not complete and
-- the @NextContinuationToken@ will be provided for a subsequent request.
--
-- 'nextContinuationToken', 'listBucketIntelligentTieringConfigurationsResponse_nextContinuationToken' - The marker used to continue this inventory configuration listing. Use
-- the @NextContinuationToken@ from this response to continue the listing
-- in a subsequent request. The continuation token is an opaque value that
-- Amazon S3 understands.
--
-- 'httpStatus', 'listBucketIntelligentTieringConfigurationsResponse_httpStatus' - The response's http status code.
newListBucketIntelligentTieringConfigurationsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListBucketIntelligentTieringConfigurationsResponse
newListBucketIntelligentTieringConfigurationsResponse :: Int -> ListBucketIntelligentTieringConfigurationsResponse
newListBucketIntelligentTieringConfigurationsResponse
  Int
pHttpStatus_ =
    ListBucketIntelligentTieringConfigurationsResponse'
      { $sel:continuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe Text
continuationToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:intelligentTieringConfigurationList:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList =
          forall a. Maybe a
Prelude.Nothing,
        $sel:isTruncated:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe Bool
isTruncated =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextContinuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe Text
nextContinuationToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ListBucketIntelligentTieringConfigurationsResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | The @ContinuationToken@ that represents a placeholder from where this
-- request should begin.
listBucketIntelligentTieringConfigurationsResponse_continuationToken :: Lens.Lens' ListBucketIntelligentTieringConfigurationsResponse (Prelude.Maybe Prelude.Text)
listBucketIntelligentTieringConfigurationsResponse_continuationToken :: Lens'
  ListBucketIntelligentTieringConfigurationsResponse (Maybe Text)
listBucketIntelligentTieringConfigurationsResponse_continuationToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListBucketIntelligentTieringConfigurationsResponse' {Maybe Text
continuationToken :: Maybe Text
$sel:continuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Maybe Text
continuationToken} -> Maybe Text
continuationToken) (\s :: ListBucketIntelligentTieringConfigurationsResponse
s@ListBucketIntelligentTieringConfigurationsResponse' {} Maybe Text
a -> ListBucketIntelligentTieringConfigurationsResponse
s {$sel:continuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe Text
continuationToken = Maybe Text
a} :: ListBucketIntelligentTieringConfigurationsResponse)

-- | The list of S3 Intelligent-Tiering configurations for a bucket.
listBucketIntelligentTieringConfigurationsResponse_intelligentTieringConfigurationList :: Lens.Lens' ListBucketIntelligentTieringConfigurationsResponse (Prelude.Maybe [IntelligentTieringConfiguration])
listBucketIntelligentTieringConfigurationsResponse_intelligentTieringConfigurationList :: Lens'
  ListBucketIntelligentTieringConfigurationsResponse
  (Maybe [IntelligentTieringConfiguration])
listBucketIntelligentTieringConfigurationsResponse_intelligentTieringConfigurationList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListBucketIntelligentTieringConfigurationsResponse' {Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList :: Maybe [IntelligentTieringConfiguration]
$sel:intelligentTieringConfigurationList:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse
-> Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList} -> Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList) (\s :: ListBucketIntelligentTieringConfigurationsResponse
s@ListBucketIntelligentTieringConfigurationsResponse' {} Maybe [IntelligentTieringConfiguration]
a -> ListBucketIntelligentTieringConfigurationsResponse
s {$sel:intelligentTieringConfigurationList:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList = Maybe [IntelligentTieringConfiguration]
a} :: ListBucketIntelligentTieringConfigurationsResponse) 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

-- | Indicates whether the returned list of analytics configurations is
-- complete. A value of @true@ indicates that the list is not complete and
-- the @NextContinuationToken@ will be provided for a subsequent request.
listBucketIntelligentTieringConfigurationsResponse_isTruncated :: Lens.Lens' ListBucketIntelligentTieringConfigurationsResponse (Prelude.Maybe Prelude.Bool)
listBucketIntelligentTieringConfigurationsResponse_isTruncated :: Lens'
  ListBucketIntelligentTieringConfigurationsResponse (Maybe Bool)
listBucketIntelligentTieringConfigurationsResponse_isTruncated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListBucketIntelligentTieringConfigurationsResponse' {Maybe Bool
isTruncated :: Maybe Bool
$sel:isTruncated:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Maybe Bool
isTruncated} -> Maybe Bool
isTruncated) (\s :: ListBucketIntelligentTieringConfigurationsResponse
s@ListBucketIntelligentTieringConfigurationsResponse' {} Maybe Bool
a -> ListBucketIntelligentTieringConfigurationsResponse
s {$sel:isTruncated:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe Bool
isTruncated = Maybe Bool
a} :: ListBucketIntelligentTieringConfigurationsResponse)

-- | The marker used to continue this inventory configuration listing. Use
-- the @NextContinuationToken@ from this response to continue the listing
-- in a subsequent request. The continuation token is an opaque value that
-- Amazon S3 understands.
listBucketIntelligentTieringConfigurationsResponse_nextContinuationToken :: Lens.Lens' ListBucketIntelligentTieringConfigurationsResponse (Prelude.Maybe Prelude.Text)
listBucketIntelligentTieringConfigurationsResponse_nextContinuationToken :: Lens'
  ListBucketIntelligentTieringConfigurationsResponse (Maybe Text)
listBucketIntelligentTieringConfigurationsResponse_nextContinuationToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListBucketIntelligentTieringConfigurationsResponse' {Maybe Text
nextContinuationToken :: Maybe Text
$sel:nextContinuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Maybe Text
nextContinuationToken} -> Maybe Text
nextContinuationToken) (\s :: ListBucketIntelligentTieringConfigurationsResponse
s@ListBucketIntelligentTieringConfigurationsResponse' {} Maybe Text
a -> ListBucketIntelligentTieringConfigurationsResponse
s {$sel:nextContinuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: Maybe Text
nextContinuationToken = Maybe Text
a} :: ListBucketIntelligentTieringConfigurationsResponse)

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

instance
  Prelude.NFData
    ListBucketIntelligentTieringConfigurationsResponse
  where
  rnf :: ListBucketIntelligentTieringConfigurationsResponse -> ()
rnf
    ListBucketIntelligentTieringConfigurationsResponse' {Int
Maybe Bool
Maybe [IntelligentTieringConfiguration]
Maybe Text
httpStatus :: Int
nextContinuationToken :: Maybe Text
isTruncated :: Maybe Bool
intelligentTieringConfigurationList :: Maybe [IntelligentTieringConfiguration]
continuationToken :: Maybe Text
$sel:httpStatus:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Int
$sel:nextContinuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Maybe Text
$sel:isTruncated:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Maybe Bool
$sel:intelligentTieringConfigurationList:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse
-> Maybe [IntelligentTieringConfiguration]
$sel:continuationToken:ListBucketIntelligentTieringConfigurationsResponse' :: ListBucketIntelligentTieringConfigurationsResponse -> Maybe Text
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
continuationToken
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [IntelligentTieringConfiguration]
intelligentTieringConfigurationList
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isTruncated
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextContinuationToken
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus