{-# 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.Lightsail.CreateBucket
(
CreateBucket (..),
newCreateBucket,
createBucket_enableObjectVersioning,
createBucket_tags,
createBucket_bucketName,
createBucket_bundleId,
CreateBucketResponse (..),
newCreateBucketResponse,
createBucketResponse_bucket,
createBucketResponse_operations,
createBucketResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lightsail.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateBucket = CreateBucket'
{
CreateBucket -> Maybe Bool
enableObjectVersioning :: Prelude.Maybe Prelude.Bool,
CreateBucket -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateBucket -> Text
bucketName :: Prelude.Text,
CreateBucket -> Text
bundleId :: Prelude.Text
}
deriving (CreateBucket -> CreateBucket -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateBucket -> CreateBucket -> Bool
$c/= :: CreateBucket -> CreateBucket -> Bool
== :: CreateBucket -> CreateBucket -> Bool
$c== :: CreateBucket -> CreateBucket -> Bool
Prelude.Eq, ReadPrec [CreateBucket]
ReadPrec CreateBucket
Int -> ReadS CreateBucket
ReadS [CreateBucket]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateBucket]
$creadListPrec :: ReadPrec [CreateBucket]
readPrec :: ReadPrec CreateBucket
$creadPrec :: ReadPrec CreateBucket
readList :: ReadS [CreateBucket]
$creadList :: ReadS [CreateBucket]
readsPrec :: Int -> ReadS CreateBucket
$creadsPrec :: Int -> ReadS CreateBucket
Prelude.Read, Int -> CreateBucket -> ShowS
[CreateBucket] -> ShowS
CreateBucket -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateBucket] -> ShowS
$cshowList :: [CreateBucket] -> ShowS
show :: CreateBucket -> String
$cshow :: CreateBucket -> String
showsPrec :: Int -> CreateBucket -> ShowS
$cshowsPrec :: Int -> CreateBucket -> ShowS
Prelude.Show, forall x. Rep CreateBucket x -> CreateBucket
forall x. CreateBucket -> Rep CreateBucket x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateBucket x -> CreateBucket
$cfrom :: forall x. CreateBucket -> Rep CreateBucket x
Prelude.Generic)
newCreateBucket ::
Prelude.Text ->
Prelude.Text ->
CreateBucket
newCreateBucket :: Text -> Text -> CreateBucket
newCreateBucket Text
pBucketName_ Text
pBundleId_ =
CreateBucket'
{ $sel:enableObjectVersioning:CreateBucket' :: Maybe Bool
enableObjectVersioning =
forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateBucket' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:bucketName:CreateBucket' :: Text
bucketName = Text
pBucketName_,
$sel:bundleId:CreateBucket' :: Text
bundleId = Text
pBundleId_
}
createBucket_enableObjectVersioning :: Lens.Lens' CreateBucket (Prelude.Maybe Prelude.Bool)
createBucket_enableObjectVersioning :: Lens' CreateBucket (Maybe Bool)
createBucket_enableObjectVersioning = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucket' {Maybe Bool
enableObjectVersioning :: Maybe Bool
$sel:enableObjectVersioning:CreateBucket' :: CreateBucket -> Maybe Bool
enableObjectVersioning} -> Maybe Bool
enableObjectVersioning) (\s :: CreateBucket
s@CreateBucket' {} Maybe Bool
a -> CreateBucket
s {$sel:enableObjectVersioning:CreateBucket' :: Maybe Bool
enableObjectVersioning = Maybe Bool
a} :: CreateBucket)
createBucket_tags :: Lens.Lens' CreateBucket (Prelude.Maybe [Tag])
createBucket_tags :: Lens' CreateBucket (Maybe [Tag])
createBucket_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucket' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateBucket' :: CreateBucket -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateBucket
s@CreateBucket' {} Maybe [Tag]
a -> CreateBucket
s {$sel:tags:CreateBucket' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateBucket) 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
createBucket_bucketName :: Lens.Lens' CreateBucket Prelude.Text
createBucket_bucketName :: Lens' CreateBucket Text
createBucket_bucketName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucket' {Text
bucketName :: Text
$sel:bucketName:CreateBucket' :: CreateBucket -> Text
bucketName} -> Text
bucketName) (\s :: CreateBucket
s@CreateBucket' {} Text
a -> CreateBucket
s {$sel:bucketName:CreateBucket' :: Text
bucketName = Text
a} :: CreateBucket)
createBucket_bundleId :: Lens.Lens' CreateBucket Prelude.Text
createBucket_bundleId :: Lens' CreateBucket Text
createBucket_bundleId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucket' {Text
bundleId :: Text
$sel:bundleId:CreateBucket' :: CreateBucket -> Text
bundleId} -> Text
bundleId) (\s :: CreateBucket
s@CreateBucket' {} Text
a -> CreateBucket
s {$sel:bundleId:CreateBucket' :: Text
bundleId = Text
a} :: CreateBucket)
instance Core.AWSRequest CreateBucket where
type AWSResponse CreateBucket = CreateBucketResponse
request :: (Service -> Service) -> CreateBucket -> Request CreateBucket
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateBucket
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateBucket)))
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 Bucket -> Maybe [Operation] -> Int -> CreateBucketResponse
CreateBucketResponse'
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
"bucket")
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
"operations" 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 CreateBucket where
hashWithSalt :: Int -> CreateBucket -> Int
hashWithSalt Int
_salt CreateBucket' {Maybe Bool
Maybe [Tag]
Text
bundleId :: Text
bucketName :: Text
tags :: Maybe [Tag]
enableObjectVersioning :: Maybe Bool
$sel:bundleId:CreateBucket' :: CreateBucket -> Text
$sel:bucketName:CreateBucket' :: CreateBucket -> Text
$sel:tags:CreateBucket' :: CreateBucket -> Maybe [Tag]
$sel:enableObjectVersioning:CreateBucket' :: CreateBucket -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableObjectVersioning
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
bucketName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
bundleId
instance Prelude.NFData CreateBucket where
rnf :: CreateBucket -> ()
rnf CreateBucket' {Maybe Bool
Maybe [Tag]
Text
bundleId :: Text
bucketName :: Text
tags :: Maybe [Tag]
enableObjectVersioning :: Maybe Bool
$sel:bundleId:CreateBucket' :: CreateBucket -> Text
$sel:bucketName:CreateBucket' :: CreateBucket -> Text
$sel:tags:CreateBucket' :: CreateBucket -> Maybe [Tag]
$sel:enableObjectVersioning:CreateBucket' :: CreateBucket -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enableObjectVersioning
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
bucketName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
bundleId
instance Data.ToHeaders CreateBucket where
toHeaders :: CreateBucket -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"Lightsail_20161128.CreateBucket" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateBucket where
toJSON :: CreateBucket -> Value
toJSON CreateBucket' {Maybe Bool
Maybe [Tag]
Text
bundleId :: Text
bucketName :: Text
tags :: Maybe [Tag]
enableObjectVersioning :: Maybe Bool
$sel:bundleId:CreateBucket' :: CreateBucket -> Text
$sel:bucketName:CreateBucket' :: CreateBucket -> Text
$sel:tags:CreateBucket' :: CreateBucket -> Maybe [Tag]
$sel:enableObjectVersioning:CreateBucket' :: CreateBucket -> Maybe Bool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"enableObjectVersioning" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
enableObjectVersioning,
(Key
"tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"bucketName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
bucketName),
forall a. a -> Maybe a
Prelude.Just (Key
"bundleId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
bundleId)
]
)
instance Data.ToPath CreateBucket where
toPath :: CreateBucket -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateBucket where
toQuery :: CreateBucket -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateBucketResponse = CreateBucketResponse'
{
CreateBucketResponse -> Maybe Bucket
bucket :: Prelude.Maybe Bucket,
CreateBucketResponse -> Maybe [Operation]
operations :: Prelude.Maybe [Operation],
CreateBucketResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateBucketResponse -> CreateBucketResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateBucketResponse -> CreateBucketResponse -> Bool
$c/= :: CreateBucketResponse -> CreateBucketResponse -> Bool
== :: CreateBucketResponse -> CreateBucketResponse -> Bool
$c== :: CreateBucketResponse -> CreateBucketResponse -> Bool
Prelude.Eq, ReadPrec [CreateBucketResponse]
ReadPrec CreateBucketResponse
Int -> ReadS CreateBucketResponse
ReadS [CreateBucketResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateBucketResponse]
$creadListPrec :: ReadPrec [CreateBucketResponse]
readPrec :: ReadPrec CreateBucketResponse
$creadPrec :: ReadPrec CreateBucketResponse
readList :: ReadS [CreateBucketResponse]
$creadList :: ReadS [CreateBucketResponse]
readsPrec :: Int -> ReadS CreateBucketResponse
$creadsPrec :: Int -> ReadS CreateBucketResponse
Prelude.Read, Int -> CreateBucketResponse -> ShowS
[CreateBucketResponse] -> ShowS
CreateBucketResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateBucketResponse] -> ShowS
$cshowList :: [CreateBucketResponse] -> ShowS
show :: CreateBucketResponse -> String
$cshow :: CreateBucketResponse -> String
showsPrec :: Int -> CreateBucketResponse -> ShowS
$cshowsPrec :: Int -> CreateBucketResponse -> ShowS
Prelude.Show, forall x. Rep CreateBucketResponse x -> CreateBucketResponse
forall x. CreateBucketResponse -> Rep CreateBucketResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateBucketResponse x -> CreateBucketResponse
$cfrom :: forall x. CreateBucketResponse -> Rep CreateBucketResponse x
Prelude.Generic)
newCreateBucketResponse ::
Prelude.Int ->
CreateBucketResponse
newCreateBucketResponse :: Int -> CreateBucketResponse
newCreateBucketResponse Int
pHttpStatus_ =
CreateBucketResponse'
{ $sel:bucket:CreateBucketResponse' :: Maybe Bucket
bucket = forall a. Maybe a
Prelude.Nothing,
$sel:operations:CreateBucketResponse' :: Maybe [Operation]
operations = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateBucketResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createBucketResponse_bucket :: Lens.Lens' CreateBucketResponse (Prelude.Maybe Bucket)
createBucketResponse_bucket :: Lens' CreateBucketResponse (Maybe Bucket)
createBucketResponse_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucketResponse' {Maybe Bucket
bucket :: Maybe Bucket
$sel:bucket:CreateBucketResponse' :: CreateBucketResponse -> Maybe Bucket
bucket} -> Maybe Bucket
bucket) (\s :: CreateBucketResponse
s@CreateBucketResponse' {} Maybe Bucket
a -> CreateBucketResponse
s {$sel:bucket:CreateBucketResponse' :: Maybe Bucket
bucket = Maybe Bucket
a} :: CreateBucketResponse)
createBucketResponse_operations :: Lens.Lens' CreateBucketResponse (Prelude.Maybe [Operation])
createBucketResponse_operations :: Lens' CreateBucketResponse (Maybe [Operation])
createBucketResponse_operations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucketResponse' {Maybe [Operation]
operations :: Maybe [Operation]
$sel:operations:CreateBucketResponse' :: CreateBucketResponse -> Maybe [Operation]
operations} -> Maybe [Operation]
operations) (\s :: CreateBucketResponse
s@CreateBucketResponse' {} Maybe [Operation]
a -> CreateBucketResponse
s {$sel:operations:CreateBucketResponse' :: Maybe [Operation]
operations = Maybe [Operation]
a} :: CreateBucketResponse) 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
createBucketResponse_httpStatus :: Lens.Lens' CreateBucketResponse Prelude.Int
createBucketResponse_httpStatus :: Lens' CreateBucketResponse Int
createBucketResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBucketResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateBucketResponse' :: CreateBucketResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateBucketResponse
s@CreateBucketResponse' {} Int
a -> CreateBucketResponse
s {$sel:httpStatus:CreateBucketResponse' :: Int
httpStatus = Int
a} :: CreateBucketResponse)
instance Prelude.NFData CreateBucketResponse where
rnf :: CreateBucketResponse -> ()
rnf CreateBucketResponse' {Int
Maybe [Operation]
Maybe Bucket
httpStatus :: Int
operations :: Maybe [Operation]
bucket :: Maybe Bucket
$sel:httpStatus:CreateBucketResponse' :: CreateBucketResponse -> Int
$sel:operations:CreateBucketResponse' :: CreateBucketResponse -> Maybe [Operation]
$sel:bucket:CreateBucketResponse' :: CreateBucketResponse -> Maybe Bucket
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bucket
bucket
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Operation]
operations
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus