{-# 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.GetBucketWebsite
(
GetBucketWebsite (..),
newGetBucketWebsite,
getBucketWebsite_expectedBucketOwner,
getBucketWebsite_bucket,
GetBucketWebsiteResponse (..),
newGetBucketWebsiteResponse,
getBucketWebsiteResponse_errorDocument,
getBucketWebsiteResponse_indexDocument,
getBucketWebsiteResponse_redirectAllRequestsTo,
getBucketWebsiteResponse_routingRules,
getBucketWebsiteResponse_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
data GetBucketWebsite = GetBucketWebsite'
{
GetBucketWebsite -> Maybe Text
expectedBucketOwner :: Prelude.Maybe Prelude.Text,
GetBucketWebsite -> BucketName
bucket :: BucketName
}
deriving (GetBucketWebsite -> GetBucketWebsite -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBucketWebsite -> GetBucketWebsite -> Bool
$c/= :: GetBucketWebsite -> GetBucketWebsite -> Bool
== :: GetBucketWebsite -> GetBucketWebsite -> Bool
$c== :: GetBucketWebsite -> GetBucketWebsite -> Bool
Prelude.Eq, ReadPrec [GetBucketWebsite]
ReadPrec GetBucketWebsite
Int -> ReadS GetBucketWebsite
ReadS [GetBucketWebsite]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBucketWebsite]
$creadListPrec :: ReadPrec [GetBucketWebsite]
readPrec :: ReadPrec GetBucketWebsite
$creadPrec :: ReadPrec GetBucketWebsite
readList :: ReadS [GetBucketWebsite]
$creadList :: ReadS [GetBucketWebsite]
readsPrec :: Int -> ReadS GetBucketWebsite
$creadsPrec :: Int -> ReadS GetBucketWebsite
Prelude.Read, Int -> GetBucketWebsite -> ShowS
[GetBucketWebsite] -> ShowS
GetBucketWebsite -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBucketWebsite] -> ShowS
$cshowList :: [GetBucketWebsite] -> ShowS
show :: GetBucketWebsite -> String
$cshow :: GetBucketWebsite -> String
showsPrec :: Int -> GetBucketWebsite -> ShowS
$cshowsPrec :: Int -> GetBucketWebsite -> ShowS
Prelude.Show, forall x. Rep GetBucketWebsite x -> GetBucketWebsite
forall x. GetBucketWebsite -> Rep GetBucketWebsite x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBucketWebsite x -> GetBucketWebsite
$cfrom :: forall x. GetBucketWebsite -> Rep GetBucketWebsite x
Prelude.Generic)
newGetBucketWebsite ::
BucketName ->
GetBucketWebsite
newGetBucketWebsite :: BucketName -> GetBucketWebsite
newGetBucketWebsite BucketName
pBucket_ =
GetBucketWebsite'
{ $sel:expectedBucketOwner:GetBucketWebsite' :: Maybe Text
expectedBucketOwner =
forall a. Maybe a
Prelude.Nothing,
$sel:bucket:GetBucketWebsite' :: BucketName
bucket = BucketName
pBucket_
}
getBucketWebsite_expectedBucketOwner :: Lens.Lens' GetBucketWebsite (Prelude.Maybe Prelude.Text)
getBucketWebsite_expectedBucketOwner :: Lens' GetBucketWebsite (Maybe Text)
getBucketWebsite_expectedBucketOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsite' {Maybe Text
expectedBucketOwner :: Maybe Text
$sel:expectedBucketOwner:GetBucketWebsite' :: GetBucketWebsite -> Maybe Text
expectedBucketOwner} -> Maybe Text
expectedBucketOwner) (\s :: GetBucketWebsite
s@GetBucketWebsite' {} Maybe Text
a -> GetBucketWebsite
s {$sel:expectedBucketOwner:GetBucketWebsite' :: Maybe Text
expectedBucketOwner = Maybe Text
a} :: GetBucketWebsite)
getBucketWebsite_bucket :: Lens.Lens' GetBucketWebsite BucketName
getBucketWebsite_bucket :: Lens' GetBucketWebsite BucketName
getBucketWebsite_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsite' {BucketName
bucket :: BucketName
$sel:bucket:GetBucketWebsite' :: GetBucketWebsite -> BucketName
bucket} -> BucketName
bucket) (\s :: GetBucketWebsite
s@GetBucketWebsite' {} BucketName
a -> GetBucketWebsite
s {$sel:bucket:GetBucketWebsite' :: BucketName
bucket = BucketName
a} :: GetBucketWebsite)
instance Core.AWSRequest GetBucketWebsite where
type
AWSResponse GetBucketWebsite =
GetBucketWebsiteResponse
request :: (Service -> Service)
-> GetBucketWebsite -> Request GetBucketWebsite
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 GetBucketWebsite
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetBucketWebsite)))
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 ErrorDocument
-> Maybe IndexDocument
-> Maybe RedirectAllRequestsTo
-> Maybe [RoutingRule]
-> Int
-> GetBucketWebsiteResponse
GetBucketWebsiteResponse'
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
"ErrorDocument")
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
"IndexDocument")
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
"RedirectAllRequestsTo")
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
"RoutingRules"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m 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
"RoutingRule")
)
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 GetBucketWebsite where
hashWithSalt :: Int -> GetBucketWebsite -> Int
hashWithSalt Int
_salt GetBucketWebsite' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketWebsite' :: GetBucketWebsite -> BucketName
$sel:expectedBucketOwner:GetBucketWebsite' :: GetBucketWebsite -> 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
instance Prelude.NFData GetBucketWebsite where
rnf :: GetBucketWebsite -> ()
rnf GetBucketWebsite' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketWebsite' :: GetBucketWebsite -> BucketName
$sel:expectedBucketOwner:GetBucketWebsite' :: GetBucketWebsite -> 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
instance Data.ToHeaders GetBucketWebsite where
toHeaders :: GetBucketWebsite -> ResponseHeaders
toHeaders GetBucketWebsite' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketWebsite' :: GetBucketWebsite -> BucketName
$sel:expectedBucketOwner:GetBucketWebsite' :: GetBucketWebsite -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"x-amz-expected-bucket-owner"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
expectedBucketOwner
]
instance Data.ToPath GetBucketWebsite where
toPath :: GetBucketWebsite -> ByteString
toPath GetBucketWebsite' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketWebsite' :: GetBucketWebsite -> BucketName
$sel:expectedBucketOwner:GetBucketWebsite' :: GetBucketWebsite -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket]
instance Data.ToQuery GetBucketWebsite where
toQuery :: GetBucketWebsite -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const (forall a. Monoid a => [a] -> a
Prelude.mconcat [QueryString
"website"])
data GetBucketWebsiteResponse = GetBucketWebsiteResponse'
{
GetBucketWebsiteResponse -> Maybe ErrorDocument
errorDocument :: Prelude.Maybe ErrorDocument,
GetBucketWebsiteResponse -> Maybe IndexDocument
indexDocument :: Prelude.Maybe IndexDocument,
GetBucketWebsiteResponse -> Maybe RedirectAllRequestsTo
redirectAllRequestsTo :: Prelude.Maybe RedirectAllRequestsTo,
GetBucketWebsiteResponse -> Maybe [RoutingRule]
routingRules :: Prelude.Maybe [RoutingRule],
GetBucketWebsiteResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetBucketWebsiteResponse -> GetBucketWebsiteResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBucketWebsiteResponse -> GetBucketWebsiteResponse -> Bool
$c/= :: GetBucketWebsiteResponse -> GetBucketWebsiteResponse -> Bool
== :: GetBucketWebsiteResponse -> GetBucketWebsiteResponse -> Bool
$c== :: GetBucketWebsiteResponse -> GetBucketWebsiteResponse -> Bool
Prelude.Eq, ReadPrec [GetBucketWebsiteResponse]
ReadPrec GetBucketWebsiteResponse
Int -> ReadS GetBucketWebsiteResponse
ReadS [GetBucketWebsiteResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBucketWebsiteResponse]
$creadListPrec :: ReadPrec [GetBucketWebsiteResponse]
readPrec :: ReadPrec GetBucketWebsiteResponse
$creadPrec :: ReadPrec GetBucketWebsiteResponse
readList :: ReadS [GetBucketWebsiteResponse]
$creadList :: ReadS [GetBucketWebsiteResponse]
readsPrec :: Int -> ReadS GetBucketWebsiteResponse
$creadsPrec :: Int -> ReadS GetBucketWebsiteResponse
Prelude.Read, Int -> GetBucketWebsiteResponse -> ShowS
[GetBucketWebsiteResponse] -> ShowS
GetBucketWebsiteResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBucketWebsiteResponse] -> ShowS
$cshowList :: [GetBucketWebsiteResponse] -> ShowS
show :: GetBucketWebsiteResponse -> String
$cshow :: GetBucketWebsiteResponse -> String
showsPrec :: Int -> GetBucketWebsiteResponse -> ShowS
$cshowsPrec :: Int -> GetBucketWebsiteResponse -> ShowS
Prelude.Show, forall x.
Rep GetBucketWebsiteResponse x -> GetBucketWebsiteResponse
forall x.
GetBucketWebsiteResponse -> Rep GetBucketWebsiteResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetBucketWebsiteResponse x -> GetBucketWebsiteResponse
$cfrom :: forall x.
GetBucketWebsiteResponse -> Rep GetBucketWebsiteResponse x
Prelude.Generic)
newGetBucketWebsiteResponse ::
Prelude.Int ->
GetBucketWebsiteResponse
newGetBucketWebsiteResponse :: Int -> GetBucketWebsiteResponse
newGetBucketWebsiteResponse Int
pHttpStatus_ =
GetBucketWebsiteResponse'
{ $sel:errorDocument:GetBucketWebsiteResponse' :: Maybe ErrorDocument
errorDocument =
forall a. Maybe a
Prelude.Nothing,
$sel:indexDocument:GetBucketWebsiteResponse' :: Maybe IndexDocument
indexDocument = forall a. Maybe a
Prelude.Nothing,
$sel:redirectAllRequestsTo:GetBucketWebsiteResponse' :: Maybe RedirectAllRequestsTo
redirectAllRequestsTo = forall a. Maybe a
Prelude.Nothing,
$sel:routingRules:GetBucketWebsiteResponse' :: Maybe [RoutingRule]
routingRules = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetBucketWebsiteResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getBucketWebsiteResponse_errorDocument :: Lens.Lens' GetBucketWebsiteResponse (Prelude.Maybe ErrorDocument)
getBucketWebsiteResponse_errorDocument :: Lens' GetBucketWebsiteResponse (Maybe ErrorDocument)
getBucketWebsiteResponse_errorDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsiteResponse' {Maybe ErrorDocument
errorDocument :: Maybe ErrorDocument
$sel:errorDocument:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe ErrorDocument
errorDocument} -> Maybe ErrorDocument
errorDocument) (\s :: GetBucketWebsiteResponse
s@GetBucketWebsiteResponse' {} Maybe ErrorDocument
a -> GetBucketWebsiteResponse
s {$sel:errorDocument:GetBucketWebsiteResponse' :: Maybe ErrorDocument
errorDocument = Maybe ErrorDocument
a} :: GetBucketWebsiteResponse)
getBucketWebsiteResponse_indexDocument :: Lens.Lens' GetBucketWebsiteResponse (Prelude.Maybe IndexDocument)
getBucketWebsiteResponse_indexDocument :: Lens' GetBucketWebsiteResponse (Maybe IndexDocument)
getBucketWebsiteResponse_indexDocument = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsiteResponse' {Maybe IndexDocument
indexDocument :: Maybe IndexDocument
$sel:indexDocument:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe IndexDocument
indexDocument} -> Maybe IndexDocument
indexDocument) (\s :: GetBucketWebsiteResponse
s@GetBucketWebsiteResponse' {} Maybe IndexDocument
a -> GetBucketWebsiteResponse
s {$sel:indexDocument:GetBucketWebsiteResponse' :: Maybe IndexDocument
indexDocument = Maybe IndexDocument
a} :: GetBucketWebsiteResponse)
getBucketWebsiteResponse_redirectAllRequestsTo :: Lens.Lens' GetBucketWebsiteResponse (Prelude.Maybe RedirectAllRequestsTo)
getBucketWebsiteResponse_redirectAllRequestsTo :: Lens' GetBucketWebsiteResponse (Maybe RedirectAllRequestsTo)
getBucketWebsiteResponse_redirectAllRequestsTo = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsiteResponse' {Maybe RedirectAllRequestsTo
redirectAllRequestsTo :: Maybe RedirectAllRequestsTo
$sel:redirectAllRequestsTo:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe RedirectAllRequestsTo
redirectAllRequestsTo} -> Maybe RedirectAllRequestsTo
redirectAllRequestsTo) (\s :: GetBucketWebsiteResponse
s@GetBucketWebsiteResponse' {} Maybe RedirectAllRequestsTo
a -> GetBucketWebsiteResponse
s {$sel:redirectAllRequestsTo:GetBucketWebsiteResponse' :: Maybe RedirectAllRequestsTo
redirectAllRequestsTo = Maybe RedirectAllRequestsTo
a} :: GetBucketWebsiteResponse)
getBucketWebsiteResponse_routingRules :: Lens.Lens' GetBucketWebsiteResponse (Prelude.Maybe [RoutingRule])
getBucketWebsiteResponse_routingRules :: Lens' GetBucketWebsiteResponse (Maybe [RoutingRule])
getBucketWebsiteResponse_routingRules = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsiteResponse' {Maybe [RoutingRule]
routingRules :: Maybe [RoutingRule]
$sel:routingRules:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe [RoutingRule]
routingRules} -> Maybe [RoutingRule]
routingRules) (\s :: GetBucketWebsiteResponse
s@GetBucketWebsiteResponse' {} Maybe [RoutingRule]
a -> GetBucketWebsiteResponse
s {$sel:routingRules:GetBucketWebsiteResponse' :: Maybe [RoutingRule]
routingRules = Maybe [RoutingRule]
a} :: GetBucketWebsiteResponse) 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
getBucketWebsiteResponse_httpStatus :: Lens.Lens' GetBucketWebsiteResponse Prelude.Int
getBucketWebsiteResponse_httpStatus :: Lens' GetBucketWebsiteResponse Int
getBucketWebsiteResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketWebsiteResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetBucketWebsiteResponse
s@GetBucketWebsiteResponse' {} Int
a -> GetBucketWebsiteResponse
s {$sel:httpStatus:GetBucketWebsiteResponse' :: Int
httpStatus = Int
a} :: GetBucketWebsiteResponse)
instance Prelude.NFData GetBucketWebsiteResponse where
rnf :: GetBucketWebsiteResponse -> ()
rnf GetBucketWebsiteResponse' {Int
Maybe [RoutingRule]
Maybe ErrorDocument
Maybe IndexDocument
Maybe RedirectAllRequestsTo
httpStatus :: Int
routingRules :: Maybe [RoutingRule]
redirectAllRequestsTo :: Maybe RedirectAllRequestsTo
indexDocument :: Maybe IndexDocument
errorDocument :: Maybe ErrorDocument
$sel:httpStatus:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Int
$sel:routingRules:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe [RoutingRule]
$sel:redirectAllRequestsTo:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe RedirectAllRequestsTo
$sel:indexDocument:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe IndexDocument
$sel:errorDocument:GetBucketWebsiteResponse' :: GetBucketWebsiteResponse -> Maybe ErrorDocument
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ErrorDocument
errorDocument
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IndexDocument
indexDocument
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RedirectAllRequestsTo
redirectAllRequestsTo
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [RoutingRule]
routingRules
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus