{-# 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 #-}
module Amazonka.S3.PutBucketMetricsConfiguration
(
PutBucketMetricsConfiguration (..),
newPutBucketMetricsConfiguration,
putBucketMetricsConfiguration_expectedBucketOwner,
putBucketMetricsConfiguration_bucket,
putBucketMetricsConfiguration_id,
putBucketMetricsConfiguration_metricsConfiguration,
PutBucketMetricsConfigurationResponse (..),
newPutBucketMetricsConfigurationResponse,
)
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
data PutBucketMetricsConfiguration = PutBucketMetricsConfiguration'
{
PutBucketMetricsConfiguration -> Maybe Text
expectedBucketOwner :: Prelude.Maybe Prelude.Text,
PutBucketMetricsConfiguration -> BucketName
bucket :: BucketName,
PutBucketMetricsConfiguration -> Text
id :: Prelude.Text,
PutBucketMetricsConfiguration -> MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
}
deriving (PutBucketMetricsConfiguration
-> PutBucketMetricsConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBucketMetricsConfiguration
-> PutBucketMetricsConfiguration -> Bool
$c/= :: PutBucketMetricsConfiguration
-> PutBucketMetricsConfiguration -> Bool
== :: PutBucketMetricsConfiguration
-> PutBucketMetricsConfiguration -> Bool
$c== :: PutBucketMetricsConfiguration
-> PutBucketMetricsConfiguration -> Bool
Prelude.Eq, ReadPrec [PutBucketMetricsConfiguration]
ReadPrec PutBucketMetricsConfiguration
Int -> ReadS PutBucketMetricsConfiguration
ReadS [PutBucketMetricsConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutBucketMetricsConfiguration]
$creadListPrec :: ReadPrec [PutBucketMetricsConfiguration]
readPrec :: ReadPrec PutBucketMetricsConfiguration
$creadPrec :: ReadPrec PutBucketMetricsConfiguration
readList :: ReadS [PutBucketMetricsConfiguration]
$creadList :: ReadS [PutBucketMetricsConfiguration]
readsPrec :: Int -> ReadS PutBucketMetricsConfiguration
$creadsPrec :: Int -> ReadS PutBucketMetricsConfiguration
Prelude.Read, Int -> PutBucketMetricsConfiguration -> ShowS
[PutBucketMetricsConfiguration] -> ShowS
PutBucketMetricsConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBucketMetricsConfiguration] -> ShowS
$cshowList :: [PutBucketMetricsConfiguration] -> ShowS
show :: PutBucketMetricsConfiguration -> String
$cshow :: PutBucketMetricsConfiguration -> String
showsPrec :: Int -> PutBucketMetricsConfiguration -> ShowS
$cshowsPrec :: Int -> PutBucketMetricsConfiguration -> ShowS
Prelude.Show, forall x.
Rep PutBucketMetricsConfiguration x
-> PutBucketMetricsConfiguration
forall x.
PutBucketMetricsConfiguration
-> Rep PutBucketMetricsConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutBucketMetricsConfiguration x
-> PutBucketMetricsConfiguration
$cfrom :: forall x.
PutBucketMetricsConfiguration
-> Rep PutBucketMetricsConfiguration x
Prelude.Generic)
newPutBucketMetricsConfiguration ::
BucketName ->
Prelude.Text ->
MetricsConfiguration ->
PutBucketMetricsConfiguration
newPutBucketMetricsConfiguration :: BucketName
-> Text -> MetricsConfiguration -> PutBucketMetricsConfiguration
newPutBucketMetricsConfiguration
BucketName
pBucket_
Text
pId_
MetricsConfiguration
pMetricsConfiguration_ =
PutBucketMetricsConfiguration'
{ $sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: Maybe Text
expectedBucketOwner =
forall a. Maybe a
Prelude.Nothing,
$sel:bucket:PutBucketMetricsConfiguration' :: BucketName
bucket = BucketName
pBucket_,
$sel:id:PutBucketMetricsConfiguration' :: Text
id = Text
pId_,
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: MetricsConfiguration
metricsConfiguration =
MetricsConfiguration
pMetricsConfiguration_
}
putBucketMetricsConfiguration_expectedBucketOwner :: Lens.Lens' PutBucketMetricsConfiguration (Prelude.Maybe Prelude.Text)
putBucketMetricsConfiguration_expectedBucketOwner :: Lens' PutBucketMetricsConfiguration (Maybe Text)
putBucketMetricsConfiguration_expectedBucketOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketMetricsConfiguration' {Maybe Text
expectedBucketOwner :: Maybe Text
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
expectedBucketOwner} -> Maybe Text
expectedBucketOwner) (\s :: PutBucketMetricsConfiguration
s@PutBucketMetricsConfiguration' {} Maybe Text
a -> PutBucketMetricsConfiguration
s {$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: Maybe Text
expectedBucketOwner = Maybe Text
a} :: PutBucketMetricsConfiguration)
putBucketMetricsConfiguration_bucket :: Lens.Lens' PutBucketMetricsConfiguration BucketName
putBucketMetricsConfiguration_bucket :: Lens' PutBucketMetricsConfiguration BucketName
putBucketMetricsConfiguration_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketMetricsConfiguration' {BucketName
bucket :: BucketName
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
bucket} -> BucketName
bucket) (\s :: PutBucketMetricsConfiguration
s@PutBucketMetricsConfiguration' {} BucketName
a -> PutBucketMetricsConfiguration
s {$sel:bucket:PutBucketMetricsConfiguration' :: BucketName
bucket = BucketName
a} :: PutBucketMetricsConfiguration)
putBucketMetricsConfiguration_id :: Lens.Lens' PutBucketMetricsConfiguration Prelude.Text
putBucketMetricsConfiguration_id :: Lens' PutBucketMetricsConfiguration Text
putBucketMetricsConfiguration_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketMetricsConfiguration' {Text
id :: Text
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
id} -> Text
id) (\s :: PutBucketMetricsConfiguration
s@PutBucketMetricsConfiguration' {} Text
a -> PutBucketMetricsConfiguration
s {$sel:id:PutBucketMetricsConfiguration' :: Text
id = Text
a} :: PutBucketMetricsConfiguration)
putBucketMetricsConfiguration_metricsConfiguration :: Lens.Lens' PutBucketMetricsConfiguration MetricsConfiguration
putBucketMetricsConfiguration_metricsConfiguration :: Lens' PutBucketMetricsConfiguration MetricsConfiguration
putBucketMetricsConfiguration_metricsConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketMetricsConfiguration' {MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
metricsConfiguration} -> MetricsConfiguration
metricsConfiguration) (\s :: PutBucketMetricsConfiguration
s@PutBucketMetricsConfiguration' {} MetricsConfiguration
a -> PutBucketMetricsConfiguration
s {$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: MetricsConfiguration
metricsConfiguration = MetricsConfiguration
a} :: PutBucketMetricsConfiguration)
instance
Core.AWSRequest
PutBucketMetricsConfiguration
where
type
AWSResponse PutBucketMetricsConfiguration =
PutBucketMetricsConfigurationResponse
request :: (Service -> Service)
-> PutBucketMetricsConfiguration
-> Request PutBucketMetricsConfiguration
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, ToElement a) => Service -> a -> Request a
Request.putXML (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy PutBucketMetricsConfiguration
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse PutBucketMetricsConfiguration)))
response =
forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull
PutBucketMetricsConfigurationResponse
PutBucketMetricsConfigurationResponse'
instance
Prelude.Hashable
PutBucketMetricsConfiguration
where
hashWithSalt :: Int -> PutBucketMetricsConfiguration -> Int
hashWithSalt Int
_salt PutBucketMetricsConfiguration' {Maybe Text
Text
BucketName
MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
id :: Text
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
expectedBucketOwner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BucketName
bucket
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MetricsConfiguration
metricsConfiguration
instance Prelude.NFData PutBucketMetricsConfiguration where
rnf :: PutBucketMetricsConfiguration -> ()
rnf PutBucketMetricsConfiguration' {Maybe Text
Text
BucketName
MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
id :: Text
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
expectedBucketOwner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf BucketName
bucket
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MetricsConfiguration
metricsConfiguration
instance Data.ToElement PutBucketMetricsConfiguration where
toElement :: PutBucketMetricsConfiguration -> Element
toElement PutBucketMetricsConfiguration' {Maybe Text
Text
BucketName
MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
id :: Text
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
..} =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{http://s3.amazonaws.com/doc/2006-03-01/}MetricsConfiguration"
MetricsConfiguration
metricsConfiguration
instance Data.ToHeaders PutBucketMetricsConfiguration where
toHeaders :: PutBucketMetricsConfiguration -> [Header]
toHeaders PutBucketMetricsConfiguration' {Maybe Text
Text
BucketName
MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
id :: Text
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"x-amz-expected-bucket-owner"
forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# Maybe Text
expectedBucketOwner
]
instance Data.ToPath PutBucketMetricsConfiguration where
toPath :: PutBucketMetricsConfiguration -> ByteString
toPath PutBucketMetricsConfiguration' {Maybe Text
Text
BucketName
MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
id :: Text
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket]
instance Data.ToQuery PutBucketMetricsConfiguration where
toQuery :: PutBucketMetricsConfiguration -> QueryString
toQuery PutBucketMetricsConfiguration' {Maybe Text
Text
BucketName
MetricsConfiguration
metricsConfiguration :: MetricsConfiguration
id :: Text
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:metricsConfiguration:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> MetricsConfiguration
$sel:id:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Text
$sel:bucket:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> BucketName
$sel:expectedBucketOwner:PutBucketMetricsConfiguration' :: PutBucketMetricsConfiguration -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"id" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
id, QueryString
"metrics"]
data PutBucketMetricsConfigurationResponse = PutBucketMetricsConfigurationResponse'
{
}
deriving (PutBucketMetricsConfigurationResponse
-> PutBucketMetricsConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBucketMetricsConfigurationResponse
-> PutBucketMetricsConfigurationResponse -> Bool
$c/= :: PutBucketMetricsConfigurationResponse
-> PutBucketMetricsConfigurationResponse -> Bool
== :: PutBucketMetricsConfigurationResponse
-> PutBucketMetricsConfigurationResponse -> Bool
$c== :: PutBucketMetricsConfigurationResponse
-> PutBucketMetricsConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [PutBucketMetricsConfigurationResponse]
ReadPrec PutBucketMetricsConfigurationResponse
Int -> ReadS PutBucketMetricsConfigurationResponse
ReadS [PutBucketMetricsConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutBucketMetricsConfigurationResponse]
$creadListPrec :: ReadPrec [PutBucketMetricsConfigurationResponse]
readPrec :: ReadPrec PutBucketMetricsConfigurationResponse
$creadPrec :: ReadPrec PutBucketMetricsConfigurationResponse
readList :: ReadS [PutBucketMetricsConfigurationResponse]
$creadList :: ReadS [PutBucketMetricsConfigurationResponse]
readsPrec :: Int -> ReadS PutBucketMetricsConfigurationResponse
$creadsPrec :: Int -> ReadS PutBucketMetricsConfigurationResponse
Prelude.Read, Int -> PutBucketMetricsConfigurationResponse -> ShowS
[PutBucketMetricsConfigurationResponse] -> ShowS
PutBucketMetricsConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBucketMetricsConfigurationResponse] -> ShowS
$cshowList :: [PutBucketMetricsConfigurationResponse] -> ShowS
show :: PutBucketMetricsConfigurationResponse -> String
$cshow :: PutBucketMetricsConfigurationResponse -> String
showsPrec :: Int -> PutBucketMetricsConfigurationResponse -> ShowS
$cshowsPrec :: Int -> PutBucketMetricsConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep PutBucketMetricsConfigurationResponse x
-> PutBucketMetricsConfigurationResponse
forall x.
PutBucketMetricsConfigurationResponse
-> Rep PutBucketMetricsConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutBucketMetricsConfigurationResponse x
-> PutBucketMetricsConfigurationResponse
$cfrom :: forall x.
PutBucketMetricsConfigurationResponse
-> Rep PutBucketMetricsConfigurationResponse x
Prelude.Generic)
newPutBucketMetricsConfigurationResponse ::
PutBucketMetricsConfigurationResponse
newPutBucketMetricsConfigurationResponse :: PutBucketMetricsConfigurationResponse
newPutBucketMetricsConfigurationResponse =
PutBucketMetricsConfigurationResponse
PutBucketMetricsConfigurationResponse'
instance
Prelude.NFData
PutBucketMetricsConfigurationResponse
where
rnf :: PutBucketMetricsConfigurationResponse -> ()
rnf PutBucketMetricsConfigurationResponse
_ = ()