{-# 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.DataSync.CreateLocationFsxLustre
(
CreateLocationFsxLustre (..),
newCreateLocationFsxLustre,
createLocationFsxLustre_subdirectory,
createLocationFsxLustre_tags,
createLocationFsxLustre_fsxFilesystemArn,
createLocationFsxLustre_securityGroupArns,
CreateLocationFsxLustreResponse (..),
newCreateLocationFsxLustreResponse,
createLocationFsxLustreResponse_locationArn,
createLocationFsxLustreResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DataSync.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateLocationFsxLustre = CreateLocationFsxLustre'
{
CreateLocationFsxLustre -> Maybe Text
subdirectory :: Prelude.Maybe Prelude.Text,
CreateLocationFsxLustre -> Maybe [TagListEntry]
tags :: Prelude.Maybe [TagListEntry],
CreateLocationFsxLustre -> Text
fsxFilesystemArn :: Prelude.Text,
CreateLocationFsxLustre -> NonEmpty Text
securityGroupArns :: Prelude.NonEmpty Prelude.Text
}
deriving (CreateLocationFsxLustre -> CreateLocationFsxLustre -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateLocationFsxLustre -> CreateLocationFsxLustre -> Bool
$c/= :: CreateLocationFsxLustre -> CreateLocationFsxLustre -> Bool
== :: CreateLocationFsxLustre -> CreateLocationFsxLustre -> Bool
$c== :: CreateLocationFsxLustre -> CreateLocationFsxLustre -> Bool
Prelude.Eq, ReadPrec [CreateLocationFsxLustre]
ReadPrec CreateLocationFsxLustre
Int -> ReadS CreateLocationFsxLustre
ReadS [CreateLocationFsxLustre]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateLocationFsxLustre]
$creadListPrec :: ReadPrec [CreateLocationFsxLustre]
readPrec :: ReadPrec CreateLocationFsxLustre
$creadPrec :: ReadPrec CreateLocationFsxLustre
readList :: ReadS [CreateLocationFsxLustre]
$creadList :: ReadS [CreateLocationFsxLustre]
readsPrec :: Int -> ReadS CreateLocationFsxLustre
$creadsPrec :: Int -> ReadS CreateLocationFsxLustre
Prelude.Read, Int -> CreateLocationFsxLustre -> ShowS
[CreateLocationFsxLustre] -> ShowS
CreateLocationFsxLustre -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateLocationFsxLustre] -> ShowS
$cshowList :: [CreateLocationFsxLustre] -> ShowS
show :: CreateLocationFsxLustre -> String
$cshow :: CreateLocationFsxLustre -> String
showsPrec :: Int -> CreateLocationFsxLustre -> ShowS
$cshowsPrec :: Int -> CreateLocationFsxLustre -> ShowS
Prelude.Show, forall x. Rep CreateLocationFsxLustre x -> CreateLocationFsxLustre
forall x. CreateLocationFsxLustre -> Rep CreateLocationFsxLustre x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateLocationFsxLustre x -> CreateLocationFsxLustre
$cfrom :: forall x. CreateLocationFsxLustre -> Rep CreateLocationFsxLustre x
Prelude.Generic)
newCreateLocationFsxLustre ::
Prelude.Text ->
Prelude.NonEmpty Prelude.Text ->
CreateLocationFsxLustre
newCreateLocationFsxLustre :: Text -> NonEmpty Text -> CreateLocationFsxLustre
newCreateLocationFsxLustre
Text
pFsxFilesystemArn_
NonEmpty Text
pSecurityGroupArns_ =
CreateLocationFsxLustre'
{ $sel:subdirectory:CreateLocationFsxLustre' :: Maybe Text
subdirectory =
forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateLocationFsxLustre' :: Maybe [TagListEntry]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:fsxFilesystemArn:CreateLocationFsxLustre' :: Text
fsxFilesystemArn = Text
pFsxFilesystemArn_,
$sel:securityGroupArns:CreateLocationFsxLustre' :: NonEmpty Text
securityGroupArns =
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pSecurityGroupArns_
}
createLocationFsxLustre_subdirectory :: Lens.Lens' CreateLocationFsxLustre (Prelude.Maybe Prelude.Text)
createLocationFsxLustre_subdirectory :: Lens' CreateLocationFsxLustre (Maybe Text)
createLocationFsxLustre_subdirectory = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLocationFsxLustre' {Maybe Text
subdirectory :: Maybe Text
$sel:subdirectory:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe Text
subdirectory} -> Maybe Text
subdirectory) (\s :: CreateLocationFsxLustre
s@CreateLocationFsxLustre' {} Maybe Text
a -> CreateLocationFsxLustre
s {$sel:subdirectory:CreateLocationFsxLustre' :: Maybe Text
subdirectory = Maybe Text
a} :: CreateLocationFsxLustre)
createLocationFsxLustre_tags :: Lens.Lens' CreateLocationFsxLustre (Prelude.Maybe [TagListEntry])
createLocationFsxLustre_tags :: Lens' CreateLocationFsxLustre (Maybe [TagListEntry])
createLocationFsxLustre_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLocationFsxLustre' {Maybe [TagListEntry]
tags :: Maybe [TagListEntry]
$sel:tags:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe [TagListEntry]
tags} -> Maybe [TagListEntry]
tags) (\s :: CreateLocationFsxLustre
s@CreateLocationFsxLustre' {} Maybe [TagListEntry]
a -> CreateLocationFsxLustre
s {$sel:tags:CreateLocationFsxLustre' :: Maybe [TagListEntry]
tags = Maybe [TagListEntry]
a} :: CreateLocationFsxLustre) 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
createLocationFsxLustre_fsxFilesystemArn :: Lens.Lens' CreateLocationFsxLustre Prelude.Text
createLocationFsxLustre_fsxFilesystemArn :: Lens' CreateLocationFsxLustre Text
createLocationFsxLustre_fsxFilesystemArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLocationFsxLustre' {Text
fsxFilesystemArn :: Text
$sel:fsxFilesystemArn:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Text
fsxFilesystemArn} -> Text
fsxFilesystemArn) (\s :: CreateLocationFsxLustre
s@CreateLocationFsxLustre' {} Text
a -> CreateLocationFsxLustre
s {$sel:fsxFilesystemArn:CreateLocationFsxLustre' :: Text
fsxFilesystemArn = Text
a} :: CreateLocationFsxLustre)
createLocationFsxLustre_securityGroupArns :: Lens.Lens' CreateLocationFsxLustre (Prelude.NonEmpty Prelude.Text)
createLocationFsxLustre_securityGroupArns :: Lens' CreateLocationFsxLustre (NonEmpty Text)
createLocationFsxLustre_securityGroupArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLocationFsxLustre' {NonEmpty Text
securityGroupArns :: NonEmpty Text
$sel:securityGroupArns:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> NonEmpty Text
securityGroupArns} -> NonEmpty Text
securityGroupArns) (\s :: CreateLocationFsxLustre
s@CreateLocationFsxLustre' {} NonEmpty Text
a -> CreateLocationFsxLustre
s {$sel:securityGroupArns:CreateLocationFsxLustre' :: NonEmpty Text
securityGroupArns = NonEmpty Text
a} :: CreateLocationFsxLustre) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest CreateLocationFsxLustre where
type
AWSResponse CreateLocationFsxLustre =
CreateLocationFsxLustreResponse
request :: (Service -> Service)
-> CreateLocationFsxLustre -> Request CreateLocationFsxLustre
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 CreateLocationFsxLustre
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateLocationFsxLustre)))
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 -> Int -> CreateLocationFsxLustreResponse
CreateLocationFsxLustreResponse'
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
"LocationArn")
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 CreateLocationFsxLustre where
hashWithSalt :: Int -> CreateLocationFsxLustre -> Int
hashWithSalt Int
_salt CreateLocationFsxLustre' {Maybe [TagListEntry]
Maybe Text
NonEmpty Text
Text
securityGroupArns :: NonEmpty Text
fsxFilesystemArn :: Text
tags :: Maybe [TagListEntry]
subdirectory :: Maybe Text
$sel:securityGroupArns:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> NonEmpty Text
$sel:fsxFilesystemArn:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Text
$sel:tags:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe [TagListEntry]
$sel:subdirectory:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
subdirectory
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TagListEntry]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fsxFilesystemArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
securityGroupArns
instance Prelude.NFData CreateLocationFsxLustre where
rnf :: CreateLocationFsxLustre -> ()
rnf CreateLocationFsxLustre' {Maybe [TagListEntry]
Maybe Text
NonEmpty Text
Text
securityGroupArns :: NonEmpty Text
fsxFilesystemArn :: Text
tags :: Maybe [TagListEntry]
subdirectory :: Maybe Text
$sel:securityGroupArns:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> NonEmpty Text
$sel:fsxFilesystemArn:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Text
$sel:tags:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe [TagListEntry]
$sel:subdirectory:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
subdirectory
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TagListEntry]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
fsxFilesystemArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty Text
securityGroupArns
instance Data.ToHeaders CreateLocationFsxLustre where
toHeaders :: CreateLocationFsxLustre -> 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
"FmrsService.CreateLocationFsxLustre" ::
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 CreateLocationFsxLustre where
toJSON :: CreateLocationFsxLustre -> Value
toJSON CreateLocationFsxLustre' {Maybe [TagListEntry]
Maybe Text
NonEmpty Text
Text
securityGroupArns :: NonEmpty Text
fsxFilesystemArn :: Text
tags :: Maybe [TagListEntry]
subdirectory :: Maybe Text
$sel:securityGroupArns:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> NonEmpty Text
$sel:fsxFilesystemArn:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Text
$sel:tags:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe [TagListEntry]
$sel:subdirectory:CreateLocationFsxLustre' :: CreateLocationFsxLustre -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Subdirectory" 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 Text
subdirectory,
(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 [TagListEntry]
tags,
forall a. a -> Maybe a
Prelude.Just
(Key
"FsxFilesystemArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
fsxFilesystemArn),
forall a. a -> Maybe a
Prelude.Just
(Key
"SecurityGroupArns" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
securityGroupArns)
]
)
instance Data.ToPath CreateLocationFsxLustre where
toPath :: CreateLocationFsxLustre -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateLocationFsxLustre where
toQuery :: CreateLocationFsxLustre -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateLocationFsxLustreResponse = CreateLocationFsxLustreResponse'
{
CreateLocationFsxLustreResponse -> Maybe Text
locationArn :: Prelude.Maybe Prelude.Text,
CreateLocationFsxLustreResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateLocationFsxLustreResponse
-> CreateLocationFsxLustreResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateLocationFsxLustreResponse
-> CreateLocationFsxLustreResponse -> Bool
$c/= :: CreateLocationFsxLustreResponse
-> CreateLocationFsxLustreResponse -> Bool
== :: CreateLocationFsxLustreResponse
-> CreateLocationFsxLustreResponse -> Bool
$c== :: CreateLocationFsxLustreResponse
-> CreateLocationFsxLustreResponse -> Bool
Prelude.Eq, ReadPrec [CreateLocationFsxLustreResponse]
ReadPrec CreateLocationFsxLustreResponse
Int -> ReadS CreateLocationFsxLustreResponse
ReadS [CreateLocationFsxLustreResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateLocationFsxLustreResponse]
$creadListPrec :: ReadPrec [CreateLocationFsxLustreResponse]
readPrec :: ReadPrec CreateLocationFsxLustreResponse
$creadPrec :: ReadPrec CreateLocationFsxLustreResponse
readList :: ReadS [CreateLocationFsxLustreResponse]
$creadList :: ReadS [CreateLocationFsxLustreResponse]
readsPrec :: Int -> ReadS CreateLocationFsxLustreResponse
$creadsPrec :: Int -> ReadS CreateLocationFsxLustreResponse
Prelude.Read, Int -> CreateLocationFsxLustreResponse -> ShowS
[CreateLocationFsxLustreResponse] -> ShowS
CreateLocationFsxLustreResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateLocationFsxLustreResponse] -> ShowS
$cshowList :: [CreateLocationFsxLustreResponse] -> ShowS
show :: CreateLocationFsxLustreResponse -> String
$cshow :: CreateLocationFsxLustreResponse -> String
showsPrec :: Int -> CreateLocationFsxLustreResponse -> ShowS
$cshowsPrec :: Int -> CreateLocationFsxLustreResponse -> ShowS
Prelude.Show, forall x.
Rep CreateLocationFsxLustreResponse x
-> CreateLocationFsxLustreResponse
forall x.
CreateLocationFsxLustreResponse
-> Rep CreateLocationFsxLustreResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateLocationFsxLustreResponse x
-> CreateLocationFsxLustreResponse
$cfrom :: forall x.
CreateLocationFsxLustreResponse
-> Rep CreateLocationFsxLustreResponse x
Prelude.Generic)
newCreateLocationFsxLustreResponse ::
Prelude.Int ->
CreateLocationFsxLustreResponse
newCreateLocationFsxLustreResponse :: Int -> CreateLocationFsxLustreResponse
newCreateLocationFsxLustreResponse Int
pHttpStatus_ =
CreateLocationFsxLustreResponse'
{ $sel:locationArn:CreateLocationFsxLustreResponse' :: Maybe Text
locationArn =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateLocationFsxLustreResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createLocationFsxLustreResponse_locationArn :: Lens.Lens' CreateLocationFsxLustreResponse (Prelude.Maybe Prelude.Text)
createLocationFsxLustreResponse_locationArn :: Lens' CreateLocationFsxLustreResponse (Maybe Text)
createLocationFsxLustreResponse_locationArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLocationFsxLustreResponse' {Maybe Text
locationArn :: Maybe Text
$sel:locationArn:CreateLocationFsxLustreResponse' :: CreateLocationFsxLustreResponse -> Maybe Text
locationArn} -> Maybe Text
locationArn) (\s :: CreateLocationFsxLustreResponse
s@CreateLocationFsxLustreResponse' {} Maybe Text
a -> CreateLocationFsxLustreResponse
s {$sel:locationArn:CreateLocationFsxLustreResponse' :: Maybe Text
locationArn = Maybe Text
a} :: CreateLocationFsxLustreResponse)
createLocationFsxLustreResponse_httpStatus :: Lens.Lens' CreateLocationFsxLustreResponse Prelude.Int
createLocationFsxLustreResponse_httpStatus :: Lens' CreateLocationFsxLustreResponse Int
createLocationFsxLustreResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateLocationFsxLustreResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateLocationFsxLustreResponse' :: CreateLocationFsxLustreResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateLocationFsxLustreResponse
s@CreateLocationFsxLustreResponse' {} Int
a -> CreateLocationFsxLustreResponse
s {$sel:httpStatus:CreateLocationFsxLustreResponse' :: Int
httpStatus = Int
a} :: CreateLocationFsxLustreResponse)
instance
Prelude.NFData
CreateLocationFsxLustreResponse
where
rnf :: CreateLocationFsxLustreResponse -> ()
rnf CreateLocationFsxLustreResponse' {Int
Maybe Text
httpStatus :: Int
locationArn :: Maybe Text
$sel:httpStatus:CreateLocationFsxLustreResponse' :: CreateLocationFsxLustreResponse -> Int
$sel:locationArn:CreateLocationFsxLustreResponse' :: CreateLocationFsxLustreResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
locationArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus