{-# 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.EC2.DescribeRegions
(
DescribeRegions (..),
newDescribeRegions,
describeRegions_allRegions,
describeRegions_dryRun,
describeRegions_filters,
describeRegions_regionNames,
DescribeRegionsResponse (..),
newDescribeRegionsResponse,
describeRegionsResponse_regions,
describeRegionsResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeRegions = DescribeRegions'
{
DescribeRegions -> Maybe Bool
allRegions :: Prelude.Maybe Prelude.Bool,
DescribeRegions -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
DescribeRegions -> Maybe [Filter]
filters :: Prelude.Maybe [Filter],
DescribeRegions -> Maybe [Text]
regionNames :: Prelude.Maybe [Prelude.Text]
}
deriving (DescribeRegions -> DescribeRegions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeRegions -> DescribeRegions -> Bool
$c/= :: DescribeRegions -> DescribeRegions -> Bool
== :: DescribeRegions -> DescribeRegions -> Bool
$c== :: DescribeRegions -> DescribeRegions -> Bool
Prelude.Eq, ReadPrec [DescribeRegions]
ReadPrec DescribeRegions
Int -> ReadS DescribeRegions
ReadS [DescribeRegions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeRegions]
$creadListPrec :: ReadPrec [DescribeRegions]
readPrec :: ReadPrec DescribeRegions
$creadPrec :: ReadPrec DescribeRegions
readList :: ReadS [DescribeRegions]
$creadList :: ReadS [DescribeRegions]
readsPrec :: Int -> ReadS DescribeRegions
$creadsPrec :: Int -> ReadS DescribeRegions
Prelude.Read, Int -> DescribeRegions -> ShowS
[DescribeRegions] -> ShowS
DescribeRegions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeRegions] -> ShowS
$cshowList :: [DescribeRegions] -> ShowS
show :: DescribeRegions -> String
$cshow :: DescribeRegions -> String
showsPrec :: Int -> DescribeRegions -> ShowS
$cshowsPrec :: Int -> DescribeRegions -> ShowS
Prelude.Show, forall x. Rep DescribeRegions x -> DescribeRegions
forall x. DescribeRegions -> Rep DescribeRegions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeRegions x -> DescribeRegions
$cfrom :: forall x. DescribeRegions -> Rep DescribeRegions x
Prelude.Generic)
newDescribeRegions ::
DescribeRegions
newDescribeRegions :: DescribeRegions
newDescribeRegions =
DescribeRegions'
{ $sel:allRegions:DescribeRegions' :: Maybe Bool
allRegions = forall a. Maybe a
Prelude.Nothing,
$sel:dryRun:DescribeRegions' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
$sel:filters:DescribeRegions' :: Maybe [Filter]
filters = forall a. Maybe a
Prelude.Nothing,
$sel:regionNames:DescribeRegions' :: Maybe [Text]
regionNames = forall a. Maybe a
Prelude.Nothing
}
describeRegions_allRegions :: Lens.Lens' DescribeRegions (Prelude.Maybe Prelude.Bool)
describeRegions_allRegions :: Lens' DescribeRegions (Maybe Bool)
describeRegions_allRegions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRegions' {Maybe Bool
allRegions :: Maybe Bool
$sel:allRegions:DescribeRegions' :: DescribeRegions -> Maybe Bool
allRegions} -> Maybe Bool
allRegions) (\s :: DescribeRegions
s@DescribeRegions' {} Maybe Bool
a -> DescribeRegions
s {$sel:allRegions:DescribeRegions' :: Maybe Bool
allRegions = Maybe Bool
a} :: DescribeRegions)
describeRegions_dryRun :: Lens.Lens' DescribeRegions (Prelude.Maybe Prelude.Bool)
describeRegions_dryRun :: Lens' DescribeRegions (Maybe Bool)
describeRegions_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRegions' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:DescribeRegions' :: DescribeRegions -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: DescribeRegions
s@DescribeRegions' {} Maybe Bool
a -> DescribeRegions
s {$sel:dryRun:DescribeRegions' :: Maybe Bool
dryRun = Maybe Bool
a} :: DescribeRegions)
describeRegions_filters :: Lens.Lens' DescribeRegions (Prelude.Maybe [Filter])
describeRegions_filters :: Lens' DescribeRegions (Maybe [Filter])
describeRegions_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRegions' {Maybe [Filter]
filters :: Maybe [Filter]
$sel:filters:DescribeRegions' :: DescribeRegions -> Maybe [Filter]
filters} -> Maybe [Filter]
filters) (\s :: DescribeRegions
s@DescribeRegions' {} Maybe [Filter]
a -> DescribeRegions
s {$sel:filters:DescribeRegions' :: Maybe [Filter]
filters = Maybe [Filter]
a} :: DescribeRegions) 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
describeRegions_regionNames :: Lens.Lens' DescribeRegions (Prelude.Maybe [Prelude.Text])
describeRegions_regionNames :: Lens' DescribeRegions (Maybe [Text])
describeRegions_regionNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRegions' {Maybe [Text]
regionNames :: Maybe [Text]
$sel:regionNames:DescribeRegions' :: DescribeRegions -> Maybe [Text]
regionNames} -> Maybe [Text]
regionNames) (\s :: DescribeRegions
s@DescribeRegions' {} Maybe [Text]
a -> DescribeRegions
s {$sel:regionNames:DescribeRegions' :: Maybe [Text]
regionNames = Maybe [Text]
a} :: DescribeRegions) 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 Core.AWSRequest DescribeRegions where
type
AWSResponse DescribeRegions =
DescribeRegionsResponse
request :: (Service -> Service) -> DescribeRegions -> Request DescribeRegions
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeRegions
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeRegions)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe [RegionInfo] -> Int -> DescribeRegionsResponse
DescribeRegionsResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"regionInfo"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"item")
)
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 DescribeRegions where
hashWithSalt :: Int -> DescribeRegions -> Int
hashWithSalt Int
_salt DescribeRegions' {Maybe Bool
Maybe [Text]
Maybe [Filter]
regionNames :: Maybe [Text]
filters :: Maybe [Filter]
dryRun :: Maybe Bool
allRegions :: Maybe Bool
$sel:regionNames:DescribeRegions' :: DescribeRegions -> Maybe [Text]
$sel:filters:DescribeRegions' :: DescribeRegions -> Maybe [Filter]
$sel:dryRun:DescribeRegions' :: DescribeRegions -> Maybe Bool
$sel:allRegions:DescribeRegions' :: DescribeRegions -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
allRegions
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Filter]
filters
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
regionNames
instance Prelude.NFData DescribeRegions where
rnf :: DescribeRegions -> ()
rnf DescribeRegions' {Maybe Bool
Maybe [Text]
Maybe [Filter]
regionNames :: Maybe [Text]
filters :: Maybe [Filter]
dryRun :: Maybe Bool
allRegions :: Maybe Bool
$sel:regionNames:DescribeRegions' :: DescribeRegions -> Maybe [Text]
$sel:filters:DescribeRegions' :: DescribeRegions -> Maybe [Filter]
$sel:dryRun:DescribeRegions' :: DescribeRegions -> Maybe Bool
$sel:allRegions:DescribeRegions' :: DescribeRegions -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
allRegions
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Filter]
filters
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
regionNames
instance Data.ToHeaders DescribeRegions where
toHeaders :: DescribeRegions -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DescribeRegions where
toPath :: DescribeRegions -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeRegions where
toQuery :: DescribeRegions -> QueryString
toQuery DescribeRegions' {Maybe Bool
Maybe [Text]
Maybe [Filter]
regionNames :: Maybe [Text]
filters :: Maybe [Filter]
dryRun :: Maybe Bool
allRegions :: Maybe Bool
$sel:regionNames:DescribeRegions' :: DescribeRegions -> Maybe [Text]
$sel:filters:DescribeRegions' :: DescribeRegions -> Maybe [Filter]
$sel:dryRun:DescribeRegions' :: DescribeRegions -> Maybe Bool
$sel:allRegions:DescribeRegions' :: DescribeRegions -> Maybe Bool
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeRegions" :: Prelude.ByteString),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
ByteString
"AllRegions" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
allRegions,
ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
forall a. ToQuery a => a -> QueryString
Data.toQuery
(forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Filter" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Filter]
filters),
forall a. ToQuery a => a -> QueryString
Data.toQuery
( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"RegionName"
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
regionNames
)
]
data DescribeRegionsResponse = DescribeRegionsResponse'
{
DescribeRegionsResponse -> Maybe [RegionInfo]
regions :: Prelude.Maybe [RegionInfo],
DescribeRegionsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeRegionsResponse -> DescribeRegionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeRegionsResponse -> DescribeRegionsResponse -> Bool
$c/= :: DescribeRegionsResponse -> DescribeRegionsResponse -> Bool
== :: DescribeRegionsResponse -> DescribeRegionsResponse -> Bool
$c== :: DescribeRegionsResponse -> DescribeRegionsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeRegionsResponse]
ReadPrec DescribeRegionsResponse
Int -> ReadS DescribeRegionsResponse
ReadS [DescribeRegionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeRegionsResponse]
$creadListPrec :: ReadPrec [DescribeRegionsResponse]
readPrec :: ReadPrec DescribeRegionsResponse
$creadPrec :: ReadPrec DescribeRegionsResponse
readList :: ReadS [DescribeRegionsResponse]
$creadList :: ReadS [DescribeRegionsResponse]
readsPrec :: Int -> ReadS DescribeRegionsResponse
$creadsPrec :: Int -> ReadS DescribeRegionsResponse
Prelude.Read, Int -> DescribeRegionsResponse -> ShowS
[DescribeRegionsResponse] -> ShowS
DescribeRegionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeRegionsResponse] -> ShowS
$cshowList :: [DescribeRegionsResponse] -> ShowS
show :: DescribeRegionsResponse -> String
$cshow :: DescribeRegionsResponse -> String
showsPrec :: Int -> DescribeRegionsResponse -> ShowS
$cshowsPrec :: Int -> DescribeRegionsResponse -> ShowS
Prelude.Show, forall x. Rep DescribeRegionsResponse x -> DescribeRegionsResponse
forall x. DescribeRegionsResponse -> Rep DescribeRegionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeRegionsResponse x -> DescribeRegionsResponse
$cfrom :: forall x. DescribeRegionsResponse -> Rep DescribeRegionsResponse x
Prelude.Generic)
newDescribeRegionsResponse ::
Prelude.Int ->
DescribeRegionsResponse
newDescribeRegionsResponse :: Int -> DescribeRegionsResponse
newDescribeRegionsResponse Int
pHttpStatus_ =
DescribeRegionsResponse'
{ $sel:regions:DescribeRegionsResponse' :: Maybe [RegionInfo]
regions = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeRegionsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeRegionsResponse_regions :: Lens.Lens' DescribeRegionsResponse (Prelude.Maybe [RegionInfo])
describeRegionsResponse_regions :: Lens' DescribeRegionsResponse (Maybe [RegionInfo])
describeRegionsResponse_regions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRegionsResponse' {Maybe [RegionInfo]
regions :: Maybe [RegionInfo]
$sel:regions:DescribeRegionsResponse' :: DescribeRegionsResponse -> Maybe [RegionInfo]
regions} -> Maybe [RegionInfo]
regions) (\s :: DescribeRegionsResponse
s@DescribeRegionsResponse' {} Maybe [RegionInfo]
a -> DescribeRegionsResponse
s {$sel:regions:DescribeRegionsResponse' :: Maybe [RegionInfo]
regions = Maybe [RegionInfo]
a} :: DescribeRegionsResponse) 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
describeRegionsResponse_httpStatus :: Lens.Lens' DescribeRegionsResponse Prelude.Int
describeRegionsResponse_httpStatus :: Lens' DescribeRegionsResponse Int
describeRegionsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRegionsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeRegionsResponse' :: DescribeRegionsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeRegionsResponse
s@DescribeRegionsResponse' {} Int
a -> DescribeRegionsResponse
s {$sel:httpStatus:DescribeRegionsResponse' :: Int
httpStatus = Int
a} :: DescribeRegionsResponse)
instance Prelude.NFData DescribeRegionsResponse where
rnf :: DescribeRegionsResponse -> ()
rnf DescribeRegionsResponse' {Int
Maybe [RegionInfo]
httpStatus :: Int
regions :: Maybe [RegionInfo]
$sel:httpStatus:DescribeRegionsResponse' :: DescribeRegionsResponse -> Int
$sel:regions:DescribeRegionsResponse' :: DescribeRegionsResponse -> Maybe [RegionInfo]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [RegionInfo]
regions
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus