{-# 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.MigrationHubStrategy.StartAssessment
(
StartAssessment (..),
newStartAssessment,
startAssessment_assessmentTargets,
startAssessment_s3bucketForAnalysisData,
startAssessment_s3bucketForReportData,
StartAssessmentResponse (..),
newStartAssessmentResponse,
startAssessmentResponse_assessmentId,
startAssessmentResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MigrationHubStrategy.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data StartAssessment = StartAssessment'
{
StartAssessment -> Maybe [AssessmentTarget]
assessmentTargets :: Prelude.Maybe [AssessmentTarget],
StartAssessment -> Maybe Text
s3bucketForAnalysisData :: Prelude.Maybe Prelude.Text,
StartAssessment -> Maybe Text
s3bucketForReportData :: Prelude.Maybe Prelude.Text
}
deriving (StartAssessment -> StartAssessment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartAssessment -> StartAssessment -> Bool
$c/= :: StartAssessment -> StartAssessment -> Bool
== :: StartAssessment -> StartAssessment -> Bool
$c== :: StartAssessment -> StartAssessment -> Bool
Prelude.Eq, ReadPrec [StartAssessment]
ReadPrec StartAssessment
Int -> ReadS StartAssessment
ReadS [StartAssessment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartAssessment]
$creadListPrec :: ReadPrec [StartAssessment]
readPrec :: ReadPrec StartAssessment
$creadPrec :: ReadPrec StartAssessment
readList :: ReadS [StartAssessment]
$creadList :: ReadS [StartAssessment]
readsPrec :: Int -> ReadS StartAssessment
$creadsPrec :: Int -> ReadS StartAssessment
Prelude.Read, Int -> StartAssessment -> ShowS
[StartAssessment] -> ShowS
StartAssessment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartAssessment] -> ShowS
$cshowList :: [StartAssessment] -> ShowS
show :: StartAssessment -> String
$cshow :: StartAssessment -> String
showsPrec :: Int -> StartAssessment -> ShowS
$cshowsPrec :: Int -> StartAssessment -> ShowS
Prelude.Show, forall x. Rep StartAssessment x -> StartAssessment
forall x. StartAssessment -> Rep StartAssessment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartAssessment x -> StartAssessment
$cfrom :: forall x. StartAssessment -> Rep StartAssessment x
Prelude.Generic)
newStartAssessment ::
StartAssessment
newStartAssessment :: StartAssessment
newStartAssessment =
StartAssessment'
{ $sel:assessmentTargets:StartAssessment' :: Maybe [AssessmentTarget]
assessmentTargets =
forall a. Maybe a
Prelude.Nothing,
$sel:s3bucketForAnalysisData:StartAssessment' :: Maybe Text
s3bucketForAnalysisData = forall a. Maybe a
Prelude.Nothing,
$sel:s3bucketForReportData:StartAssessment' :: Maybe Text
s3bucketForReportData = forall a. Maybe a
Prelude.Nothing
}
startAssessment_assessmentTargets :: Lens.Lens' StartAssessment (Prelude.Maybe [AssessmentTarget])
startAssessment_assessmentTargets :: Lens' StartAssessment (Maybe [AssessmentTarget])
startAssessment_assessmentTargets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartAssessment' {Maybe [AssessmentTarget]
assessmentTargets :: Maybe [AssessmentTarget]
$sel:assessmentTargets:StartAssessment' :: StartAssessment -> Maybe [AssessmentTarget]
assessmentTargets} -> Maybe [AssessmentTarget]
assessmentTargets) (\s :: StartAssessment
s@StartAssessment' {} Maybe [AssessmentTarget]
a -> StartAssessment
s {$sel:assessmentTargets:StartAssessment' :: Maybe [AssessmentTarget]
assessmentTargets = Maybe [AssessmentTarget]
a} :: StartAssessment) 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
startAssessment_s3bucketForAnalysisData :: Lens.Lens' StartAssessment (Prelude.Maybe Prelude.Text)
startAssessment_s3bucketForAnalysisData :: Lens' StartAssessment (Maybe Text)
startAssessment_s3bucketForAnalysisData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartAssessment' {Maybe Text
s3bucketForAnalysisData :: Maybe Text
$sel:s3bucketForAnalysisData:StartAssessment' :: StartAssessment -> Maybe Text
s3bucketForAnalysisData} -> Maybe Text
s3bucketForAnalysisData) (\s :: StartAssessment
s@StartAssessment' {} Maybe Text
a -> StartAssessment
s {$sel:s3bucketForAnalysisData:StartAssessment' :: Maybe Text
s3bucketForAnalysisData = Maybe Text
a} :: StartAssessment)
startAssessment_s3bucketForReportData :: Lens.Lens' StartAssessment (Prelude.Maybe Prelude.Text)
startAssessment_s3bucketForReportData :: Lens' StartAssessment (Maybe Text)
startAssessment_s3bucketForReportData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartAssessment' {Maybe Text
s3bucketForReportData :: Maybe Text
$sel:s3bucketForReportData:StartAssessment' :: StartAssessment -> Maybe Text
s3bucketForReportData} -> Maybe Text
s3bucketForReportData) (\s :: StartAssessment
s@StartAssessment' {} Maybe Text
a -> StartAssessment
s {$sel:s3bucketForReportData:StartAssessment' :: Maybe Text
s3bucketForReportData = Maybe Text
a} :: StartAssessment)
instance Core.AWSRequest StartAssessment where
type
AWSResponse StartAssessment =
StartAssessmentResponse
request :: (Service -> Service) -> StartAssessment -> Request StartAssessment
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 StartAssessment
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartAssessment)))
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 -> StartAssessmentResponse
StartAssessmentResponse'
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
"assessmentId")
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 StartAssessment where
hashWithSalt :: Int -> StartAssessment -> Int
hashWithSalt Int
_salt StartAssessment' {Maybe [AssessmentTarget]
Maybe Text
s3bucketForReportData :: Maybe Text
s3bucketForAnalysisData :: Maybe Text
assessmentTargets :: Maybe [AssessmentTarget]
$sel:s3bucketForReportData:StartAssessment' :: StartAssessment -> Maybe Text
$sel:s3bucketForAnalysisData:StartAssessment' :: StartAssessment -> Maybe Text
$sel:assessmentTargets:StartAssessment' :: StartAssessment -> Maybe [AssessmentTarget]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [AssessmentTarget]
assessmentTargets
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
s3bucketForAnalysisData
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
s3bucketForReportData
instance Prelude.NFData StartAssessment where
rnf :: StartAssessment -> ()
rnf StartAssessment' {Maybe [AssessmentTarget]
Maybe Text
s3bucketForReportData :: Maybe Text
s3bucketForAnalysisData :: Maybe Text
assessmentTargets :: Maybe [AssessmentTarget]
$sel:s3bucketForReportData:StartAssessment' :: StartAssessment -> Maybe Text
$sel:s3bucketForAnalysisData:StartAssessment' :: StartAssessment -> Maybe Text
$sel:assessmentTargets:StartAssessment' :: StartAssessment -> Maybe [AssessmentTarget]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [AssessmentTarget]
assessmentTargets
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
s3bucketForAnalysisData
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
s3bucketForReportData
instance Data.ToHeaders StartAssessment where
toHeaders :: StartAssessment -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON StartAssessment where
toJSON :: StartAssessment -> Value
toJSON StartAssessment' {Maybe [AssessmentTarget]
Maybe Text
s3bucketForReportData :: Maybe Text
s3bucketForAnalysisData :: Maybe Text
assessmentTargets :: Maybe [AssessmentTarget]
$sel:s3bucketForReportData:StartAssessment' :: StartAssessment -> Maybe Text
$sel:s3bucketForAnalysisData:StartAssessment' :: StartAssessment -> Maybe Text
$sel:assessmentTargets:StartAssessment' :: StartAssessment -> Maybe [AssessmentTarget]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"assessmentTargets" 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 [AssessmentTarget]
assessmentTargets,
(Key
"s3bucketForAnalysisData" 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
s3bucketForAnalysisData,
(Key
"s3bucketForReportData" 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
s3bucketForReportData
]
)
instance Data.ToPath StartAssessment where
toPath :: StartAssessment -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/start-assessment"
instance Data.ToQuery StartAssessment where
toQuery :: StartAssessment -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data StartAssessmentResponse = StartAssessmentResponse'
{
StartAssessmentResponse -> Maybe Text
assessmentId :: Prelude.Maybe Prelude.Text,
StartAssessmentResponse -> Int
httpStatus :: Prelude.Int
}
deriving (StartAssessmentResponse -> StartAssessmentResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartAssessmentResponse -> StartAssessmentResponse -> Bool
$c/= :: StartAssessmentResponse -> StartAssessmentResponse -> Bool
== :: StartAssessmentResponse -> StartAssessmentResponse -> Bool
$c== :: StartAssessmentResponse -> StartAssessmentResponse -> Bool
Prelude.Eq, ReadPrec [StartAssessmentResponse]
ReadPrec StartAssessmentResponse
Int -> ReadS StartAssessmentResponse
ReadS [StartAssessmentResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartAssessmentResponse]
$creadListPrec :: ReadPrec [StartAssessmentResponse]
readPrec :: ReadPrec StartAssessmentResponse
$creadPrec :: ReadPrec StartAssessmentResponse
readList :: ReadS [StartAssessmentResponse]
$creadList :: ReadS [StartAssessmentResponse]
readsPrec :: Int -> ReadS StartAssessmentResponse
$creadsPrec :: Int -> ReadS StartAssessmentResponse
Prelude.Read, Int -> StartAssessmentResponse -> ShowS
[StartAssessmentResponse] -> ShowS
StartAssessmentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartAssessmentResponse] -> ShowS
$cshowList :: [StartAssessmentResponse] -> ShowS
show :: StartAssessmentResponse -> String
$cshow :: StartAssessmentResponse -> String
showsPrec :: Int -> StartAssessmentResponse -> ShowS
$cshowsPrec :: Int -> StartAssessmentResponse -> ShowS
Prelude.Show, forall x. Rep StartAssessmentResponse x -> StartAssessmentResponse
forall x. StartAssessmentResponse -> Rep StartAssessmentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartAssessmentResponse x -> StartAssessmentResponse
$cfrom :: forall x. StartAssessmentResponse -> Rep StartAssessmentResponse x
Prelude.Generic)
newStartAssessmentResponse ::
Prelude.Int ->
StartAssessmentResponse
newStartAssessmentResponse :: Int -> StartAssessmentResponse
newStartAssessmentResponse Int
pHttpStatus_ =
StartAssessmentResponse'
{ $sel:assessmentId:StartAssessmentResponse' :: Maybe Text
assessmentId =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:StartAssessmentResponse' :: Int
httpStatus = Int
pHttpStatus_
}
startAssessmentResponse_assessmentId :: Lens.Lens' StartAssessmentResponse (Prelude.Maybe Prelude.Text)
startAssessmentResponse_assessmentId :: Lens' StartAssessmentResponse (Maybe Text)
startAssessmentResponse_assessmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartAssessmentResponse' {Maybe Text
assessmentId :: Maybe Text
$sel:assessmentId:StartAssessmentResponse' :: StartAssessmentResponse -> Maybe Text
assessmentId} -> Maybe Text
assessmentId) (\s :: StartAssessmentResponse
s@StartAssessmentResponse' {} Maybe Text
a -> StartAssessmentResponse
s {$sel:assessmentId:StartAssessmentResponse' :: Maybe Text
assessmentId = Maybe Text
a} :: StartAssessmentResponse)
startAssessmentResponse_httpStatus :: Lens.Lens' StartAssessmentResponse Prelude.Int
startAssessmentResponse_httpStatus :: Lens' StartAssessmentResponse Int
startAssessmentResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartAssessmentResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartAssessmentResponse' :: StartAssessmentResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartAssessmentResponse
s@StartAssessmentResponse' {} Int
a -> StartAssessmentResponse
s {$sel:httpStatus:StartAssessmentResponse' :: Int
httpStatus = Int
a} :: StartAssessmentResponse)
instance Prelude.NFData StartAssessmentResponse where
rnf :: StartAssessmentResponse -> ()
rnf StartAssessmentResponse' {Int
Maybe Text
httpStatus :: Int
assessmentId :: Maybe Text
$sel:httpStatus:StartAssessmentResponse' :: StartAssessmentResponse -> Int
$sel:assessmentId:StartAssessmentResponse' :: StartAssessmentResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
assessmentId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus