{-# 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.ECS.CreateCapacityProvider
(
CreateCapacityProvider (..),
newCreateCapacityProvider,
createCapacityProvider_tags,
createCapacityProvider_name,
createCapacityProvider_autoScalingGroupProvider,
CreateCapacityProviderResponse (..),
newCreateCapacityProviderResponse,
createCapacityProviderResponse_capacityProvider,
createCapacityProviderResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ECS.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateCapacityProvider = CreateCapacityProvider'
{
CreateCapacityProvider -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateCapacityProvider -> Text
name :: Prelude.Text,
CreateCapacityProvider -> AutoScalingGroupProvider
autoScalingGroupProvider :: AutoScalingGroupProvider
}
deriving (CreateCapacityProvider -> CreateCapacityProvider -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateCapacityProvider -> CreateCapacityProvider -> Bool
$c/= :: CreateCapacityProvider -> CreateCapacityProvider -> Bool
== :: CreateCapacityProvider -> CreateCapacityProvider -> Bool
$c== :: CreateCapacityProvider -> CreateCapacityProvider -> Bool
Prelude.Eq, ReadPrec [CreateCapacityProvider]
ReadPrec CreateCapacityProvider
Int -> ReadS CreateCapacityProvider
ReadS [CreateCapacityProvider]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateCapacityProvider]
$creadListPrec :: ReadPrec [CreateCapacityProvider]
readPrec :: ReadPrec CreateCapacityProvider
$creadPrec :: ReadPrec CreateCapacityProvider
readList :: ReadS [CreateCapacityProvider]
$creadList :: ReadS [CreateCapacityProvider]
readsPrec :: Int -> ReadS CreateCapacityProvider
$creadsPrec :: Int -> ReadS CreateCapacityProvider
Prelude.Read, Int -> CreateCapacityProvider -> ShowS
[CreateCapacityProvider] -> ShowS
CreateCapacityProvider -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateCapacityProvider] -> ShowS
$cshowList :: [CreateCapacityProvider] -> ShowS
show :: CreateCapacityProvider -> String
$cshow :: CreateCapacityProvider -> String
showsPrec :: Int -> CreateCapacityProvider -> ShowS
$cshowsPrec :: Int -> CreateCapacityProvider -> ShowS
Prelude.Show, forall x. Rep CreateCapacityProvider x -> CreateCapacityProvider
forall x. CreateCapacityProvider -> Rep CreateCapacityProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateCapacityProvider x -> CreateCapacityProvider
$cfrom :: forall x. CreateCapacityProvider -> Rep CreateCapacityProvider x
Prelude.Generic)
newCreateCapacityProvider ::
Prelude.Text ->
AutoScalingGroupProvider ->
CreateCapacityProvider
newCreateCapacityProvider :: Text -> AutoScalingGroupProvider -> CreateCapacityProvider
newCreateCapacityProvider
Text
pName_
AutoScalingGroupProvider
pAutoScalingGroupProvider_ =
CreateCapacityProvider'
{ $sel:tags:CreateCapacityProvider' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateCapacityProvider' :: Text
name = Text
pName_,
$sel:autoScalingGroupProvider:CreateCapacityProvider' :: AutoScalingGroupProvider
autoScalingGroupProvider =
AutoScalingGroupProvider
pAutoScalingGroupProvider_
}
createCapacityProvider_tags :: Lens.Lens' CreateCapacityProvider (Prelude.Maybe [Tag])
createCapacityProvider_tags :: Lens' CreateCapacityProvider (Maybe [Tag])
createCapacityProvider_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCapacityProvider' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateCapacityProvider' :: CreateCapacityProvider -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateCapacityProvider
s@CreateCapacityProvider' {} Maybe [Tag]
a -> CreateCapacityProvider
s {$sel:tags:CreateCapacityProvider' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateCapacityProvider) 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
createCapacityProvider_name :: Lens.Lens' CreateCapacityProvider Prelude.Text
createCapacityProvider_name :: Lens' CreateCapacityProvider Text
createCapacityProvider_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCapacityProvider' {Text
name :: Text
$sel:name:CreateCapacityProvider' :: CreateCapacityProvider -> Text
name} -> Text
name) (\s :: CreateCapacityProvider
s@CreateCapacityProvider' {} Text
a -> CreateCapacityProvider
s {$sel:name:CreateCapacityProvider' :: Text
name = Text
a} :: CreateCapacityProvider)
createCapacityProvider_autoScalingGroupProvider :: Lens.Lens' CreateCapacityProvider AutoScalingGroupProvider
createCapacityProvider_autoScalingGroupProvider :: Lens' CreateCapacityProvider AutoScalingGroupProvider
createCapacityProvider_autoScalingGroupProvider = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCapacityProvider' {AutoScalingGroupProvider
autoScalingGroupProvider :: AutoScalingGroupProvider
$sel:autoScalingGroupProvider:CreateCapacityProvider' :: CreateCapacityProvider -> AutoScalingGroupProvider
autoScalingGroupProvider} -> AutoScalingGroupProvider
autoScalingGroupProvider) (\s :: CreateCapacityProvider
s@CreateCapacityProvider' {} AutoScalingGroupProvider
a -> CreateCapacityProvider
s {$sel:autoScalingGroupProvider:CreateCapacityProvider' :: AutoScalingGroupProvider
autoScalingGroupProvider = AutoScalingGroupProvider
a} :: CreateCapacityProvider)
instance Core.AWSRequest CreateCapacityProvider where
type
AWSResponse CreateCapacityProvider =
CreateCapacityProviderResponse
request :: (Service -> Service)
-> CreateCapacityProvider -> Request CreateCapacityProvider
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 CreateCapacityProvider
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateCapacityProvider)))
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 CapacityProvider -> Int -> CreateCapacityProviderResponse
CreateCapacityProviderResponse'
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
"capacityProvider")
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 CreateCapacityProvider where
hashWithSalt :: Int -> CreateCapacityProvider -> Int
hashWithSalt Int
_salt CreateCapacityProvider' {Maybe [Tag]
Text
AutoScalingGroupProvider
autoScalingGroupProvider :: AutoScalingGroupProvider
name :: Text
tags :: Maybe [Tag]
$sel:autoScalingGroupProvider:CreateCapacityProvider' :: CreateCapacityProvider -> AutoScalingGroupProvider
$sel:name:CreateCapacityProvider' :: CreateCapacityProvider -> Text
$sel:tags:CreateCapacityProvider' :: CreateCapacityProvider -> Maybe [Tag]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AutoScalingGroupProvider
autoScalingGroupProvider
instance Prelude.NFData CreateCapacityProvider where
rnf :: CreateCapacityProvider -> ()
rnf CreateCapacityProvider' {Maybe [Tag]
Text
AutoScalingGroupProvider
autoScalingGroupProvider :: AutoScalingGroupProvider
name :: Text
tags :: Maybe [Tag]
$sel:autoScalingGroupProvider:CreateCapacityProvider' :: CreateCapacityProvider -> AutoScalingGroupProvider
$sel:name:CreateCapacityProvider' :: CreateCapacityProvider -> Text
$sel:tags:CreateCapacityProvider' :: CreateCapacityProvider -> Maybe [Tag]
..} =
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
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AutoScalingGroupProvider
autoScalingGroupProvider
instance Data.ToHeaders CreateCapacityProvider where
toHeaders :: CreateCapacityProvider -> 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
"AmazonEC2ContainerServiceV20141113.CreateCapacityProvider" ::
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 CreateCapacityProvider where
toJSON :: CreateCapacityProvider -> Value
toJSON CreateCapacityProvider' {Maybe [Tag]
Text
AutoScalingGroupProvider
autoScalingGroupProvider :: AutoScalingGroupProvider
name :: Text
tags :: Maybe [Tag]
$sel:autoScalingGroupProvider:CreateCapacityProvider' :: CreateCapacityProvider -> AutoScalingGroupProvider
$sel:name:CreateCapacityProvider' :: CreateCapacityProvider -> Text
$sel:tags:CreateCapacityProvider' :: CreateCapacityProvider -> Maybe [Tag]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (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
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
forall a. a -> Maybe a
Prelude.Just
( Key
"autoScalingGroupProvider"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AutoScalingGroupProvider
autoScalingGroupProvider
)
]
)
instance Data.ToPath CreateCapacityProvider where
toPath :: CreateCapacityProvider -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateCapacityProvider where
toQuery :: CreateCapacityProvider -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateCapacityProviderResponse = CreateCapacityProviderResponse'
{
CreateCapacityProviderResponse -> Maybe CapacityProvider
capacityProvider :: Prelude.Maybe CapacityProvider,
CreateCapacityProviderResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateCapacityProviderResponse
-> CreateCapacityProviderResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateCapacityProviderResponse
-> CreateCapacityProviderResponse -> Bool
$c/= :: CreateCapacityProviderResponse
-> CreateCapacityProviderResponse -> Bool
== :: CreateCapacityProviderResponse
-> CreateCapacityProviderResponse -> Bool
$c== :: CreateCapacityProviderResponse
-> CreateCapacityProviderResponse -> Bool
Prelude.Eq, ReadPrec [CreateCapacityProviderResponse]
ReadPrec CreateCapacityProviderResponse
Int -> ReadS CreateCapacityProviderResponse
ReadS [CreateCapacityProviderResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateCapacityProviderResponse]
$creadListPrec :: ReadPrec [CreateCapacityProviderResponse]
readPrec :: ReadPrec CreateCapacityProviderResponse
$creadPrec :: ReadPrec CreateCapacityProviderResponse
readList :: ReadS [CreateCapacityProviderResponse]
$creadList :: ReadS [CreateCapacityProviderResponse]
readsPrec :: Int -> ReadS CreateCapacityProviderResponse
$creadsPrec :: Int -> ReadS CreateCapacityProviderResponse
Prelude.Read, Int -> CreateCapacityProviderResponse -> ShowS
[CreateCapacityProviderResponse] -> ShowS
CreateCapacityProviderResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateCapacityProviderResponse] -> ShowS
$cshowList :: [CreateCapacityProviderResponse] -> ShowS
show :: CreateCapacityProviderResponse -> String
$cshow :: CreateCapacityProviderResponse -> String
showsPrec :: Int -> CreateCapacityProviderResponse -> ShowS
$cshowsPrec :: Int -> CreateCapacityProviderResponse -> ShowS
Prelude.Show, forall x.
Rep CreateCapacityProviderResponse x
-> CreateCapacityProviderResponse
forall x.
CreateCapacityProviderResponse
-> Rep CreateCapacityProviderResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateCapacityProviderResponse x
-> CreateCapacityProviderResponse
$cfrom :: forall x.
CreateCapacityProviderResponse
-> Rep CreateCapacityProviderResponse x
Prelude.Generic)
newCreateCapacityProviderResponse ::
Prelude.Int ->
CreateCapacityProviderResponse
newCreateCapacityProviderResponse :: Int -> CreateCapacityProviderResponse
newCreateCapacityProviderResponse Int
pHttpStatus_ =
CreateCapacityProviderResponse'
{ $sel:capacityProvider:CreateCapacityProviderResponse' :: Maybe CapacityProvider
capacityProvider =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateCapacityProviderResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createCapacityProviderResponse_capacityProvider :: Lens.Lens' CreateCapacityProviderResponse (Prelude.Maybe CapacityProvider)
createCapacityProviderResponse_capacityProvider :: Lens' CreateCapacityProviderResponse (Maybe CapacityProvider)
createCapacityProviderResponse_capacityProvider = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCapacityProviderResponse' {Maybe CapacityProvider
capacityProvider :: Maybe CapacityProvider
$sel:capacityProvider:CreateCapacityProviderResponse' :: CreateCapacityProviderResponse -> Maybe CapacityProvider
capacityProvider} -> Maybe CapacityProvider
capacityProvider) (\s :: CreateCapacityProviderResponse
s@CreateCapacityProviderResponse' {} Maybe CapacityProvider
a -> CreateCapacityProviderResponse
s {$sel:capacityProvider:CreateCapacityProviderResponse' :: Maybe CapacityProvider
capacityProvider = Maybe CapacityProvider
a} :: CreateCapacityProviderResponse)
createCapacityProviderResponse_httpStatus :: Lens.Lens' CreateCapacityProviderResponse Prelude.Int
createCapacityProviderResponse_httpStatus :: Lens' CreateCapacityProviderResponse Int
createCapacityProviderResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCapacityProviderResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateCapacityProviderResponse' :: CreateCapacityProviderResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateCapacityProviderResponse
s@CreateCapacityProviderResponse' {} Int
a -> CreateCapacityProviderResponse
s {$sel:httpStatus:CreateCapacityProviderResponse' :: Int
httpStatus = Int
a} :: CreateCapacityProviderResponse)
instance
Prelude.NFData
CreateCapacityProviderResponse
where
rnf :: CreateCapacityProviderResponse -> ()
rnf CreateCapacityProviderResponse' {Int
Maybe CapacityProvider
httpStatus :: Int
capacityProvider :: Maybe CapacityProvider
$sel:httpStatus:CreateCapacityProviderResponse' :: CreateCapacityProviderResponse -> Int
$sel:capacityProvider:CreateCapacityProviderResponse' :: CreateCapacityProviderResponse -> Maybe CapacityProvider
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CapacityProvider
capacityProvider
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus