{-# 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.OpenSearch.DescribeInstanceTypeLimits
(
DescribeInstanceTypeLimits (..),
newDescribeInstanceTypeLimits,
describeInstanceTypeLimits_domainName,
describeInstanceTypeLimits_instanceType,
describeInstanceTypeLimits_engineVersion,
DescribeInstanceTypeLimitsResponse (..),
newDescribeInstanceTypeLimitsResponse,
describeInstanceTypeLimitsResponse_limitsByRole,
describeInstanceTypeLimitsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.OpenSearch.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeInstanceTypeLimits = DescribeInstanceTypeLimits'
{
DescribeInstanceTypeLimits -> Maybe Text
domainName :: Prelude.Maybe Prelude.Text,
DescribeInstanceTypeLimits -> OpenSearchPartitionInstanceType
instanceType :: OpenSearchPartitionInstanceType,
DescribeInstanceTypeLimits -> Text
engineVersion :: Prelude.Text
}
deriving (DescribeInstanceTypeLimits -> DescribeInstanceTypeLimits -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeInstanceTypeLimits -> DescribeInstanceTypeLimits -> Bool
$c/= :: DescribeInstanceTypeLimits -> DescribeInstanceTypeLimits -> Bool
== :: DescribeInstanceTypeLimits -> DescribeInstanceTypeLimits -> Bool
$c== :: DescribeInstanceTypeLimits -> DescribeInstanceTypeLimits -> Bool
Prelude.Eq, ReadPrec [DescribeInstanceTypeLimits]
ReadPrec DescribeInstanceTypeLimits
Int -> ReadS DescribeInstanceTypeLimits
ReadS [DescribeInstanceTypeLimits]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeInstanceTypeLimits]
$creadListPrec :: ReadPrec [DescribeInstanceTypeLimits]
readPrec :: ReadPrec DescribeInstanceTypeLimits
$creadPrec :: ReadPrec DescribeInstanceTypeLimits
readList :: ReadS [DescribeInstanceTypeLimits]
$creadList :: ReadS [DescribeInstanceTypeLimits]
readsPrec :: Int -> ReadS DescribeInstanceTypeLimits
$creadsPrec :: Int -> ReadS DescribeInstanceTypeLimits
Prelude.Read, Int -> DescribeInstanceTypeLimits -> ShowS
[DescribeInstanceTypeLimits] -> ShowS
DescribeInstanceTypeLimits -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeInstanceTypeLimits] -> ShowS
$cshowList :: [DescribeInstanceTypeLimits] -> ShowS
show :: DescribeInstanceTypeLimits -> String
$cshow :: DescribeInstanceTypeLimits -> String
showsPrec :: Int -> DescribeInstanceTypeLimits -> ShowS
$cshowsPrec :: Int -> DescribeInstanceTypeLimits -> ShowS
Prelude.Show, forall x.
Rep DescribeInstanceTypeLimits x -> DescribeInstanceTypeLimits
forall x.
DescribeInstanceTypeLimits -> Rep DescribeInstanceTypeLimits x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeInstanceTypeLimits x -> DescribeInstanceTypeLimits
$cfrom :: forall x.
DescribeInstanceTypeLimits -> Rep DescribeInstanceTypeLimits x
Prelude.Generic)
newDescribeInstanceTypeLimits ::
OpenSearchPartitionInstanceType ->
Prelude.Text ->
DescribeInstanceTypeLimits
newDescribeInstanceTypeLimits :: OpenSearchPartitionInstanceType
-> Text -> DescribeInstanceTypeLimits
newDescribeInstanceTypeLimits
OpenSearchPartitionInstanceType
pInstanceType_
Text
pEngineVersion_ =
DescribeInstanceTypeLimits'
{ $sel:domainName:DescribeInstanceTypeLimits' :: Maybe Text
domainName =
forall a. Maybe a
Prelude.Nothing,
$sel:instanceType:DescribeInstanceTypeLimits' :: OpenSearchPartitionInstanceType
instanceType = OpenSearchPartitionInstanceType
pInstanceType_,
$sel:engineVersion:DescribeInstanceTypeLimits' :: Text
engineVersion = Text
pEngineVersion_
}
describeInstanceTypeLimits_domainName :: Lens.Lens' DescribeInstanceTypeLimits (Prelude.Maybe Prelude.Text)
describeInstanceTypeLimits_domainName :: Lens' DescribeInstanceTypeLimits (Maybe Text)
describeInstanceTypeLimits_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInstanceTypeLimits' {Maybe Text
domainName :: Maybe Text
$sel:domainName:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Maybe Text
domainName} -> Maybe Text
domainName) (\s :: DescribeInstanceTypeLimits
s@DescribeInstanceTypeLimits' {} Maybe Text
a -> DescribeInstanceTypeLimits
s {$sel:domainName:DescribeInstanceTypeLimits' :: Maybe Text
domainName = Maybe Text
a} :: DescribeInstanceTypeLimits)
describeInstanceTypeLimits_instanceType :: Lens.Lens' DescribeInstanceTypeLimits OpenSearchPartitionInstanceType
describeInstanceTypeLimits_instanceType :: Lens' DescribeInstanceTypeLimits OpenSearchPartitionInstanceType
describeInstanceTypeLimits_instanceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInstanceTypeLimits' {OpenSearchPartitionInstanceType
instanceType :: OpenSearchPartitionInstanceType
$sel:instanceType:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> OpenSearchPartitionInstanceType
instanceType} -> OpenSearchPartitionInstanceType
instanceType) (\s :: DescribeInstanceTypeLimits
s@DescribeInstanceTypeLimits' {} OpenSearchPartitionInstanceType
a -> DescribeInstanceTypeLimits
s {$sel:instanceType:DescribeInstanceTypeLimits' :: OpenSearchPartitionInstanceType
instanceType = OpenSearchPartitionInstanceType
a} :: DescribeInstanceTypeLimits)
describeInstanceTypeLimits_engineVersion :: Lens.Lens' DescribeInstanceTypeLimits Prelude.Text
describeInstanceTypeLimits_engineVersion :: Lens' DescribeInstanceTypeLimits Text
describeInstanceTypeLimits_engineVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInstanceTypeLimits' {Text
engineVersion :: Text
$sel:engineVersion:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Text
engineVersion} -> Text
engineVersion) (\s :: DescribeInstanceTypeLimits
s@DescribeInstanceTypeLimits' {} Text
a -> DescribeInstanceTypeLimits
s {$sel:engineVersion:DescribeInstanceTypeLimits' :: Text
engineVersion = Text
a} :: DescribeInstanceTypeLimits)
instance Core.AWSRequest DescribeInstanceTypeLimits where
type
AWSResponse DescribeInstanceTypeLimits =
DescribeInstanceTypeLimitsResponse
request :: (Service -> Service)
-> DescribeInstanceTypeLimits -> Request DescribeInstanceTypeLimits
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeInstanceTypeLimits
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeInstanceTypeLimits)))
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 (HashMap Text Limits)
-> Int -> DescribeInstanceTypeLimitsResponse
DescribeInstanceTypeLimitsResponse'
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
"LimitsByRole" 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 DescribeInstanceTypeLimits where
hashWithSalt :: Int -> DescribeInstanceTypeLimits -> Int
hashWithSalt Int
_salt DescribeInstanceTypeLimits' {Maybe Text
Text
OpenSearchPartitionInstanceType
engineVersion :: Text
instanceType :: OpenSearchPartitionInstanceType
domainName :: Maybe Text
$sel:engineVersion:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Text
$sel:instanceType:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> OpenSearchPartitionInstanceType
$sel:domainName:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` OpenSearchPartitionInstanceType
instanceType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
engineVersion
instance Prelude.NFData DescribeInstanceTypeLimits where
rnf :: DescribeInstanceTypeLimits -> ()
rnf DescribeInstanceTypeLimits' {Maybe Text
Text
OpenSearchPartitionInstanceType
engineVersion :: Text
instanceType :: OpenSearchPartitionInstanceType
domainName :: Maybe Text
$sel:engineVersion:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Text
$sel:instanceType:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> OpenSearchPartitionInstanceType
$sel:domainName:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domainName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf OpenSearchPartitionInstanceType
instanceType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
engineVersion
instance Data.ToHeaders DescribeInstanceTypeLimits where
toHeaders :: DescribeInstanceTypeLimits -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DescribeInstanceTypeLimits where
toPath :: DescribeInstanceTypeLimits -> ByteString
toPath DescribeInstanceTypeLimits' {Maybe Text
Text
OpenSearchPartitionInstanceType
engineVersion :: Text
instanceType :: OpenSearchPartitionInstanceType
domainName :: Maybe Text
$sel:engineVersion:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Text
$sel:instanceType:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> OpenSearchPartitionInstanceType
$sel:domainName:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/2021-01-01/opensearch/instanceTypeLimits/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
engineVersion,
ByteString
"/",
forall a. ToByteString a => a -> ByteString
Data.toBS OpenSearchPartitionInstanceType
instanceType
]
instance Data.ToQuery DescribeInstanceTypeLimits where
toQuery :: DescribeInstanceTypeLimits -> QueryString
toQuery DescribeInstanceTypeLimits' {Maybe Text
Text
OpenSearchPartitionInstanceType
engineVersion :: Text
instanceType :: OpenSearchPartitionInstanceType
domainName :: Maybe Text
$sel:engineVersion:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Text
$sel:instanceType:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> OpenSearchPartitionInstanceType
$sel:domainName:DescribeInstanceTypeLimits' :: DescribeInstanceTypeLimits -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"domainName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
domainName]
data DescribeInstanceTypeLimitsResponse = DescribeInstanceTypeLimitsResponse'
{
DescribeInstanceTypeLimitsResponse -> Maybe (HashMap Text Limits)
limitsByRole :: Prelude.Maybe (Prelude.HashMap Prelude.Text Limits),
DescribeInstanceTypeLimitsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeInstanceTypeLimitsResponse
-> DescribeInstanceTypeLimitsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeInstanceTypeLimitsResponse
-> DescribeInstanceTypeLimitsResponse -> Bool
$c/= :: DescribeInstanceTypeLimitsResponse
-> DescribeInstanceTypeLimitsResponse -> Bool
== :: DescribeInstanceTypeLimitsResponse
-> DescribeInstanceTypeLimitsResponse -> Bool
$c== :: DescribeInstanceTypeLimitsResponse
-> DescribeInstanceTypeLimitsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeInstanceTypeLimitsResponse]
ReadPrec DescribeInstanceTypeLimitsResponse
Int -> ReadS DescribeInstanceTypeLimitsResponse
ReadS [DescribeInstanceTypeLimitsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeInstanceTypeLimitsResponse]
$creadListPrec :: ReadPrec [DescribeInstanceTypeLimitsResponse]
readPrec :: ReadPrec DescribeInstanceTypeLimitsResponse
$creadPrec :: ReadPrec DescribeInstanceTypeLimitsResponse
readList :: ReadS [DescribeInstanceTypeLimitsResponse]
$creadList :: ReadS [DescribeInstanceTypeLimitsResponse]
readsPrec :: Int -> ReadS DescribeInstanceTypeLimitsResponse
$creadsPrec :: Int -> ReadS DescribeInstanceTypeLimitsResponse
Prelude.Read, Int -> DescribeInstanceTypeLimitsResponse -> ShowS
[DescribeInstanceTypeLimitsResponse] -> ShowS
DescribeInstanceTypeLimitsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeInstanceTypeLimitsResponse] -> ShowS
$cshowList :: [DescribeInstanceTypeLimitsResponse] -> ShowS
show :: DescribeInstanceTypeLimitsResponse -> String
$cshow :: DescribeInstanceTypeLimitsResponse -> String
showsPrec :: Int -> DescribeInstanceTypeLimitsResponse -> ShowS
$cshowsPrec :: Int -> DescribeInstanceTypeLimitsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeInstanceTypeLimitsResponse x
-> DescribeInstanceTypeLimitsResponse
forall x.
DescribeInstanceTypeLimitsResponse
-> Rep DescribeInstanceTypeLimitsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeInstanceTypeLimitsResponse x
-> DescribeInstanceTypeLimitsResponse
$cfrom :: forall x.
DescribeInstanceTypeLimitsResponse
-> Rep DescribeInstanceTypeLimitsResponse x
Prelude.Generic)
newDescribeInstanceTypeLimitsResponse ::
Prelude.Int ->
DescribeInstanceTypeLimitsResponse
newDescribeInstanceTypeLimitsResponse :: Int -> DescribeInstanceTypeLimitsResponse
newDescribeInstanceTypeLimitsResponse Int
pHttpStatus_ =
DescribeInstanceTypeLimitsResponse'
{ $sel:limitsByRole:DescribeInstanceTypeLimitsResponse' :: Maybe (HashMap Text Limits)
limitsByRole =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeInstanceTypeLimitsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeInstanceTypeLimitsResponse_limitsByRole :: Lens.Lens' DescribeInstanceTypeLimitsResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Limits))
describeInstanceTypeLimitsResponse_limitsByRole :: Lens'
DescribeInstanceTypeLimitsResponse (Maybe (HashMap Text Limits))
describeInstanceTypeLimitsResponse_limitsByRole = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInstanceTypeLimitsResponse' {Maybe (HashMap Text Limits)
limitsByRole :: Maybe (HashMap Text Limits)
$sel:limitsByRole:DescribeInstanceTypeLimitsResponse' :: DescribeInstanceTypeLimitsResponse -> Maybe (HashMap Text Limits)
limitsByRole} -> Maybe (HashMap Text Limits)
limitsByRole) (\s :: DescribeInstanceTypeLimitsResponse
s@DescribeInstanceTypeLimitsResponse' {} Maybe (HashMap Text Limits)
a -> DescribeInstanceTypeLimitsResponse
s {$sel:limitsByRole:DescribeInstanceTypeLimitsResponse' :: Maybe (HashMap Text Limits)
limitsByRole = Maybe (HashMap Text Limits)
a} :: DescribeInstanceTypeLimitsResponse) 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
describeInstanceTypeLimitsResponse_httpStatus :: Lens.Lens' DescribeInstanceTypeLimitsResponse Prelude.Int
describeInstanceTypeLimitsResponse_httpStatus :: Lens' DescribeInstanceTypeLimitsResponse Int
describeInstanceTypeLimitsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeInstanceTypeLimitsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeInstanceTypeLimitsResponse' :: DescribeInstanceTypeLimitsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeInstanceTypeLimitsResponse
s@DescribeInstanceTypeLimitsResponse' {} Int
a -> DescribeInstanceTypeLimitsResponse
s {$sel:httpStatus:DescribeInstanceTypeLimitsResponse' :: Int
httpStatus = Int
a} :: DescribeInstanceTypeLimitsResponse)
instance
Prelude.NFData
DescribeInstanceTypeLimitsResponse
where
rnf :: DescribeInstanceTypeLimitsResponse -> ()
rnf DescribeInstanceTypeLimitsResponse' {Int
Maybe (HashMap Text Limits)
httpStatus :: Int
limitsByRole :: Maybe (HashMap Text Limits)
$sel:httpStatus:DescribeInstanceTypeLimitsResponse' :: DescribeInstanceTypeLimitsResponse -> Int
$sel:limitsByRole:DescribeInstanceTypeLimitsResponse' :: DescribeInstanceTypeLimitsResponse -> Maybe (HashMap Text Limits)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Limits)
limitsByRole
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus