{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.GameLift.DescribeEC2InstanceLimits
(
DescribeEC2InstanceLimits (..),
newDescribeEC2InstanceLimits,
describeEC2InstanceLimits_eC2InstanceType,
describeEC2InstanceLimits_location,
DescribeEC2InstanceLimitsResponse (..),
newDescribeEC2InstanceLimitsResponse,
describeEC2InstanceLimitsResponse_eC2InstanceLimits,
describeEC2InstanceLimitsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GameLift.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeEC2InstanceLimits = DescribeEC2InstanceLimits'
{
DescribeEC2InstanceLimits -> Maybe EC2InstanceType
eC2InstanceType :: Prelude.Maybe EC2InstanceType,
DescribeEC2InstanceLimits -> Maybe Text
location :: Prelude.Maybe Prelude.Text
}
deriving (DescribeEC2InstanceLimits -> DescribeEC2InstanceLimits -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEC2InstanceLimits -> DescribeEC2InstanceLimits -> Bool
$c/= :: DescribeEC2InstanceLimits -> DescribeEC2InstanceLimits -> Bool
== :: DescribeEC2InstanceLimits -> DescribeEC2InstanceLimits -> Bool
$c== :: DescribeEC2InstanceLimits -> DescribeEC2InstanceLimits -> Bool
Prelude.Eq, ReadPrec [DescribeEC2InstanceLimits]
ReadPrec DescribeEC2InstanceLimits
Int -> ReadS DescribeEC2InstanceLimits
ReadS [DescribeEC2InstanceLimits]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEC2InstanceLimits]
$creadListPrec :: ReadPrec [DescribeEC2InstanceLimits]
readPrec :: ReadPrec DescribeEC2InstanceLimits
$creadPrec :: ReadPrec DescribeEC2InstanceLimits
readList :: ReadS [DescribeEC2InstanceLimits]
$creadList :: ReadS [DescribeEC2InstanceLimits]
readsPrec :: Int -> ReadS DescribeEC2InstanceLimits
$creadsPrec :: Int -> ReadS DescribeEC2InstanceLimits
Prelude.Read, Int -> DescribeEC2InstanceLimits -> ShowS
[DescribeEC2InstanceLimits] -> ShowS
DescribeEC2InstanceLimits -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEC2InstanceLimits] -> ShowS
$cshowList :: [DescribeEC2InstanceLimits] -> ShowS
show :: DescribeEC2InstanceLimits -> String
$cshow :: DescribeEC2InstanceLimits -> String
showsPrec :: Int -> DescribeEC2InstanceLimits -> ShowS
$cshowsPrec :: Int -> DescribeEC2InstanceLimits -> ShowS
Prelude.Show, forall x.
Rep DescribeEC2InstanceLimits x -> DescribeEC2InstanceLimits
forall x.
DescribeEC2InstanceLimits -> Rep DescribeEC2InstanceLimits x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeEC2InstanceLimits x -> DescribeEC2InstanceLimits
$cfrom :: forall x.
DescribeEC2InstanceLimits -> Rep DescribeEC2InstanceLimits x
Prelude.Generic)
newDescribeEC2InstanceLimits ::
DescribeEC2InstanceLimits
newDescribeEC2InstanceLimits :: DescribeEC2InstanceLimits
newDescribeEC2InstanceLimits =
DescribeEC2InstanceLimits'
{ $sel:eC2InstanceType:DescribeEC2InstanceLimits' :: Maybe EC2InstanceType
eC2InstanceType =
forall a. Maybe a
Prelude.Nothing,
$sel:location:DescribeEC2InstanceLimits' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing
}
describeEC2InstanceLimits_eC2InstanceType :: Lens.Lens' DescribeEC2InstanceLimits (Prelude.Maybe EC2InstanceType)
describeEC2InstanceLimits_eC2InstanceType :: Lens' DescribeEC2InstanceLimits (Maybe EC2InstanceType)
describeEC2InstanceLimits_eC2InstanceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEC2InstanceLimits' {Maybe EC2InstanceType
eC2InstanceType :: Maybe EC2InstanceType
$sel:eC2InstanceType:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe EC2InstanceType
eC2InstanceType} -> Maybe EC2InstanceType
eC2InstanceType) (\s :: DescribeEC2InstanceLimits
s@DescribeEC2InstanceLimits' {} Maybe EC2InstanceType
a -> DescribeEC2InstanceLimits
s {$sel:eC2InstanceType:DescribeEC2InstanceLimits' :: Maybe EC2InstanceType
eC2InstanceType = Maybe EC2InstanceType
a} :: DescribeEC2InstanceLimits)
describeEC2InstanceLimits_location :: Lens.Lens' DescribeEC2InstanceLimits (Prelude.Maybe Prelude.Text)
describeEC2InstanceLimits_location :: Lens' DescribeEC2InstanceLimits (Maybe Text)
describeEC2InstanceLimits_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEC2InstanceLimits' {Maybe Text
location :: Maybe Text
$sel:location:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe Text
location} -> Maybe Text
location) (\s :: DescribeEC2InstanceLimits
s@DescribeEC2InstanceLimits' {} Maybe Text
a -> DescribeEC2InstanceLimits
s {$sel:location:DescribeEC2InstanceLimits' :: Maybe Text
location = Maybe Text
a} :: DescribeEC2InstanceLimits)
instance Core.AWSRequest DescribeEC2InstanceLimits where
type
AWSResponse DescribeEC2InstanceLimits =
DescribeEC2InstanceLimitsResponse
request :: (Service -> Service)
-> DescribeEC2InstanceLimits -> Request DescribeEC2InstanceLimits
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeEC2InstanceLimits
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeEC2InstanceLimits)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe [EC2InstanceLimit]
-> Int -> DescribeEC2InstanceLimitsResponse
DescribeEC2InstanceLimitsResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"EC2InstanceLimits"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable DescribeEC2InstanceLimits where
hashWithSalt :: Int -> DescribeEC2InstanceLimits -> Int
hashWithSalt Int
_salt DescribeEC2InstanceLimits' {Maybe Text
Maybe EC2InstanceType
location :: Maybe Text
eC2InstanceType :: Maybe EC2InstanceType
$sel:location:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe Text
$sel:eC2InstanceType:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe EC2InstanceType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EC2InstanceType
eC2InstanceType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
location
instance Prelude.NFData DescribeEC2InstanceLimits where
rnf :: DescribeEC2InstanceLimits -> ()
rnf DescribeEC2InstanceLimits' {Maybe Text
Maybe EC2InstanceType
location :: Maybe Text
eC2InstanceType :: Maybe EC2InstanceType
$sel:location:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe Text
$sel:eC2InstanceType:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe EC2InstanceType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe EC2InstanceType
eC2InstanceType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
location
instance Data.ToHeaders DescribeEC2InstanceLimits where
toHeaders :: DescribeEC2InstanceLimits -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"GameLift.DescribeEC2InstanceLimits" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON DescribeEC2InstanceLimits where
toJSON :: DescribeEC2InstanceLimits -> Value
toJSON DescribeEC2InstanceLimits' {Maybe Text
Maybe EC2InstanceType
location :: Maybe Text
eC2InstanceType :: Maybe EC2InstanceType
$sel:location:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe Text
$sel:eC2InstanceType:DescribeEC2InstanceLimits' :: DescribeEC2InstanceLimits -> Maybe EC2InstanceType
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"EC2InstanceType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EC2InstanceType
eC2InstanceType,
(Key
"Location" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
location
]
)
instance Data.ToPath DescribeEC2InstanceLimits where
toPath :: DescribeEC2InstanceLimits -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeEC2InstanceLimits where
toQuery :: DescribeEC2InstanceLimits -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeEC2InstanceLimitsResponse = DescribeEC2InstanceLimitsResponse'
{
DescribeEC2InstanceLimitsResponse -> Maybe [EC2InstanceLimit]
eC2InstanceLimits :: Prelude.Maybe [EC2InstanceLimit],
DescribeEC2InstanceLimitsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeEC2InstanceLimitsResponse
-> DescribeEC2InstanceLimitsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEC2InstanceLimitsResponse
-> DescribeEC2InstanceLimitsResponse -> Bool
$c/= :: DescribeEC2InstanceLimitsResponse
-> DescribeEC2InstanceLimitsResponse -> Bool
== :: DescribeEC2InstanceLimitsResponse
-> DescribeEC2InstanceLimitsResponse -> Bool
$c== :: DescribeEC2InstanceLimitsResponse
-> DescribeEC2InstanceLimitsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeEC2InstanceLimitsResponse]
ReadPrec DescribeEC2InstanceLimitsResponse
Int -> ReadS DescribeEC2InstanceLimitsResponse
ReadS [DescribeEC2InstanceLimitsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEC2InstanceLimitsResponse]
$creadListPrec :: ReadPrec [DescribeEC2InstanceLimitsResponse]
readPrec :: ReadPrec DescribeEC2InstanceLimitsResponse
$creadPrec :: ReadPrec DescribeEC2InstanceLimitsResponse
readList :: ReadS [DescribeEC2InstanceLimitsResponse]
$creadList :: ReadS [DescribeEC2InstanceLimitsResponse]
readsPrec :: Int -> ReadS DescribeEC2InstanceLimitsResponse
$creadsPrec :: Int -> ReadS DescribeEC2InstanceLimitsResponse
Prelude.Read, Int -> DescribeEC2InstanceLimitsResponse -> ShowS
[DescribeEC2InstanceLimitsResponse] -> ShowS
DescribeEC2InstanceLimitsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEC2InstanceLimitsResponse] -> ShowS
$cshowList :: [DescribeEC2InstanceLimitsResponse] -> ShowS
show :: DescribeEC2InstanceLimitsResponse -> String
$cshow :: DescribeEC2InstanceLimitsResponse -> String
showsPrec :: Int -> DescribeEC2InstanceLimitsResponse -> ShowS
$cshowsPrec :: Int -> DescribeEC2InstanceLimitsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeEC2InstanceLimitsResponse x
-> DescribeEC2InstanceLimitsResponse
forall x.
DescribeEC2InstanceLimitsResponse
-> Rep DescribeEC2InstanceLimitsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeEC2InstanceLimitsResponse x
-> DescribeEC2InstanceLimitsResponse
$cfrom :: forall x.
DescribeEC2InstanceLimitsResponse
-> Rep DescribeEC2InstanceLimitsResponse x
Prelude.Generic)
newDescribeEC2InstanceLimitsResponse ::
Prelude.Int ->
DescribeEC2InstanceLimitsResponse
newDescribeEC2InstanceLimitsResponse :: Int -> DescribeEC2InstanceLimitsResponse
newDescribeEC2InstanceLimitsResponse Int
pHttpStatus_ =
DescribeEC2InstanceLimitsResponse'
{ $sel:eC2InstanceLimits:DescribeEC2InstanceLimitsResponse' :: Maybe [EC2InstanceLimit]
eC2InstanceLimits =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeEC2InstanceLimitsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeEC2InstanceLimitsResponse_eC2InstanceLimits :: Lens.Lens' DescribeEC2InstanceLimitsResponse (Prelude.Maybe [EC2InstanceLimit])
describeEC2InstanceLimitsResponse_eC2InstanceLimits :: Lens' DescribeEC2InstanceLimitsResponse (Maybe [EC2InstanceLimit])
describeEC2InstanceLimitsResponse_eC2InstanceLimits = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEC2InstanceLimitsResponse' {Maybe [EC2InstanceLimit]
eC2InstanceLimits :: Maybe [EC2InstanceLimit]
$sel:eC2InstanceLimits:DescribeEC2InstanceLimitsResponse' :: DescribeEC2InstanceLimitsResponse -> Maybe [EC2InstanceLimit]
eC2InstanceLimits} -> Maybe [EC2InstanceLimit]
eC2InstanceLimits) (\s :: DescribeEC2InstanceLimitsResponse
s@DescribeEC2InstanceLimitsResponse' {} Maybe [EC2InstanceLimit]
a -> DescribeEC2InstanceLimitsResponse
s {$sel:eC2InstanceLimits:DescribeEC2InstanceLimitsResponse' :: Maybe [EC2InstanceLimit]
eC2InstanceLimits = Maybe [EC2InstanceLimit]
a} :: DescribeEC2InstanceLimitsResponse) 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
describeEC2InstanceLimitsResponse_httpStatus :: Lens.Lens' DescribeEC2InstanceLimitsResponse Prelude.Int
describeEC2InstanceLimitsResponse_httpStatus :: Lens' DescribeEC2InstanceLimitsResponse Int
describeEC2InstanceLimitsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEC2InstanceLimitsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeEC2InstanceLimitsResponse' :: DescribeEC2InstanceLimitsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeEC2InstanceLimitsResponse
s@DescribeEC2InstanceLimitsResponse' {} Int
a -> DescribeEC2InstanceLimitsResponse
s {$sel:httpStatus:DescribeEC2InstanceLimitsResponse' :: Int
httpStatus = Int
a} :: DescribeEC2InstanceLimitsResponse)
instance
Prelude.NFData
DescribeEC2InstanceLimitsResponse
where
rnf :: DescribeEC2InstanceLimitsResponse -> ()
rnf DescribeEC2InstanceLimitsResponse' {Int
Maybe [EC2InstanceLimit]
httpStatus :: Int
eC2InstanceLimits :: Maybe [EC2InstanceLimit]
$sel:httpStatus:DescribeEC2InstanceLimitsResponse' :: DescribeEC2InstanceLimitsResponse -> Int
$sel:eC2InstanceLimits:DescribeEC2InstanceLimitsResponse' :: DescribeEC2InstanceLimitsResponse -> Maybe [EC2InstanceLimit]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [EC2InstanceLimit]
eC2InstanceLimits
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus