{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ECS.Types.CapacityProvider
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
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

-- | The details for a capacity provider.
--
-- /See:/ 'newCapacityProvider' smart constructor.
data CapacityProvider = CapacityProvider'
  { -- | The Auto Scaling group settings for the capacity provider.
    CapacityProvider -> Maybe AutoScalingGroupProvider
autoScalingGroupProvider :: Prelude.Maybe AutoScalingGroupProvider,
    -- | The Amazon Resource Name (ARN) that identifies the capacity provider.
    CapacityProvider -> Maybe Text
capacityProviderArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the capacity provider.
    CapacityProvider -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The current status of the capacity provider. Only capacity providers in
    -- an @ACTIVE@ state can be used in a cluster. When a capacity provider is
    -- successfully deleted, it has an @INACTIVE@ status.
    CapacityProvider -> Maybe CapacityProviderStatus
status :: Prelude.Maybe CapacityProviderStatus,
    -- | The metadata that you apply to the capacity provider to help you
    -- categorize and organize it. Each tag consists of a key and an optional
    -- value. You define both.
    --
    -- The following basic restrictions apply to tags:
    --
    -- -   Maximum number of tags per resource - 50
    --
    -- -   For each resource, each tag key must be unique, and each tag key can
    --     have only one value.
    --
    -- -   Maximum key length - 128 Unicode characters in UTF-8
    --
    -- -   Maximum value length - 256 Unicode characters in UTF-8
    --
    -- -   If your tagging schema is used across multiple services and
    --     resources, remember that other services may have restrictions on
    --     allowed characters. Generally allowed characters are: letters,
    --     numbers, and spaces representable in UTF-8, and the following
    --     characters: + - = . _ : \/ \@.
    --
    -- -   Tag keys and values are case-sensitive.
    --
    -- -   Do not use @aws:@, @AWS:@, or any upper or lowercase combination of
    --     such as a prefix for either keys or values as it is reserved for
    --     Amazon Web Services use. You cannot edit or delete tag keys or
    --     values with this prefix. Tags with this prefix do not count against
    --     your tags per resource limit.
    CapacityProvider -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The update status of the capacity provider. The following are the
    -- possible states that is returned.
    --
    -- [DELETE_IN_PROGRESS]
    --     The capacity provider is in the process of being deleted.
    --
    -- [DELETE_COMPLETE]
    --     The capacity provider was successfully deleted and has an @INACTIVE@
    --     status.
    --
    -- [DELETE_FAILED]
    --     The capacity provider can\'t be deleted. The update status reason
    --     provides further details about why the delete failed.
    CapacityProvider -> Maybe CapacityProviderUpdateStatus
updateStatus :: Prelude.Maybe CapacityProviderUpdateStatus,
    -- | The update status reason. This provides further details about the update
    -- status for the capacity provider.
    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)

-- |
-- Create a value of 'CapacityProvider' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'autoScalingGroupProvider', 'capacityProvider_autoScalingGroupProvider' - The Auto Scaling group settings for the capacity provider.
--
-- 'capacityProviderArn', 'capacityProvider_capacityProviderArn' - The Amazon Resource Name (ARN) that identifies the capacity provider.
--
-- 'name', 'capacityProvider_name' - The name of the capacity provider.
--
-- 'status', 'capacityProvider_status' - The current status of the capacity provider. Only capacity providers in
-- an @ACTIVE@ state can be used in a cluster. When a capacity provider is
-- successfully deleted, it has an @INACTIVE@ status.
--
-- 'tags', 'capacityProvider_tags' - The metadata that you apply to the capacity provider to help you
-- categorize and organize it. Each tag consists of a key and an optional
-- value. You define both.
--
-- The following basic restrictions apply to tags:
--
-- -   Maximum number of tags per resource - 50
--
-- -   For each resource, each tag key must be unique, and each tag key can
--     have only one value.
--
-- -   Maximum key length - 128 Unicode characters in UTF-8
--
-- -   Maximum value length - 256 Unicode characters in UTF-8
--
-- -   If your tagging schema is used across multiple services and
--     resources, remember that other services may have restrictions on
--     allowed characters. Generally allowed characters are: letters,
--     numbers, and spaces representable in UTF-8, and the following
--     characters: + - = . _ : \/ \@.
--
-- -   Tag keys and values are case-sensitive.
--
-- -   Do not use @aws:@, @AWS:@, or any upper or lowercase combination of
--     such as a prefix for either keys or values as it is reserved for
--     Amazon Web Services use. You cannot edit or delete tag keys or
--     values with this prefix. Tags with this prefix do not count against
--     your tags per resource limit.
--
-- 'updateStatus', 'capacityProvider_updateStatus' - The update status of the capacity provider. The following are the
-- possible states that is returned.
--
-- [DELETE_IN_PROGRESS]
--     The capacity provider is in the process of being deleted.
--
-- [DELETE_COMPLETE]
--     The capacity provider was successfully deleted and has an @INACTIVE@
--     status.
--
-- [DELETE_FAILED]
--     The capacity provider can\'t be deleted. The update status reason
--     provides further details about why the delete failed.
--
-- 'updateStatusReason', 'capacityProvider_updateStatusReason' - The update status reason. This provides further details about the update
-- status for the capacity provider.
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
    }

-- | The Auto Scaling group settings for the capacity provider.
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)

-- | The Amazon Resource Name (ARN) that identifies the capacity provider.
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)

-- | The name of the capacity provider.
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)

-- | The current status of the capacity provider. Only capacity providers in
-- an @ACTIVE@ state can be used in a cluster. When a capacity provider is
-- successfully deleted, it has an @INACTIVE@ status.
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)

-- | The metadata that you apply to the capacity provider to help you
-- categorize and organize it. Each tag consists of a key and an optional
-- value. You define both.
--
-- The following basic restrictions apply to tags:
--
-- -   Maximum number of tags per resource - 50
--
-- -   For each resource, each tag key must be unique, and each tag key can
--     have only one value.
--
-- -   Maximum key length - 128 Unicode characters in UTF-8
--
-- -   Maximum value length - 256 Unicode characters in UTF-8
--
-- -   If your tagging schema is used across multiple services and
--     resources, remember that other services may have restrictions on
--     allowed characters. Generally allowed characters are: letters,
--     numbers, and spaces representable in UTF-8, and the following
--     characters: + - = . _ : \/ \@.
--
-- -   Tag keys and values are case-sensitive.
--
-- -   Do not use @aws:@, @AWS:@, or any upper or lowercase combination of
--     such as a prefix for either keys or values as it is reserved for
--     Amazon Web Services use. You cannot edit or delete tag keys or
--     values with this prefix. Tags with this prefix do not count against
--     your tags per resource limit.
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

-- | The update status of the capacity provider. The following are the
-- possible states that is returned.
--
-- [DELETE_IN_PROGRESS]
--     The capacity provider is in the process of being deleted.
--
-- [DELETE_COMPLETE]
--     The capacity provider was successfully deleted and has an @INACTIVE@
--     status.
--
-- [DELETE_FAILED]
--     The capacity provider can\'t be deleted. The update status reason
--     provides further details about why the delete failed.
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)

-- | The update status reason. This provides further details about the update
-- status for the capacity provider.
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