{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.EC2.Types.InstanceRequirementsWithMetadataRequest where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.ArchitectureType
import Amazonka.EC2.Types.InstanceRequirementsRequest
import Amazonka.EC2.Types.VirtualizationType
import qualified Amazonka.Prelude as Prelude
data InstanceRequirementsWithMetadataRequest = InstanceRequirementsWithMetadataRequest'
{
InstanceRequirementsWithMetadataRequest -> Maybe [ArchitectureType]
architectureTypes :: Prelude.Maybe [ArchitectureType],
InstanceRequirementsWithMetadataRequest
-> Maybe InstanceRequirementsRequest
instanceRequirements :: Prelude.Maybe InstanceRequirementsRequest,
InstanceRequirementsWithMetadataRequest
-> Maybe [VirtualizationType]
virtualizationTypes :: Prelude.Maybe [VirtualizationType]
}
deriving (InstanceRequirementsWithMetadataRequest
-> InstanceRequirementsWithMetadataRequest -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstanceRequirementsWithMetadataRequest
-> InstanceRequirementsWithMetadataRequest -> Bool
$c/= :: InstanceRequirementsWithMetadataRequest
-> InstanceRequirementsWithMetadataRequest -> Bool
== :: InstanceRequirementsWithMetadataRequest
-> InstanceRequirementsWithMetadataRequest -> Bool
$c== :: InstanceRequirementsWithMetadataRequest
-> InstanceRequirementsWithMetadataRequest -> Bool
Prelude.Eq, ReadPrec [InstanceRequirementsWithMetadataRequest]
ReadPrec InstanceRequirementsWithMetadataRequest
Int -> ReadS InstanceRequirementsWithMetadataRequest
ReadS [InstanceRequirementsWithMetadataRequest]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InstanceRequirementsWithMetadataRequest]
$creadListPrec :: ReadPrec [InstanceRequirementsWithMetadataRequest]
readPrec :: ReadPrec InstanceRequirementsWithMetadataRequest
$creadPrec :: ReadPrec InstanceRequirementsWithMetadataRequest
readList :: ReadS [InstanceRequirementsWithMetadataRequest]
$creadList :: ReadS [InstanceRequirementsWithMetadataRequest]
readsPrec :: Int -> ReadS InstanceRequirementsWithMetadataRequest
$creadsPrec :: Int -> ReadS InstanceRequirementsWithMetadataRequest
Prelude.Read, Int -> InstanceRequirementsWithMetadataRequest -> ShowS
[InstanceRequirementsWithMetadataRequest] -> ShowS
InstanceRequirementsWithMetadataRequest -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstanceRequirementsWithMetadataRequest] -> ShowS
$cshowList :: [InstanceRequirementsWithMetadataRequest] -> ShowS
show :: InstanceRequirementsWithMetadataRequest -> String
$cshow :: InstanceRequirementsWithMetadataRequest -> String
showsPrec :: Int -> InstanceRequirementsWithMetadataRequest -> ShowS
$cshowsPrec :: Int -> InstanceRequirementsWithMetadataRequest -> ShowS
Prelude.Show, forall x.
Rep InstanceRequirementsWithMetadataRequest x
-> InstanceRequirementsWithMetadataRequest
forall x.
InstanceRequirementsWithMetadataRequest
-> Rep InstanceRequirementsWithMetadataRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InstanceRequirementsWithMetadataRequest x
-> InstanceRequirementsWithMetadataRequest
$cfrom :: forall x.
InstanceRequirementsWithMetadataRequest
-> Rep InstanceRequirementsWithMetadataRequest x
Prelude.Generic)
newInstanceRequirementsWithMetadataRequest ::
InstanceRequirementsWithMetadataRequest
newInstanceRequirementsWithMetadataRequest :: InstanceRequirementsWithMetadataRequest
newInstanceRequirementsWithMetadataRequest =
InstanceRequirementsWithMetadataRequest'
{ $sel:architectureTypes:InstanceRequirementsWithMetadataRequest' :: Maybe [ArchitectureType]
architectureTypes =
forall a. Maybe a
Prelude.Nothing,
$sel:instanceRequirements:InstanceRequirementsWithMetadataRequest' :: Maybe InstanceRequirementsRequest
instanceRequirements =
forall a. Maybe a
Prelude.Nothing,
$sel:virtualizationTypes:InstanceRequirementsWithMetadataRequest' :: Maybe [VirtualizationType]
virtualizationTypes =
forall a. Maybe a
Prelude.Nothing
}
instanceRequirementsWithMetadataRequest_architectureTypes :: Lens.Lens' InstanceRequirementsWithMetadataRequest (Prelude.Maybe [ArchitectureType])
instanceRequirementsWithMetadataRequest_architectureTypes :: Lens'
InstanceRequirementsWithMetadataRequest (Maybe [ArchitectureType])
instanceRequirementsWithMetadataRequest_architectureTypes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceRequirementsWithMetadataRequest' {Maybe [ArchitectureType]
architectureTypes :: Maybe [ArchitectureType]
$sel:architectureTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest -> Maybe [ArchitectureType]
architectureTypes} -> Maybe [ArchitectureType]
architectureTypes) (\s :: InstanceRequirementsWithMetadataRequest
s@InstanceRequirementsWithMetadataRequest' {} Maybe [ArchitectureType]
a -> InstanceRequirementsWithMetadataRequest
s {$sel:architectureTypes:InstanceRequirementsWithMetadataRequest' :: Maybe [ArchitectureType]
architectureTypes = Maybe [ArchitectureType]
a} :: InstanceRequirementsWithMetadataRequest) 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
instanceRequirementsWithMetadataRequest_instanceRequirements :: Lens.Lens' InstanceRequirementsWithMetadataRequest (Prelude.Maybe InstanceRequirementsRequest)
instanceRequirementsWithMetadataRequest_instanceRequirements :: Lens'
InstanceRequirementsWithMetadataRequest
(Maybe InstanceRequirementsRequest)
instanceRequirementsWithMetadataRequest_instanceRequirements = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceRequirementsWithMetadataRequest' {Maybe InstanceRequirementsRequest
instanceRequirements :: Maybe InstanceRequirementsRequest
$sel:instanceRequirements:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe InstanceRequirementsRequest
instanceRequirements} -> Maybe InstanceRequirementsRequest
instanceRequirements) (\s :: InstanceRequirementsWithMetadataRequest
s@InstanceRequirementsWithMetadataRequest' {} Maybe InstanceRequirementsRequest
a -> InstanceRequirementsWithMetadataRequest
s {$sel:instanceRequirements:InstanceRequirementsWithMetadataRequest' :: Maybe InstanceRequirementsRequest
instanceRequirements = Maybe InstanceRequirementsRequest
a} :: InstanceRequirementsWithMetadataRequest)
instanceRequirementsWithMetadataRequest_virtualizationTypes :: Lens.Lens' InstanceRequirementsWithMetadataRequest (Prelude.Maybe [VirtualizationType])
instanceRequirementsWithMetadataRequest_virtualizationTypes :: Lens'
InstanceRequirementsWithMetadataRequest
(Maybe [VirtualizationType])
instanceRequirementsWithMetadataRequest_virtualizationTypes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceRequirementsWithMetadataRequest' {Maybe [VirtualizationType]
virtualizationTypes :: Maybe [VirtualizationType]
$sel:virtualizationTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe [VirtualizationType]
virtualizationTypes} -> Maybe [VirtualizationType]
virtualizationTypes) (\s :: InstanceRequirementsWithMetadataRequest
s@InstanceRequirementsWithMetadataRequest' {} Maybe [VirtualizationType]
a -> InstanceRequirementsWithMetadataRequest
s {$sel:virtualizationTypes:InstanceRequirementsWithMetadataRequest' :: Maybe [VirtualizationType]
virtualizationTypes = Maybe [VirtualizationType]
a} :: InstanceRequirementsWithMetadataRequest) 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
instance
Prelude.Hashable
InstanceRequirementsWithMetadataRequest
where
hashWithSalt :: Int -> InstanceRequirementsWithMetadataRequest -> Int
hashWithSalt
Int
_salt
InstanceRequirementsWithMetadataRequest' {Maybe [ArchitectureType]
Maybe [VirtualizationType]
Maybe InstanceRequirementsRequest
virtualizationTypes :: Maybe [VirtualizationType]
instanceRequirements :: Maybe InstanceRequirementsRequest
architectureTypes :: Maybe [ArchitectureType]
$sel:virtualizationTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe [VirtualizationType]
$sel:instanceRequirements:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe InstanceRequirementsRequest
$sel:architectureTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest -> Maybe [ArchitectureType]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ArchitectureType]
architectureTypes
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceRequirementsRequest
instanceRequirements
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [VirtualizationType]
virtualizationTypes
instance
Prelude.NFData
InstanceRequirementsWithMetadataRequest
where
rnf :: InstanceRequirementsWithMetadataRequest -> ()
rnf InstanceRequirementsWithMetadataRequest' {Maybe [ArchitectureType]
Maybe [VirtualizationType]
Maybe InstanceRequirementsRequest
virtualizationTypes :: Maybe [VirtualizationType]
instanceRequirements :: Maybe InstanceRequirementsRequest
architectureTypes :: Maybe [ArchitectureType]
$sel:virtualizationTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe [VirtualizationType]
$sel:instanceRequirements:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe InstanceRequirementsRequest
$sel:architectureTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest -> Maybe [ArchitectureType]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [ArchitectureType]
architectureTypes
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceRequirementsRequest
instanceRequirements
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [VirtualizationType]
virtualizationTypes
instance
Data.ToQuery
InstanceRequirementsWithMetadataRequest
where
toQuery :: InstanceRequirementsWithMetadataRequest -> QueryString
toQuery InstanceRequirementsWithMetadataRequest' {Maybe [ArchitectureType]
Maybe [VirtualizationType]
Maybe InstanceRequirementsRequest
virtualizationTypes :: Maybe [VirtualizationType]
instanceRequirements :: Maybe InstanceRequirementsRequest
architectureTypes :: Maybe [ArchitectureType]
$sel:virtualizationTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe [VirtualizationType]
$sel:instanceRequirements:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest
-> Maybe InstanceRequirementsRequest
$sel:architectureTypes:InstanceRequirementsWithMetadataRequest' :: InstanceRequirementsWithMetadataRequest -> Maybe [ArchitectureType]
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ forall a. ToQuery a => a -> QueryString
Data.toQuery
( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"ArchitectureType"
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ArchitectureType]
architectureTypes
),
ByteString
"InstanceRequirements" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe InstanceRequirementsRequest
instanceRequirements,
forall a. ToQuery a => a -> QueryString
Data.toQuery
( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"VirtualizationType"
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [VirtualizationType]
virtualizationTypes
)
]