{-# 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.ApplicationCostProfiler.ImportApplicationUsage
(
ImportApplicationUsage (..),
newImportApplicationUsage,
importApplicationUsage_sourceS3Location,
ImportApplicationUsageResponse (..),
newImportApplicationUsageResponse,
importApplicationUsageResponse_httpStatus,
importApplicationUsageResponse_importId,
)
where
import Amazonka.ApplicationCostProfiler.Types
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
data ImportApplicationUsage = ImportApplicationUsage'
{
ImportApplicationUsage -> SourceS3Location
sourceS3Location :: SourceS3Location
}
deriving (ImportApplicationUsage -> ImportApplicationUsage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImportApplicationUsage -> ImportApplicationUsage -> Bool
$c/= :: ImportApplicationUsage -> ImportApplicationUsage -> Bool
== :: ImportApplicationUsage -> ImportApplicationUsage -> Bool
$c== :: ImportApplicationUsage -> ImportApplicationUsage -> Bool
Prelude.Eq, ReadPrec [ImportApplicationUsage]
ReadPrec ImportApplicationUsage
Int -> ReadS ImportApplicationUsage
ReadS [ImportApplicationUsage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImportApplicationUsage]
$creadListPrec :: ReadPrec [ImportApplicationUsage]
readPrec :: ReadPrec ImportApplicationUsage
$creadPrec :: ReadPrec ImportApplicationUsage
readList :: ReadS [ImportApplicationUsage]
$creadList :: ReadS [ImportApplicationUsage]
readsPrec :: Int -> ReadS ImportApplicationUsage
$creadsPrec :: Int -> ReadS ImportApplicationUsage
Prelude.Read, Int -> ImportApplicationUsage -> ShowS
[ImportApplicationUsage] -> ShowS
ImportApplicationUsage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImportApplicationUsage] -> ShowS
$cshowList :: [ImportApplicationUsage] -> ShowS
show :: ImportApplicationUsage -> String
$cshow :: ImportApplicationUsage -> String
showsPrec :: Int -> ImportApplicationUsage -> ShowS
$cshowsPrec :: Int -> ImportApplicationUsage -> ShowS
Prelude.Show, forall x. Rep ImportApplicationUsage x -> ImportApplicationUsage
forall x. ImportApplicationUsage -> Rep ImportApplicationUsage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ImportApplicationUsage x -> ImportApplicationUsage
$cfrom :: forall x. ImportApplicationUsage -> Rep ImportApplicationUsage x
Prelude.Generic)
newImportApplicationUsage ::
SourceS3Location ->
ImportApplicationUsage
newImportApplicationUsage :: SourceS3Location -> ImportApplicationUsage
newImportApplicationUsage SourceS3Location
pSourceS3Location_ =
ImportApplicationUsage'
{ $sel:sourceS3Location:ImportApplicationUsage' :: SourceS3Location
sourceS3Location =
SourceS3Location
pSourceS3Location_
}
importApplicationUsage_sourceS3Location :: Lens.Lens' ImportApplicationUsage SourceS3Location
importApplicationUsage_sourceS3Location :: Lens' ImportApplicationUsage SourceS3Location
importApplicationUsage_sourceS3Location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportApplicationUsage' {SourceS3Location
sourceS3Location :: SourceS3Location
$sel:sourceS3Location:ImportApplicationUsage' :: ImportApplicationUsage -> SourceS3Location
sourceS3Location} -> SourceS3Location
sourceS3Location) (\s :: ImportApplicationUsage
s@ImportApplicationUsage' {} SourceS3Location
a -> ImportApplicationUsage
s {$sel:sourceS3Location:ImportApplicationUsage' :: SourceS3Location
sourceS3Location = SourceS3Location
a} :: ImportApplicationUsage)
instance Core.AWSRequest ImportApplicationUsage where
type
AWSResponse ImportApplicationUsage =
ImportApplicationUsageResponse
request :: (Service -> Service)
-> ImportApplicationUsage -> Request ImportApplicationUsage
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 ImportApplicationUsage
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse ImportApplicationUsage)))
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 ->
Int -> Text -> ImportApplicationUsageResponse
ImportApplicationUsageResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"importId")
)
instance Prelude.Hashable ImportApplicationUsage where
hashWithSalt :: Int -> ImportApplicationUsage -> Int
hashWithSalt Int
_salt ImportApplicationUsage' {SourceS3Location
sourceS3Location :: SourceS3Location
$sel:sourceS3Location:ImportApplicationUsage' :: ImportApplicationUsage -> SourceS3Location
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` SourceS3Location
sourceS3Location
instance Prelude.NFData ImportApplicationUsage where
rnf :: ImportApplicationUsage -> ()
rnf ImportApplicationUsage' {SourceS3Location
sourceS3Location :: SourceS3Location
$sel:sourceS3Location:ImportApplicationUsage' :: ImportApplicationUsage -> SourceS3Location
..} =
forall a. NFData a => a -> ()
Prelude.rnf SourceS3Location
sourceS3Location
instance Data.ToHeaders ImportApplicationUsage where
toHeaders :: ImportApplicationUsage -> 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 ImportApplicationUsage where
toJSON :: ImportApplicationUsage -> Value
toJSON ImportApplicationUsage' {SourceS3Location
sourceS3Location :: SourceS3Location
$sel:sourceS3Location:ImportApplicationUsage' :: ImportApplicationUsage -> SourceS3Location
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"sourceS3Location" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= SourceS3Location
sourceS3Location)
]
)
instance Data.ToPath ImportApplicationUsage where
toPath :: ImportApplicationUsage -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/importApplicationUsage"
instance Data.ToQuery ImportApplicationUsage where
toQuery :: ImportApplicationUsage -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data ImportApplicationUsageResponse = ImportApplicationUsageResponse'
{
ImportApplicationUsageResponse -> Int
httpStatus :: Prelude.Int,
ImportApplicationUsageResponse -> Text
importId :: Prelude.Text
}
deriving (ImportApplicationUsageResponse
-> ImportApplicationUsageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImportApplicationUsageResponse
-> ImportApplicationUsageResponse -> Bool
$c/= :: ImportApplicationUsageResponse
-> ImportApplicationUsageResponse -> Bool
== :: ImportApplicationUsageResponse
-> ImportApplicationUsageResponse -> Bool
$c== :: ImportApplicationUsageResponse
-> ImportApplicationUsageResponse -> Bool
Prelude.Eq, ReadPrec [ImportApplicationUsageResponse]
ReadPrec ImportApplicationUsageResponse
Int -> ReadS ImportApplicationUsageResponse
ReadS [ImportApplicationUsageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImportApplicationUsageResponse]
$creadListPrec :: ReadPrec [ImportApplicationUsageResponse]
readPrec :: ReadPrec ImportApplicationUsageResponse
$creadPrec :: ReadPrec ImportApplicationUsageResponse
readList :: ReadS [ImportApplicationUsageResponse]
$creadList :: ReadS [ImportApplicationUsageResponse]
readsPrec :: Int -> ReadS ImportApplicationUsageResponse
$creadsPrec :: Int -> ReadS ImportApplicationUsageResponse
Prelude.Read, Int -> ImportApplicationUsageResponse -> ShowS
[ImportApplicationUsageResponse] -> ShowS
ImportApplicationUsageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImportApplicationUsageResponse] -> ShowS
$cshowList :: [ImportApplicationUsageResponse] -> ShowS
show :: ImportApplicationUsageResponse -> String
$cshow :: ImportApplicationUsageResponse -> String
showsPrec :: Int -> ImportApplicationUsageResponse -> ShowS
$cshowsPrec :: Int -> ImportApplicationUsageResponse -> ShowS
Prelude.Show, forall x.
Rep ImportApplicationUsageResponse x
-> ImportApplicationUsageResponse
forall x.
ImportApplicationUsageResponse
-> Rep ImportApplicationUsageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ImportApplicationUsageResponse x
-> ImportApplicationUsageResponse
$cfrom :: forall x.
ImportApplicationUsageResponse
-> Rep ImportApplicationUsageResponse x
Prelude.Generic)
newImportApplicationUsageResponse ::
Prelude.Int ->
Prelude.Text ->
ImportApplicationUsageResponse
newImportApplicationUsageResponse :: Int -> Text -> ImportApplicationUsageResponse
newImportApplicationUsageResponse
Int
pHttpStatus_
Text
pImportId_ =
ImportApplicationUsageResponse'
{ $sel:httpStatus:ImportApplicationUsageResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:importId:ImportApplicationUsageResponse' :: Text
importId = Text
pImportId_
}
importApplicationUsageResponse_httpStatus :: Lens.Lens' ImportApplicationUsageResponse Prelude.Int
importApplicationUsageResponse_httpStatus :: Lens' ImportApplicationUsageResponse Int
importApplicationUsageResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportApplicationUsageResponse' {Int
httpStatus :: Int
$sel:httpStatus:ImportApplicationUsageResponse' :: ImportApplicationUsageResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ImportApplicationUsageResponse
s@ImportApplicationUsageResponse' {} Int
a -> ImportApplicationUsageResponse
s {$sel:httpStatus:ImportApplicationUsageResponse' :: Int
httpStatus = Int
a} :: ImportApplicationUsageResponse)
importApplicationUsageResponse_importId :: Lens.Lens' ImportApplicationUsageResponse Prelude.Text
importApplicationUsageResponse_importId :: Lens' ImportApplicationUsageResponse Text
importApplicationUsageResponse_importId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportApplicationUsageResponse' {Text
importId :: Text
$sel:importId:ImportApplicationUsageResponse' :: ImportApplicationUsageResponse -> Text
importId} -> Text
importId) (\s :: ImportApplicationUsageResponse
s@ImportApplicationUsageResponse' {} Text
a -> ImportApplicationUsageResponse
s {$sel:importId:ImportApplicationUsageResponse' :: Text
importId = Text
a} :: ImportApplicationUsageResponse)
instance
Prelude.NFData
ImportApplicationUsageResponse
where
rnf :: ImportApplicationUsageResponse -> ()
rnf ImportApplicationUsageResponse' {Int
Text
importId :: Text
httpStatus :: Int
$sel:importId:ImportApplicationUsageResponse' :: ImportApplicationUsageResponse -> Text
$sel:httpStatus:ImportApplicationUsageResponse' :: ImportApplicationUsageResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
importId