{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.ECS.Types.CapacityProvider 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.AutoScalingGroupProvider
import Amazonka.ECS.Types.CapacityProviderStatus
import Amazonka.ECS.Types.CapacityProviderUpdateStatus
import Amazonka.ECS.Types.Tag
import qualified Amazonka.Prelude as Prelude
data CapacityProvider = CapacityProvider'
{
CapacityProvider -> Maybe AutoScalingGroupProvider
autoScalingGroupProvider :: Prelude.Maybe AutoScalingGroupProvider,
CapacityProvider -> Maybe Text
capacityProviderArn :: Prelude.Maybe Prelude.Text,
CapacityProvider -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
CapacityProvider -> Maybe CapacityProviderStatus
status :: Prelude.Maybe CapacityProviderStatus,
CapacityProvider -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CapacityProvider -> Maybe CapacityProviderUpdateStatus
updateStatus :: Prelude.Maybe CapacityProviderUpdateStatus,
CapacityProvider -> Maybe Text
updateStatusReason :: Prelude.Maybe Prelude.Text
}
deriving (CapacityProvider -> CapacityProvider -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CapacityProvider -> CapacityProvider -> Bool
$c/= :: CapacityProvider -> CapacityProvider -> Bool
== :: CapacityProvider -> CapacityProvider -> Bool
$c== :: CapacityProvider -> CapacityProvider -> Bool
Prelude.Eq, ReadPrec [CapacityProvider]
ReadPrec CapacityProvider
Int -> ReadS CapacityProvider
ReadS [CapacityProvider]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CapacityProvider]
$creadListPrec :: ReadPrec [CapacityProvider]
readPrec :: ReadPrec CapacityProvider
$creadPrec :: ReadPrec CapacityProvider
readList :: ReadS [CapacityProvider]
$creadList :: ReadS [CapacityProvider]
readsPrec :: Int -> ReadS CapacityProvider
$creadsPrec :: Int -> ReadS CapacityProvider
Prelude.Read, Int -> CapacityProvider -> ShowS
[CapacityProvider] -> ShowS
CapacityProvider -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CapacityProvider] -> ShowS
$cshowList :: [CapacityProvider] -> ShowS
show :: CapacityProvider -> String
$cshow :: CapacityProvider -> String
showsPrec :: Int -> CapacityProvider -> ShowS
$cshowsPrec :: Int -> CapacityProvider -> ShowS
Prelude.Show, forall x. Rep CapacityProvider x -> CapacityProvider
forall x. CapacityProvider -> Rep CapacityProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CapacityProvider x -> CapacityProvider
$cfrom :: forall x. CapacityProvider -> Rep CapacityProvider x
Prelude.Generic)
newCapacityProvider ::
CapacityProvider
newCapacityProvider :: CapacityProvider
newCapacityProvider =
CapacityProvider'
{ $sel:autoScalingGroupProvider:CapacityProvider' :: Maybe AutoScalingGroupProvider
autoScalingGroupProvider =
forall a. Maybe a
Prelude.Nothing,
$sel:capacityProviderArn:CapacityProvider' :: Maybe Text
capacityProviderArn = forall a. Maybe a
Prelude.Nothing,
$sel:name:CapacityProvider' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:status:CapacityProvider' :: Maybe CapacityProviderStatus
status = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CapacityProvider' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:updateStatus:CapacityProvider' :: Maybe CapacityProviderUpdateStatus
updateStatus = forall a. Maybe a
Prelude.Nothing,
$sel:updateStatusReason:CapacityProvider' :: Maybe Text
updateStatusReason = forall a. Maybe a
Prelude.Nothing
}
capacityProvider_autoScalingGroupProvider :: Lens.Lens' CapacityProvider (Prelude.Maybe AutoScalingGroupProvider)
capacityProvider_autoScalingGroupProvider :: Lens' CapacityProvider (Maybe AutoScalingGroupProvider)
capacityProvider_autoScalingGroupProvider = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe AutoScalingGroupProvider
autoScalingGroupProvider :: Maybe AutoScalingGroupProvider
$sel:autoScalingGroupProvider:CapacityProvider' :: CapacityProvider -> Maybe AutoScalingGroupProvider
autoScalingGroupProvider} -> Maybe AutoScalingGroupProvider
autoScalingGroupProvider) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe AutoScalingGroupProvider
a -> CapacityProvider
s {$sel:autoScalingGroupProvider:CapacityProvider' :: Maybe AutoScalingGroupProvider
autoScalingGroupProvider = Maybe AutoScalingGroupProvider
a} :: CapacityProvider)
capacityProvider_capacityProviderArn :: Lens.Lens' CapacityProvider (Prelude.Maybe Prelude.Text)
capacityProvider_capacityProviderArn :: Lens' CapacityProvider (Maybe Text)
capacityProvider_capacityProviderArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe Text
capacityProviderArn :: Maybe Text
$sel:capacityProviderArn:CapacityProvider' :: CapacityProvider -> Maybe Text
capacityProviderArn} -> Maybe Text
capacityProviderArn) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe Text
a -> CapacityProvider
s {$sel:capacityProviderArn:CapacityProvider' :: Maybe Text
capacityProviderArn = Maybe Text
a} :: CapacityProvider)
capacityProvider_name :: Lens.Lens' CapacityProvider (Prelude.Maybe Prelude.Text)
capacityProvider_name :: Lens' CapacityProvider (Maybe Text)
capacityProvider_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe Text
name :: Maybe Text
$sel:name:CapacityProvider' :: CapacityProvider -> Maybe Text
name} -> Maybe Text
name) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe Text
a -> CapacityProvider
s {$sel:name:CapacityProvider' :: Maybe Text
name = Maybe Text
a} :: CapacityProvider)
capacityProvider_status :: Lens.Lens' CapacityProvider (Prelude.Maybe CapacityProviderStatus)
capacityProvider_status :: Lens' CapacityProvider (Maybe CapacityProviderStatus)
capacityProvider_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe CapacityProviderStatus
status :: Maybe CapacityProviderStatus
$sel:status:CapacityProvider' :: CapacityProvider -> Maybe CapacityProviderStatus
status} -> Maybe CapacityProviderStatus
status) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe CapacityProviderStatus
a -> CapacityProvider
s {$sel:status:CapacityProvider' :: Maybe CapacityProviderStatus
status = Maybe CapacityProviderStatus
a} :: CapacityProvider)
capacityProvider_tags :: Lens.Lens' CapacityProvider (Prelude.Maybe [Tag])
capacityProvider_tags :: Lens' CapacityProvider (Maybe [Tag])
capacityProvider_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CapacityProvider' :: CapacityProvider -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe [Tag]
a -> CapacityProvider
s {$sel:tags:CapacityProvider' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CapacityProvider) 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
capacityProvider_updateStatus :: Lens.Lens' CapacityProvider (Prelude.Maybe CapacityProviderUpdateStatus)
capacityProvider_updateStatus :: Lens' CapacityProvider (Maybe CapacityProviderUpdateStatus)
capacityProvider_updateStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe CapacityProviderUpdateStatus
updateStatus :: Maybe CapacityProviderUpdateStatus
$sel:updateStatus:CapacityProvider' :: CapacityProvider -> Maybe CapacityProviderUpdateStatus
updateStatus} -> Maybe CapacityProviderUpdateStatus
updateStatus) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe CapacityProviderUpdateStatus
a -> CapacityProvider
s {$sel:updateStatus:CapacityProvider' :: Maybe CapacityProviderUpdateStatus
updateStatus = Maybe CapacityProviderUpdateStatus
a} :: CapacityProvider)
capacityProvider_updateStatusReason :: Lens.Lens' CapacityProvider (Prelude.Maybe Prelude.Text)
capacityProvider_updateStatusReason :: Lens' CapacityProvider (Maybe Text)
capacityProvider_updateStatusReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CapacityProvider' {Maybe Text
updateStatusReason :: Maybe Text
$sel:updateStatusReason:CapacityProvider' :: CapacityProvider -> Maybe Text
updateStatusReason} -> Maybe Text
updateStatusReason) (\s :: CapacityProvider
s@CapacityProvider' {} Maybe Text
a -> CapacityProvider
s {$sel:updateStatusReason:CapacityProvider' :: Maybe Text
updateStatusReason = Maybe Text
a} :: CapacityProvider)
instance Data.FromJSON CapacityProvider where
parseJSON :: Value -> Parser CapacityProvider
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"CapacityProvider"
( \Object
x ->
Maybe AutoScalingGroupProvider
-> Maybe Text
-> Maybe Text
-> Maybe CapacityProviderStatus
-> Maybe [Tag]
-> Maybe CapacityProviderUpdateStatus
-> Maybe Text
-> CapacityProvider
CapacityProvider'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"autoScalingGroupProvider")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"capacityProviderArn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"status")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"updateStatus")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"updateStatusReason")
)
instance Prelude.Hashable CapacityProvider where
hashWithSalt :: Int -> CapacityProvider -> Int
hashWithSalt Int
_salt CapacityProvider' {Maybe [Tag]
Maybe Text
Maybe CapacityProviderStatus
Maybe CapacityProviderUpdateStatus
Maybe AutoScalingGroupProvider
updateStatusReason :: Maybe Text
updateStatus :: Maybe CapacityProviderUpdateStatus
tags :: Maybe [Tag]
status :: Maybe CapacityProviderStatus
name :: Maybe Text
capacityProviderArn :: Maybe Text
autoScalingGroupProvider :: Maybe AutoScalingGroupProvider
$sel:updateStatusReason:CapacityProvider' :: CapacityProvider -> Maybe Text
$sel:updateStatus:CapacityProvider' :: CapacityProvider -> Maybe CapacityProviderUpdateStatus
$sel:tags:CapacityProvider' :: CapacityProvider -> Maybe [Tag]
$sel:status:CapacityProvider' :: CapacityProvider -> Maybe CapacityProviderStatus
$sel:name:CapacityProvider' :: CapacityProvider -> Maybe Text
$sel:capacityProviderArn:CapacityProvider' :: CapacityProvider -> Maybe Text
$sel:autoScalingGroupProvider:CapacityProvider' :: CapacityProvider -> Maybe AutoScalingGroupProvider
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AutoScalingGroupProvider
autoScalingGroupProvider
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
capacityProviderArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CapacityProviderStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CapacityProviderUpdateStatus
updateStatus
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
updateStatusReason
instance Prelude.NFData CapacityProvider where
rnf :: CapacityProvider -> ()
rnf CapacityProvider' {Maybe [Tag]
Maybe Text
Maybe CapacityProviderStatus
Maybe CapacityProviderUpdateStatus
Maybe AutoScalingGroupProvider
updateStatusReason :: Maybe Text
updateStatus :: Maybe CapacityProviderUpdateStatus
tags :: Maybe [Tag]
status :: Maybe CapacityProviderStatus
name :: Maybe Text
capacityProviderArn :: Maybe Text
autoScalingGroupProvider :: Maybe AutoScalingGroupProvider
$sel:updateStatusReason:CapacityProvider' :: CapacityProvider -> Maybe Text
$sel:updateStatus:CapacityProvider' :: CapacityProvider -> Maybe CapacityProviderUpdateStatus
$sel:tags:CapacityProvider' :: CapacityProvider -> Maybe [Tag]
$sel:status:CapacityProvider' :: CapacityProvider -> Maybe CapacityProviderStatus
$sel:name:CapacityProvider' :: CapacityProvider -> Maybe Text
$sel:capacityProviderArn:CapacityProvider' :: CapacityProvider -> Maybe Text
$sel:autoScalingGroupProvider:CapacityProvider' :: CapacityProvider -> Maybe AutoScalingGroupProvider
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AutoScalingGroupProvider
autoScalingGroupProvider
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
capacityProviderArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CapacityProviderStatus
status
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 Maybe CapacityProviderUpdateStatus
updateStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
updateStatusReason