{-# 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.Pipes.Types.BatchResourceRequirement -- 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.Pipes.Types.BatchResourceRequirement where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.Pipes.Types.BatchResourceRequirementType import qualified Amazonka.Prelude as Prelude -- | The type and amount of a resource to assign to a container. The -- supported resources include @GPU@, @MEMORY@, and @VCPU@. -- -- /See:/ 'newBatchResourceRequirement' smart constructor. data BatchResourceRequirement = BatchResourceRequirement' { -- | The type of resource to assign to a container. The supported resources -- include @GPU@, @MEMORY@, and @VCPU@. BatchResourceRequirement -> BatchResourceRequirementType type' :: BatchResourceRequirementType, -- | The quantity of the specified resource to reserve for the container. The -- values vary based on the @type@ specified. -- -- [type=\"GPU\"] -- The number of physical GPUs to reserve for the container. Make sure -- that the number of GPUs reserved for all containers in a job -- doesn\'t exceed the number of available GPUs on the compute resource -- that the job is launched on. -- -- GPUs aren\'t available for jobs that are running on Fargate -- resources. -- -- [type=\"MEMORY\"] -- The memory hard limit (in MiB) present to the container. This -- parameter is supported for jobs that are running on EC2 resources. -- If your container attempts to exceed the memory specified, the -- container is terminated. This parameter maps to @Memory@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--memory@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. You must -- specify at least 4 MiB of memory for a job. This is required but can -- be specified in several places for multi-node parallel (MNP) jobs. -- It must be specified for each node at least once. This parameter -- maps to @Memory@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--memory@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. -- -- If you\'re trying to maximize your resource utilization by providing -- your jobs as much memory as possible for a particular instance type, -- see -- <https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html Memory management> -- in the /Batch User Guide/. -- -- For jobs that are running on Fargate resources, then @value@ is the -- hard limit (in MiB), and must match one of the supported values and -- the @VCPU@ values must be one of the values supported for that -- memory value. -- -- [value = 512] -- @VCPU@ = 0.25 -- -- [value = 1024] -- @VCPU@ = 0.25 or 0.5 -- -- [value = 2048] -- @VCPU@ = 0.25, 0.5, or 1 -- -- [value = 3072] -- @VCPU@ = 0.5, or 1 -- -- [value = 4096] -- @VCPU@ = 0.5, 1, or 2 -- -- [value = 5120, 6144, or 7168] -- @VCPU@ = 1 or 2 -- -- [value = 8192] -- @VCPU@ = 1, 2, 4, or 8 -- -- [value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360] -- @VCPU@ = 2 or 4 -- -- [value = 16384] -- @VCPU@ = 2, 4, or 8 -- -- [value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720] -- @VCPU@ = 4 -- -- [value = 20480, 24576, or 28672] -- @VCPU@ = 4 or 8 -- -- [value = 36864, 45056, 53248, or 61440] -- @VCPU@ = 8 -- -- [value = 32768, 40960, 49152, or 57344] -- @VCPU@ = 8 or 16 -- -- [value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880] -- @VCPU@ = 16 -- -- [type=\"VCPU\"] -- The number of vCPUs reserved for the container. This parameter maps -- to @CpuShares@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--cpu-shares@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. Each -- vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must -- specify at least one vCPU. This is required but can be specified in -- several places; it must be specified for each node at least once. -- -- The default for the Fargate On-Demand vCPU resource count quota is 6 -- vCPUs. For more information about Fargate quotas, see -- <https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate Fargate quotas> -- in the /Amazon Web Services General Reference/. -- -- For jobs that are running on Fargate resources, then @value@ must -- match one of the supported values and the @MEMORY@ values must be -- one of the values supported for that @VCPU@ value. The supported -- values are 0.25, 0.5, 1, 2, 4, 8, and 16 -- -- [value = 0.25] -- @MEMORY@ = 512, 1024, or 2048 -- -- [value = 0.5] -- @MEMORY@ = 1024, 2048, 3072, or 4096 -- -- [value = 1] -- @MEMORY@ = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 -- -- [value = 2] -- @MEMORY@ = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, -- 12288, 13312, 14336, 15360, or 16384 -- -- [value = 4] -- @MEMORY@ = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, -- 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, -- 25600, 26624, 27648, 28672, 29696, or 30720 -- -- [value = 8] -- @MEMORY@ = 16384, 20480, 24576, 28672, 32768, 36864, 40960, -- 45056, 49152, 53248, 57344, or 61440 -- -- [value = 16] -- @MEMORY@ = 32768, 40960, 49152, 57344, 65536, 73728, 81920, -- 90112, 98304, 106496, 114688, or 122880 BatchResourceRequirement -> Text value :: Prelude.Text } deriving (BatchResourceRequirement -> BatchResourceRequirement -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: BatchResourceRequirement -> BatchResourceRequirement -> Bool $c/= :: BatchResourceRequirement -> BatchResourceRequirement -> Bool == :: BatchResourceRequirement -> BatchResourceRequirement -> Bool $c== :: BatchResourceRequirement -> BatchResourceRequirement -> Bool Prelude.Eq, ReadPrec [BatchResourceRequirement] ReadPrec BatchResourceRequirement Int -> ReadS BatchResourceRequirement ReadS [BatchResourceRequirement] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [BatchResourceRequirement] $creadListPrec :: ReadPrec [BatchResourceRequirement] readPrec :: ReadPrec BatchResourceRequirement $creadPrec :: ReadPrec BatchResourceRequirement readList :: ReadS [BatchResourceRequirement] $creadList :: ReadS [BatchResourceRequirement] readsPrec :: Int -> ReadS BatchResourceRequirement $creadsPrec :: Int -> ReadS BatchResourceRequirement Prelude.Read, Int -> BatchResourceRequirement -> ShowS [BatchResourceRequirement] -> ShowS BatchResourceRequirement -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [BatchResourceRequirement] -> ShowS $cshowList :: [BatchResourceRequirement] -> ShowS show :: BatchResourceRequirement -> String $cshow :: BatchResourceRequirement -> String showsPrec :: Int -> BatchResourceRequirement -> ShowS $cshowsPrec :: Int -> BatchResourceRequirement -> ShowS Prelude.Show, forall x. Rep BatchResourceRequirement x -> BatchResourceRequirement forall x. BatchResourceRequirement -> Rep BatchResourceRequirement x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep BatchResourceRequirement x -> BatchResourceRequirement $cfrom :: forall x. BatchResourceRequirement -> Rep BatchResourceRequirement x Prelude.Generic) -- | -- Create a value of 'BatchResourceRequirement' 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: -- -- 'type'', 'batchResourceRequirement_type' - The type of resource to assign to a container. The supported resources -- include @GPU@, @MEMORY@, and @VCPU@. -- -- 'value', 'batchResourceRequirement_value' - The quantity of the specified resource to reserve for the container. The -- values vary based on the @type@ specified. -- -- [type=\"GPU\"] -- The number of physical GPUs to reserve for the container. Make sure -- that the number of GPUs reserved for all containers in a job -- doesn\'t exceed the number of available GPUs on the compute resource -- that the job is launched on. -- -- GPUs aren\'t available for jobs that are running on Fargate -- resources. -- -- [type=\"MEMORY\"] -- The memory hard limit (in MiB) present to the container. This -- parameter is supported for jobs that are running on EC2 resources. -- If your container attempts to exceed the memory specified, the -- container is terminated. This parameter maps to @Memory@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--memory@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. You must -- specify at least 4 MiB of memory for a job. This is required but can -- be specified in several places for multi-node parallel (MNP) jobs. -- It must be specified for each node at least once. This parameter -- maps to @Memory@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--memory@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. -- -- If you\'re trying to maximize your resource utilization by providing -- your jobs as much memory as possible for a particular instance type, -- see -- <https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html Memory management> -- in the /Batch User Guide/. -- -- For jobs that are running on Fargate resources, then @value@ is the -- hard limit (in MiB), and must match one of the supported values and -- the @VCPU@ values must be one of the values supported for that -- memory value. -- -- [value = 512] -- @VCPU@ = 0.25 -- -- [value = 1024] -- @VCPU@ = 0.25 or 0.5 -- -- [value = 2048] -- @VCPU@ = 0.25, 0.5, or 1 -- -- [value = 3072] -- @VCPU@ = 0.5, or 1 -- -- [value = 4096] -- @VCPU@ = 0.5, 1, or 2 -- -- [value = 5120, 6144, or 7168] -- @VCPU@ = 1 or 2 -- -- [value = 8192] -- @VCPU@ = 1, 2, 4, or 8 -- -- [value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360] -- @VCPU@ = 2 or 4 -- -- [value = 16384] -- @VCPU@ = 2, 4, or 8 -- -- [value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720] -- @VCPU@ = 4 -- -- [value = 20480, 24576, or 28672] -- @VCPU@ = 4 or 8 -- -- [value = 36864, 45056, 53248, or 61440] -- @VCPU@ = 8 -- -- [value = 32768, 40960, 49152, or 57344] -- @VCPU@ = 8 or 16 -- -- [value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880] -- @VCPU@ = 16 -- -- [type=\"VCPU\"] -- The number of vCPUs reserved for the container. This parameter maps -- to @CpuShares@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--cpu-shares@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. Each -- vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must -- specify at least one vCPU. This is required but can be specified in -- several places; it must be specified for each node at least once. -- -- The default for the Fargate On-Demand vCPU resource count quota is 6 -- vCPUs. For more information about Fargate quotas, see -- <https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate Fargate quotas> -- in the /Amazon Web Services General Reference/. -- -- For jobs that are running on Fargate resources, then @value@ must -- match one of the supported values and the @MEMORY@ values must be -- one of the values supported for that @VCPU@ value. The supported -- values are 0.25, 0.5, 1, 2, 4, 8, and 16 -- -- [value = 0.25] -- @MEMORY@ = 512, 1024, or 2048 -- -- [value = 0.5] -- @MEMORY@ = 1024, 2048, 3072, or 4096 -- -- [value = 1] -- @MEMORY@ = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 -- -- [value = 2] -- @MEMORY@ = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, -- 12288, 13312, 14336, 15360, or 16384 -- -- [value = 4] -- @MEMORY@ = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, -- 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, -- 25600, 26624, 27648, 28672, 29696, or 30720 -- -- [value = 8] -- @MEMORY@ = 16384, 20480, 24576, 28672, 32768, 36864, 40960, -- 45056, 49152, 53248, 57344, or 61440 -- -- [value = 16] -- @MEMORY@ = 32768, 40960, 49152, 57344, 65536, 73728, 81920, -- 90112, 98304, 106496, 114688, or 122880 newBatchResourceRequirement :: -- | 'type'' BatchResourceRequirementType -> -- | 'value' Prelude.Text -> BatchResourceRequirement newBatchResourceRequirement :: BatchResourceRequirementType -> Text -> BatchResourceRequirement newBatchResourceRequirement BatchResourceRequirementType pType_ Text pValue_ = BatchResourceRequirement' { $sel:type':BatchResourceRequirement' :: BatchResourceRequirementType type' = BatchResourceRequirementType pType_, $sel:value:BatchResourceRequirement' :: Text value = Text pValue_ } -- | The type of resource to assign to a container. The supported resources -- include @GPU@, @MEMORY@, and @VCPU@. batchResourceRequirement_type :: Lens.Lens' BatchResourceRequirement BatchResourceRequirementType batchResourceRequirement_type :: Lens' BatchResourceRequirement BatchResourceRequirementType batchResourceRequirement_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\BatchResourceRequirement' {BatchResourceRequirementType type' :: BatchResourceRequirementType $sel:type':BatchResourceRequirement' :: BatchResourceRequirement -> BatchResourceRequirementType type'} -> BatchResourceRequirementType type') (\s :: BatchResourceRequirement s@BatchResourceRequirement' {} BatchResourceRequirementType a -> BatchResourceRequirement s {$sel:type':BatchResourceRequirement' :: BatchResourceRequirementType type' = BatchResourceRequirementType a} :: BatchResourceRequirement) -- | The quantity of the specified resource to reserve for the container. The -- values vary based on the @type@ specified. -- -- [type=\"GPU\"] -- The number of physical GPUs to reserve for the container. Make sure -- that the number of GPUs reserved for all containers in a job -- doesn\'t exceed the number of available GPUs on the compute resource -- that the job is launched on. -- -- GPUs aren\'t available for jobs that are running on Fargate -- resources. -- -- [type=\"MEMORY\"] -- The memory hard limit (in MiB) present to the container. This -- parameter is supported for jobs that are running on EC2 resources. -- If your container attempts to exceed the memory specified, the -- container is terminated. This parameter maps to @Memory@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--memory@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. You must -- specify at least 4 MiB of memory for a job. This is required but can -- be specified in several places for multi-node parallel (MNP) jobs. -- It must be specified for each node at least once. This parameter -- maps to @Memory@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--memory@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. -- -- If you\'re trying to maximize your resource utilization by providing -- your jobs as much memory as possible for a particular instance type, -- see -- <https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html Memory management> -- in the /Batch User Guide/. -- -- For jobs that are running on Fargate resources, then @value@ is the -- hard limit (in MiB), and must match one of the supported values and -- the @VCPU@ values must be one of the values supported for that -- memory value. -- -- [value = 512] -- @VCPU@ = 0.25 -- -- [value = 1024] -- @VCPU@ = 0.25 or 0.5 -- -- [value = 2048] -- @VCPU@ = 0.25, 0.5, or 1 -- -- [value = 3072] -- @VCPU@ = 0.5, or 1 -- -- [value = 4096] -- @VCPU@ = 0.5, 1, or 2 -- -- [value = 5120, 6144, or 7168] -- @VCPU@ = 1 or 2 -- -- [value = 8192] -- @VCPU@ = 1, 2, 4, or 8 -- -- [value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360] -- @VCPU@ = 2 or 4 -- -- [value = 16384] -- @VCPU@ = 2, 4, or 8 -- -- [value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720] -- @VCPU@ = 4 -- -- [value = 20480, 24576, or 28672] -- @VCPU@ = 4 or 8 -- -- [value = 36864, 45056, 53248, or 61440] -- @VCPU@ = 8 -- -- [value = 32768, 40960, 49152, or 57344] -- @VCPU@ = 8 or 16 -- -- [value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880] -- @VCPU@ = 16 -- -- [type=\"VCPU\"] -- The number of vCPUs reserved for the container. This parameter maps -- to @CpuShares@ in the -- <https://docs.docker.com/engine/api/v1.23/#create-a-container Create a container> -- section of the -- <https://docs.docker.com/engine/api/v1.23/ Docker Remote API> and -- the @--cpu-shares@ option to -- <https://docs.docker.com/engine/reference/run/ docker run>. Each -- vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must -- specify at least one vCPU. This is required but can be specified in -- several places; it must be specified for each node at least once. -- -- The default for the Fargate On-Demand vCPU resource count quota is 6 -- vCPUs. For more information about Fargate quotas, see -- <https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate Fargate quotas> -- in the /Amazon Web Services General Reference/. -- -- For jobs that are running on Fargate resources, then @value@ must -- match one of the supported values and the @MEMORY@ values must be -- one of the values supported for that @VCPU@ value. The supported -- values are 0.25, 0.5, 1, 2, 4, 8, and 16 -- -- [value = 0.25] -- @MEMORY@ = 512, 1024, or 2048 -- -- [value = 0.5] -- @MEMORY@ = 1024, 2048, 3072, or 4096 -- -- [value = 1] -- @MEMORY@ = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 -- -- [value = 2] -- @MEMORY@ = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, -- 12288, 13312, 14336, 15360, or 16384 -- -- [value = 4] -- @MEMORY@ = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, -- 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, -- 25600, 26624, 27648, 28672, 29696, or 30720 -- -- [value = 8] -- @MEMORY@ = 16384, 20480, 24576, 28672, 32768, 36864, 40960, -- 45056, 49152, 53248, 57344, or 61440 -- -- [value = 16] -- @MEMORY@ = 32768, 40960, 49152, 57344, 65536, 73728, 81920, -- 90112, 98304, 106496, 114688, or 122880 batchResourceRequirement_value :: Lens.Lens' BatchResourceRequirement Prelude.Text batchResourceRequirement_value :: Lens' BatchResourceRequirement Text batchResourceRequirement_value = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\BatchResourceRequirement' {Text value :: Text $sel:value:BatchResourceRequirement' :: BatchResourceRequirement -> Text value} -> Text value) (\s :: BatchResourceRequirement s@BatchResourceRequirement' {} Text a -> BatchResourceRequirement s {$sel:value:BatchResourceRequirement' :: Text value = Text a} :: BatchResourceRequirement) instance Data.FromJSON BatchResourceRequirement where parseJSON :: Value -> Parser BatchResourceRequirement parseJSON = forall a. String -> (Object -> Parser a) -> Value -> Parser a Data.withObject String "BatchResourceRequirement" ( \Object x -> BatchResourceRequirementType -> Text -> BatchResourceRequirement BatchResourceRequirement' forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x forall a. FromJSON a => Object -> Key -> Parser a Data..: Key "Type") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser a Data..: Key "Value") ) instance Prelude.Hashable BatchResourceRequirement where hashWithSalt :: Int -> BatchResourceRequirement -> Int hashWithSalt Int _salt BatchResourceRequirement' {Text BatchResourceRequirementType value :: Text type' :: BatchResourceRequirementType $sel:value:BatchResourceRequirement' :: BatchResourceRequirement -> Text $sel:type':BatchResourceRequirement' :: BatchResourceRequirement -> BatchResourceRequirementType ..} = Int _salt forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` BatchResourceRequirementType type' forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Text value instance Prelude.NFData BatchResourceRequirement where rnf :: BatchResourceRequirement -> () rnf BatchResourceRequirement' {Text BatchResourceRequirementType value :: Text type' :: BatchResourceRequirementType $sel:value:BatchResourceRequirement' :: BatchResourceRequirement -> Text $sel:type':BatchResourceRequirement' :: BatchResourceRequirement -> BatchResourceRequirementType ..} = forall a. NFData a => a -> () Prelude.rnf BatchResourceRequirementType type' seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Text value instance Data.ToJSON BatchResourceRequirement where toJSON :: BatchResourceRequirement -> Value toJSON BatchResourceRequirement' {Text BatchResourceRequirementType value :: Text type' :: BatchResourceRequirementType $sel:value:BatchResourceRequirement' :: BatchResourceRequirement -> Text $sel:type':BatchResourceRequirement' :: BatchResourceRequirement -> BatchResourceRequirementType ..} = [Pair] -> Value Data.object ( forall a. [Maybe a] -> [a] Prelude.catMaybes [ forall a. a -> Maybe a Prelude.Just (Key "Type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..= BatchResourceRequirementType type'), forall a. a -> Maybe a Prelude.Just (Key "Value" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..= Text value) ] )