{-# 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.SecurityHub.Types.AwsEcsTaskDefinitionDetails
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SecurityHub.Types.AwsEcsTaskDefinitionDetails where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SecurityHub.Types.AwsEcsTaskDefinitionContainerDefinitionsDetails
import Amazonka.SecurityHub.Types.AwsEcsTaskDefinitionInferenceAcceleratorsDetails
import Amazonka.SecurityHub.Types.AwsEcsTaskDefinitionPlacementConstraintsDetails
import Amazonka.SecurityHub.Types.AwsEcsTaskDefinitionProxyConfigurationDetails
import Amazonka.SecurityHub.Types.AwsEcsTaskDefinitionVolumesDetails

-- | details about a task definition. A task definition describes the
-- container and volume definitions of an Amazon Elastic Container Service
-- task.
--
-- /See:/ 'newAwsEcsTaskDefinitionDetails' smart constructor.
data AwsEcsTaskDefinitionDetails = AwsEcsTaskDefinitionDetails'
  { -- | The Elastic Inference accelerators to use for the containers in the
    -- task.
    AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators :: Prelude.Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails],
    -- | The ARN of the task execution role that grants the container agent
    -- permission to make API calls on behalf of the container user.
    AwsEcsTaskDefinitionDetails -> Maybe Text
executionRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The process namespace to use for the containers in the task.
    AwsEcsTaskDefinitionDetails -> Maybe Text
pidMode :: Prelude.Maybe Prelude.Text,
    -- | The name of a family that this task definition is registered to.
    AwsEcsTaskDefinitionDetails -> Maybe Text
family :: Prelude.Maybe Prelude.Text,
    -- | The task launch types that the task definition was validated against.
    AwsEcsTaskDefinitionDetails -> Maybe [Text]
requiresCompatibilities :: Prelude.Maybe [Prelude.Text],
    -- | The container definitions that describe the containers that make up the
    -- task.
    AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions :: Prelude.Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails],
    -- | The amount (in MiB) of memory used by the task.
    AwsEcsTaskDefinitionDetails -> Maybe Text
memory :: Prelude.Maybe Prelude.Text,
    -- | The IPC resource namespace to use for the containers in the task.
    AwsEcsTaskDefinitionDetails -> Maybe Text
ipcMode :: Prelude.Maybe Prelude.Text,
    -- | The short name or ARN of the IAM role that grants containers in the task
    -- permission to call Amazon Web Services API operations on your behalf.
    AwsEcsTaskDefinitionDetails -> Maybe Text
taskRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The configuration details for the App Mesh proxy.
    AwsEcsTaskDefinitionDetails
-> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration :: Prelude.Maybe AwsEcsTaskDefinitionProxyConfigurationDetails,
    -- | The placement constraint objects to use for tasks.
    AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints :: Prelude.Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails],
    -- | The Docker networking mode to use for the containers in the task.
    AwsEcsTaskDefinitionDetails -> Maybe Text
networkMode :: Prelude.Maybe Prelude.Text,
    -- | The data volume definitions for the task.
    AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes :: Prelude.Maybe [AwsEcsTaskDefinitionVolumesDetails],
    -- | The number of CPU units used by the task.
    AwsEcsTaskDefinitionDetails -> Maybe Text
cpu :: Prelude.Maybe Prelude.Text
  }
  deriving (AwsEcsTaskDefinitionDetails -> AwsEcsTaskDefinitionDetails -> Bool
(AwsEcsTaskDefinitionDetails
 -> AwsEcsTaskDefinitionDetails -> Bool)
-> (AwsEcsTaskDefinitionDetails
    -> AwsEcsTaskDefinitionDetails -> Bool)
-> Eq AwsEcsTaskDefinitionDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AwsEcsTaskDefinitionDetails -> AwsEcsTaskDefinitionDetails -> Bool
$c/= :: AwsEcsTaskDefinitionDetails -> AwsEcsTaskDefinitionDetails -> Bool
== :: AwsEcsTaskDefinitionDetails -> AwsEcsTaskDefinitionDetails -> Bool
$c== :: AwsEcsTaskDefinitionDetails -> AwsEcsTaskDefinitionDetails -> Bool
Prelude.Eq, ReadPrec [AwsEcsTaskDefinitionDetails]
ReadPrec AwsEcsTaskDefinitionDetails
Int -> ReadS AwsEcsTaskDefinitionDetails
ReadS [AwsEcsTaskDefinitionDetails]
(Int -> ReadS AwsEcsTaskDefinitionDetails)
-> ReadS [AwsEcsTaskDefinitionDetails]
-> ReadPrec AwsEcsTaskDefinitionDetails
-> ReadPrec [AwsEcsTaskDefinitionDetails]
-> Read AwsEcsTaskDefinitionDetails
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AwsEcsTaskDefinitionDetails]
$creadListPrec :: ReadPrec [AwsEcsTaskDefinitionDetails]
readPrec :: ReadPrec AwsEcsTaskDefinitionDetails
$creadPrec :: ReadPrec AwsEcsTaskDefinitionDetails
readList :: ReadS [AwsEcsTaskDefinitionDetails]
$creadList :: ReadS [AwsEcsTaskDefinitionDetails]
readsPrec :: Int -> ReadS AwsEcsTaskDefinitionDetails
$creadsPrec :: Int -> ReadS AwsEcsTaskDefinitionDetails
Prelude.Read, Int -> AwsEcsTaskDefinitionDetails -> ShowS
[AwsEcsTaskDefinitionDetails] -> ShowS
AwsEcsTaskDefinitionDetails -> String
(Int -> AwsEcsTaskDefinitionDetails -> ShowS)
-> (AwsEcsTaskDefinitionDetails -> String)
-> ([AwsEcsTaskDefinitionDetails] -> ShowS)
-> Show AwsEcsTaskDefinitionDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AwsEcsTaskDefinitionDetails] -> ShowS
$cshowList :: [AwsEcsTaskDefinitionDetails] -> ShowS
show :: AwsEcsTaskDefinitionDetails -> String
$cshow :: AwsEcsTaskDefinitionDetails -> String
showsPrec :: Int -> AwsEcsTaskDefinitionDetails -> ShowS
$cshowsPrec :: Int -> AwsEcsTaskDefinitionDetails -> ShowS
Prelude.Show, (forall x.
 AwsEcsTaskDefinitionDetails -> Rep AwsEcsTaskDefinitionDetails x)
-> (forall x.
    Rep AwsEcsTaskDefinitionDetails x -> AwsEcsTaskDefinitionDetails)
-> Generic AwsEcsTaskDefinitionDetails
forall x.
Rep AwsEcsTaskDefinitionDetails x -> AwsEcsTaskDefinitionDetails
forall x.
AwsEcsTaskDefinitionDetails -> Rep AwsEcsTaskDefinitionDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AwsEcsTaskDefinitionDetails x -> AwsEcsTaskDefinitionDetails
$cfrom :: forall x.
AwsEcsTaskDefinitionDetails -> Rep AwsEcsTaskDefinitionDetails x
Prelude.Generic)

-- |
-- Create a value of 'AwsEcsTaskDefinitionDetails' 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:
--
-- 'inferenceAccelerators', 'awsEcsTaskDefinitionDetails_inferenceAccelerators' - The Elastic Inference accelerators to use for the containers in the
-- task.
--
-- 'executionRoleArn', 'awsEcsTaskDefinitionDetails_executionRoleArn' - The ARN of the task execution role that grants the container agent
-- permission to make API calls on behalf of the container user.
--
-- 'pidMode', 'awsEcsTaskDefinitionDetails_pidMode' - The process namespace to use for the containers in the task.
--
-- 'family', 'awsEcsTaskDefinitionDetails_family' - The name of a family that this task definition is registered to.
--
-- 'requiresCompatibilities', 'awsEcsTaskDefinitionDetails_requiresCompatibilities' - The task launch types that the task definition was validated against.
--
-- 'containerDefinitions', 'awsEcsTaskDefinitionDetails_containerDefinitions' - The container definitions that describe the containers that make up the
-- task.
--
-- 'memory', 'awsEcsTaskDefinitionDetails_memory' - The amount (in MiB) of memory used by the task.
--
-- 'ipcMode', 'awsEcsTaskDefinitionDetails_ipcMode' - The IPC resource namespace to use for the containers in the task.
--
-- 'taskRoleArn', 'awsEcsTaskDefinitionDetails_taskRoleArn' - The short name or ARN of the IAM role that grants containers in the task
-- permission to call Amazon Web Services API operations on your behalf.
--
-- 'proxyConfiguration', 'awsEcsTaskDefinitionDetails_proxyConfiguration' - The configuration details for the App Mesh proxy.
--
-- 'placementConstraints', 'awsEcsTaskDefinitionDetails_placementConstraints' - The placement constraint objects to use for tasks.
--
-- 'networkMode', 'awsEcsTaskDefinitionDetails_networkMode' - The Docker networking mode to use for the containers in the task.
--
-- 'volumes', 'awsEcsTaskDefinitionDetails_volumes' - The data volume definitions for the task.
--
-- 'cpu', 'awsEcsTaskDefinitionDetails_cpu' - The number of CPU units used by the task.
newAwsEcsTaskDefinitionDetails ::
  AwsEcsTaskDefinitionDetails
newAwsEcsTaskDefinitionDetails :: AwsEcsTaskDefinitionDetails
newAwsEcsTaskDefinitionDetails =
  AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
-> Maybe Text
-> Maybe [AwsEcsTaskDefinitionVolumesDetails]
-> Maybe Text
-> AwsEcsTaskDefinitionDetails
AwsEcsTaskDefinitionDetails'
    { $sel:inferenceAccelerators:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators =
        Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
forall a. Maybe a
Prelude.Nothing,
      $sel:executionRoleArn:AwsEcsTaskDefinitionDetails' :: Maybe Text
executionRoleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:pidMode:AwsEcsTaskDefinitionDetails' :: Maybe Text
pidMode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:family:AwsEcsTaskDefinitionDetails' :: Maybe Text
family = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:requiresCompatibilities:AwsEcsTaskDefinitionDetails' :: Maybe [Text]
requiresCompatibilities = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:containerDefinitions:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions = Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
forall a. Maybe a
Prelude.Nothing,
      $sel:memory:AwsEcsTaskDefinitionDetails' :: Maybe Text
memory = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:ipcMode:AwsEcsTaskDefinitionDetails' :: Maybe Text
ipcMode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:taskRoleArn:AwsEcsTaskDefinitionDetails' :: Maybe Text
taskRoleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:proxyConfiguration:AwsEcsTaskDefinitionDetails' :: Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration = Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:placementConstraints:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints = Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
forall a. Maybe a
Prelude.Nothing,
      $sel:networkMode:AwsEcsTaskDefinitionDetails' :: Maybe Text
networkMode = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:volumes:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes = Maybe [AwsEcsTaskDefinitionVolumesDetails]
forall a. Maybe a
Prelude.Nothing,
      $sel:cpu:AwsEcsTaskDefinitionDetails' :: Maybe Text
cpu = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The Elastic Inference accelerators to use for the containers in the
-- task.
awsEcsTaskDefinitionDetails_inferenceAccelerators :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
awsEcsTaskDefinitionDetails_inferenceAccelerators :: (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
 -> f (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_inferenceAccelerators = (AwsEcsTaskDefinitionDetails
 -> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
-> (AwsEcsTaskDefinitionDetails
    -> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
    -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators :: Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
$sel:inferenceAccelerators:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators} -> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
a -> AwsEcsTaskDefinitionDetails
s {$sel:inferenceAccelerators:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators = Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
a} :: AwsEcsTaskDefinitionDetails) ((Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  -> f (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
 -> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails)
-> ((Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
     -> f (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
    -> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
    -> f (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
-> (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
    -> f (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
-> AwsEcsTaskDefinitionDetails
-> f AwsEcsTaskDefinitionDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
-> Iso
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
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 AnIso
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
  [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ARN of the task execution role that grants the container agent
-- permission to make API calls on behalf of the container user.
awsEcsTaskDefinitionDetails_executionRoleArn :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_executionRoleArn :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_executionRoleArn = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
executionRoleArn :: Maybe Text
$sel:executionRoleArn:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
executionRoleArn} -> Maybe Text
executionRoleArn) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:executionRoleArn:AwsEcsTaskDefinitionDetails' :: Maybe Text
executionRoleArn = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The process namespace to use for the containers in the task.
awsEcsTaskDefinitionDetails_pidMode :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_pidMode :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_pidMode = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
pidMode :: Maybe Text
$sel:pidMode:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
pidMode} -> Maybe Text
pidMode) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:pidMode:AwsEcsTaskDefinitionDetails' :: Maybe Text
pidMode = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The name of a family that this task definition is registered to.
awsEcsTaskDefinitionDetails_family :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_family :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_family = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
family :: Maybe Text
$sel:family:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
family} -> Maybe Text
family) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:family:AwsEcsTaskDefinitionDetails' :: Maybe Text
family = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The task launch types that the task definition was validated against.
awsEcsTaskDefinitionDetails_requiresCompatibilities :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe [Prelude.Text])
awsEcsTaskDefinitionDetails_requiresCompatibilities :: (Maybe [Text] -> f (Maybe [Text]))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_requiresCompatibilities = (AwsEcsTaskDefinitionDetails -> Maybe [Text])
-> (AwsEcsTaskDefinitionDetails
    -> Maybe [Text] -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe [Text]
requiresCompatibilities :: Maybe [Text]
$sel:requiresCompatibilities:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe [Text]
requiresCompatibilities} -> Maybe [Text]
requiresCompatibilities) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe [Text]
a -> AwsEcsTaskDefinitionDetails
s {$sel:requiresCompatibilities:AwsEcsTaskDefinitionDetails' :: Maybe [Text]
requiresCompatibilities = Maybe [Text]
a} :: AwsEcsTaskDefinitionDetails) ((Maybe [Text] -> f (Maybe [Text]))
 -> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> AwsEcsTaskDefinitionDetails
-> f AwsEcsTaskDefinitionDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The container definitions that describe the containers that make up the
-- task.
awsEcsTaskDefinitionDetails_containerDefinitions :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
awsEcsTaskDefinitionDetails_containerDefinitions :: (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
 -> f (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_containerDefinitions = (AwsEcsTaskDefinitionDetails
 -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
-> (AwsEcsTaskDefinitionDetails
    -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
    -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions :: Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
$sel:containerDefinitions:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions} -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
a -> AwsEcsTaskDefinitionDetails
s {$sel:containerDefinitions:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions = Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
a} :: AwsEcsTaskDefinitionDetails) ((Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  -> f (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
 -> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails)
-> ((Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
     -> f (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
    -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
    -> f (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
-> (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
    -> f (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
-> AwsEcsTaskDefinitionDetails
-> f AwsEcsTaskDefinitionDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
-> Iso
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
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 AnIso
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
  [AwsEcsTaskDefinitionContainerDefinitionsDetails]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The amount (in MiB) of memory used by the task.
awsEcsTaskDefinitionDetails_memory :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_memory :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_memory = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
memory :: Maybe Text
$sel:memory:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
memory} -> Maybe Text
memory) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:memory:AwsEcsTaskDefinitionDetails' :: Maybe Text
memory = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The IPC resource namespace to use for the containers in the task.
awsEcsTaskDefinitionDetails_ipcMode :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_ipcMode :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_ipcMode = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
ipcMode :: Maybe Text
$sel:ipcMode:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
ipcMode} -> Maybe Text
ipcMode) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:ipcMode:AwsEcsTaskDefinitionDetails' :: Maybe Text
ipcMode = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The short name or ARN of the IAM role that grants containers in the task
-- permission to call Amazon Web Services API operations on your behalf.
awsEcsTaskDefinitionDetails_taskRoleArn :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_taskRoleArn :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_taskRoleArn = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
taskRoleArn :: Maybe Text
$sel:taskRoleArn:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
taskRoleArn} -> Maybe Text
taskRoleArn) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:taskRoleArn:AwsEcsTaskDefinitionDetails' :: Maybe Text
taskRoleArn = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The configuration details for the App Mesh proxy.
awsEcsTaskDefinitionDetails_proxyConfiguration :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe AwsEcsTaskDefinitionProxyConfigurationDetails)
awsEcsTaskDefinitionDetails_proxyConfiguration :: (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
 -> f (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_proxyConfiguration = (AwsEcsTaskDefinitionDetails
 -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
    -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails)
     (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration :: Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
$sel:proxyConfiguration:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration} -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
a -> AwsEcsTaskDefinitionDetails
s {$sel:proxyConfiguration:AwsEcsTaskDefinitionDetails' :: Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration = Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
a} :: AwsEcsTaskDefinitionDetails)

-- | The placement constraint objects to use for tasks.
awsEcsTaskDefinitionDetails_placementConstraints :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
awsEcsTaskDefinitionDetails_placementConstraints :: (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
 -> f (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_placementConstraints = (AwsEcsTaskDefinitionDetails
 -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
-> (AwsEcsTaskDefinitionDetails
    -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
    -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints :: Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
$sel:placementConstraints:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints} -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
a -> AwsEcsTaskDefinitionDetails
s {$sel:placementConstraints:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints = Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
a} :: AwsEcsTaskDefinitionDetails) ((Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  -> f (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
 -> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails)
-> ((Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
     -> f (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
    -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
    -> f (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
-> (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
    -> f (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
-> AwsEcsTaskDefinitionDetails
-> f AwsEcsTaskDefinitionDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
-> Iso
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
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 AnIso
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
  [AwsEcsTaskDefinitionPlacementConstraintsDetails]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Docker networking mode to use for the containers in the task.
awsEcsTaskDefinitionDetails_networkMode :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_networkMode :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_networkMode = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
networkMode :: Maybe Text
$sel:networkMode:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
networkMode} -> Maybe Text
networkMode) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:networkMode:AwsEcsTaskDefinitionDetails' :: Maybe Text
networkMode = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

-- | The data volume definitions for the task.
awsEcsTaskDefinitionDetails_volumes :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe [AwsEcsTaskDefinitionVolumesDetails])
awsEcsTaskDefinitionDetails_volumes :: (Maybe [AwsEcsTaskDefinitionVolumesDetails]
 -> f (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_volumes = (AwsEcsTaskDefinitionDetails
 -> Maybe [AwsEcsTaskDefinitionVolumesDetails])
-> (AwsEcsTaskDefinitionDetails
    -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
    -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe [AwsEcsTaskDefinitionVolumesDetails])
     (Maybe [AwsEcsTaskDefinitionVolumesDetails])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes :: Maybe [AwsEcsTaskDefinitionVolumesDetails]
$sel:volumes:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes} -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe [AwsEcsTaskDefinitionVolumesDetails]
a -> AwsEcsTaskDefinitionDetails
s {$sel:volumes:AwsEcsTaskDefinitionDetails' :: Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes = Maybe [AwsEcsTaskDefinitionVolumesDetails]
a} :: AwsEcsTaskDefinitionDetails) ((Maybe [AwsEcsTaskDefinitionVolumesDetails]
  -> f (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
 -> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails)
-> ((Maybe [AwsEcsTaskDefinitionVolumesDetails]
     -> f (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
    -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
    -> f (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
-> (Maybe [AwsEcsTaskDefinitionVolumesDetails]
    -> f (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
-> AwsEcsTaskDefinitionDetails
-> f AwsEcsTaskDefinitionDetails
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AwsEcsTaskDefinitionVolumesDetails]
  [AwsEcsTaskDefinitionVolumesDetails]
  [AwsEcsTaskDefinitionVolumesDetails]
  [AwsEcsTaskDefinitionVolumesDetails]
-> Iso
     (Maybe [AwsEcsTaskDefinitionVolumesDetails])
     (Maybe [AwsEcsTaskDefinitionVolumesDetails])
     (Maybe [AwsEcsTaskDefinitionVolumesDetails])
     (Maybe [AwsEcsTaskDefinitionVolumesDetails])
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 AnIso
  [AwsEcsTaskDefinitionVolumesDetails]
  [AwsEcsTaskDefinitionVolumesDetails]
  [AwsEcsTaskDefinitionVolumesDetails]
  [AwsEcsTaskDefinitionVolumesDetails]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The number of CPU units used by the task.
awsEcsTaskDefinitionDetails_cpu :: Lens.Lens' AwsEcsTaskDefinitionDetails (Prelude.Maybe Prelude.Text)
awsEcsTaskDefinitionDetails_cpu :: (Maybe Text -> f (Maybe Text))
-> AwsEcsTaskDefinitionDetails -> f AwsEcsTaskDefinitionDetails
awsEcsTaskDefinitionDetails_cpu = (AwsEcsTaskDefinitionDetails -> Maybe Text)
-> (AwsEcsTaskDefinitionDetails
    -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Lens
     AwsEcsTaskDefinitionDetails
     AwsEcsTaskDefinitionDetails
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AwsEcsTaskDefinitionDetails' {Maybe Text
cpu :: Maybe Text
$sel:cpu:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
cpu} -> Maybe Text
cpu) (\s :: AwsEcsTaskDefinitionDetails
s@AwsEcsTaskDefinitionDetails' {} Maybe Text
a -> AwsEcsTaskDefinitionDetails
s {$sel:cpu:AwsEcsTaskDefinitionDetails' :: Maybe Text
cpu = Maybe Text
a} :: AwsEcsTaskDefinitionDetails)

instance Core.FromJSON AwsEcsTaskDefinitionDetails where
  parseJSON :: Value -> Parser AwsEcsTaskDefinitionDetails
parseJSON =
    String
-> (Object -> Parser AwsEcsTaskDefinitionDetails)
-> Value
-> Parser AwsEcsTaskDefinitionDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"AwsEcsTaskDefinitionDetails"
      ( \Object
x ->
          Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
-> Maybe Text
-> Maybe [AwsEcsTaskDefinitionVolumesDetails]
-> Maybe Text
-> AwsEcsTaskDefinitionDetails
AwsEcsTaskDefinitionDetails'
            (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
 -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
 -> Maybe Text
 -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
 -> Maybe Text
 -> AwsEcsTaskDefinitionDetails)
-> Parser
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x Object
-> Text
-> Parser
     (Maybe (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InferenceAccelerators"
                            Parser
  (Maybe (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]))
-> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
-> Parser
     (Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ExecutionRoleArn")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PidMode")
            Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Family")
            Parser
  (Maybe [Text]
   -> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"RequiresCompatibilities"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser
     (Maybe (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ContainerDefinitions"
                            Parser
  (Maybe (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]))
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
-> Parser (Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Memory")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"IpcMode")
            Parser
  (Maybe Text
   -> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
      -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TaskRoleArn")
            Parser
  (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
   -> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails)
-> Parser
     (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
      -> Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser (Maybe AwsEcsTaskDefinitionProxyConfigurationDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ProxyConfiguration")
            Parser
  (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
   -> Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
-> Parser
     (Maybe Text
      -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text
      -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser
     (Maybe (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PlacementConstraints"
                            Parser
  (Maybe (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]))
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
-> Parser (Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text
   -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe [AwsEcsTaskDefinitionVolumesDetails]
      -> Maybe Text -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"NetworkMode")
            Parser
  (Maybe [AwsEcsTaskDefinitionVolumesDetails]
   -> Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe [AwsEcsTaskDefinitionVolumesDetails])
-> Parser (Maybe Text -> AwsEcsTaskDefinitionDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser (Maybe (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Volumes" Parser (Maybe (Maybe [AwsEcsTaskDefinitionVolumesDetails]))
-> Maybe [AwsEcsTaskDefinitionVolumesDetails]
-> Parser (Maybe [AwsEcsTaskDefinitionVolumesDetails])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [AwsEcsTaskDefinitionVolumesDetails]
forall a. Monoid a => a
Prelude.mempty)
            Parser (Maybe Text -> AwsEcsTaskDefinitionDetails)
-> Parser (Maybe Text) -> Parser AwsEcsTaskDefinitionDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Cpu")
      )

instance Prelude.Hashable AwsEcsTaskDefinitionDetails

instance Prelude.NFData AwsEcsTaskDefinitionDetails

instance Core.ToJSON AwsEcsTaskDefinitionDetails where
  toJSON :: AwsEcsTaskDefinitionDetails -> Value
toJSON AwsEcsTaskDefinitionDetails' {Maybe [Text]
Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
Maybe [AwsEcsTaskDefinitionVolumesDetails]
Maybe Text
Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
cpu :: Maybe Text
volumes :: Maybe [AwsEcsTaskDefinitionVolumesDetails]
networkMode :: Maybe Text
placementConstraints :: Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
proxyConfiguration :: Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
taskRoleArn :: Maybe Text
ipcMode :: Maybe Text
memory :: Maybe Text
containerDefinitions :: Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
requiresCompatibilities :: Maybe [Text]
family :: Maybe Text
pidMode :: Maybe Text
executionRoleArn :: Maybe Text
inferenceAccelerators :: Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
$sel:cpu:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:volumes:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionVolumesDetails]
$sel:networkMode:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:placementConstraints:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
$sel:proxyConfiguration:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
$sel:taskRoleArn:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:ipcMode:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:memory:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:containerDefinitions:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
$sel:requiresCompatibilities:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe [Text]
$sel:family:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:pidMode:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:executionRoleArn:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails -> Maybe Text
$sel:inferenceAccelerators:AwsEcsTaskDefinitionDetails' :: AwsEcsTaskDefinitionDetails
-> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"InferenceAccelerators" Text -> [AwsEcsTaskDefinitionInferenceAcceleratorsDetails] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsEcsTaskDefinitionInferenceAcceleratorsDetails] -> Pair)
-> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
-> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsEcsTaskDefinitionInferenceAcceleratorsDetails]
inferenceAccelerators,
            (Text
"ExecutionRoleArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
executionRoleArn,
            (Text
"PidMode" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
pidMode,
            (Text
"Family" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
family,
            (Text
"RequiresCompatibilities" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
requiresCompatibilities,
            (Text
"ContainerDefinitions" Text -> [AwsEcsTaskDefinitionContainerDefinitionsDetails] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsEcsTaskDefinitionContainerDefinitionsDetails] -> Pair)
-> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
-> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsEcsTaskDefinitionContainerDefinitionsDetails]
containerDefinitions,
            (Text
"Memory" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
memory,
            (Text
"IpcMode" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
ipcMode,
            (Text
"TaskRoleArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
taskRoleArn,
            (Text
"ProxyConfiguration" Text -> AwsEcsTaskDefinitionProxyConfigurationDetails -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AwsEcsTaskDefinitionProxyConfigurationDetails -> Pair)
-> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
-> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AwsEcsTaskDefinitionProxyConfigurationDetails
proxyConfiguration,
            (Text
"PlacementConstraints" Text -> [AwsEcsTaskDefinitionPlacementConstraintsDetails] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([AwsEcsTaskDefinitionPlacementConstraintsDetails] -> Pair)
-> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
-> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsEcsTaskDefinitionPlacementConstraintsDetails]
placementConstraints,
            (Text
"NetworkMode" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
networkMode,
            (Text
"Volumes" Text -> [AwsEcsTaskDefinitionVolumesDetails] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([AwsEcsTaskDefinitionVolumesDetails] -> Pair)
-> Maybe [AwsEcsTaskDefinitionVolumesDetails] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [AwsEcsTaskDefinitionVolumesDetails]
volumes,
            (Text
"Cpu" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
cpu
          ]
      )