{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Lightsail.Types.RegionName
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Lightsail.Types.RegionName
  ( RegionName
      ( ..,
        RegionName_Ap_northeast_1,
        RegionName_Ap_northeast_2,
        RegionName_Ap_south_1,
        RegionName_Ap_southeast_1,
        RegionName_Ap_southeast_2,
        RegionName_Ca_central_1,
        RegionName_Eu_central_1,
        RegionName_Eu_north_1,
        RegionName_Eu_west_1,
        RegionName_Eu_west_2,
        RegionName_Eu_west_3,
        RegionName_Us_east_1,
        RegionName_Us_east_2,
        RegionName_Us_west_1,
        RegionName_Us_west_2
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype RegionName = RegionName'
  { RegionName -> Text
fromRegionName ::
      Core.Text
  }
  deriving stock
    ( Int -> RegionName -> ShowS
[RegionName] -> ShowS
RegionName -> String
(Int -> RegionName -> ShowS)
-> (RegionName -> String)
-> ([RegionName] -> ShowS)
-> Show RegionName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RegionName] -> ShowS
$cshowList :: [RegionName] -> ShowS
show :: RegionName -> String
$cshow :: RegionName -> String
showsPrec :: Int -> RegionName -> ShowS
$cshowsPrec :: Int -> RegionName -> ShowS
Prelude.Show,
      ReadPrec [RegionName]
ReadPrec RegionName
Int -> ReadS RegionName
ReadS [RegionName]
(Int -> ReadS RegionName)
-> ReadS [RegionName]
-> ReadPrec RegionName
-> ReadPrec [RegionName]
-> Read RegionName
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [RegionName]
$creadListPrec :: ReadPrec [RegionName]
readPrec :: ReadPrec RegionName
$creadPrec :: ReadPrec RegionName
readList :: ReadS [RegionName]
$creadList :: ReadS [RegionName]
readsPrec :: Int -> ReadS RegionName
$creadsPrec :: Int -> ReadS RegionName
Prelude.Read,
      RegionName -> RegionName -> Bool
(RegionName -> RegionName -> Bool)
-> (RegionName -> RegionName -> Bool) -> Eq RegionName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RegionName -> RegionName -> Bool
$c/= :: RegionName -> RegionName -> Bool
== :: RegionName -> RegionName -> Bool
$c== :: RegionName -> RegionName -> Bool
Prelude.Eq,
      Eq RegionName
Eq RegionName
-> (RegionName -> RegionName -> Ordering)
-> (RegionName -> RegionName -> Bool)
-> (RegionName -> RegionName -> Bool)
-> (RegionName -> RegionName -> Bool)
-> (RegionName -> RegionName -> Bool)
-> (RegionName -> RegionName -> RegionName)
-> (RegionName -> RegionName -> RegionName)
-> Ord RegionName
RegionName -> RegionName -> Bool
RegionName -> RegionName -> Ordering
RegionName -> RegionName -> RegionName
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: RegionName -> RegionName -> RegionName
$cmin :: RegionName -> RegionName -> RegionName
max :: RegionName -> RegionName -> RegionName
$cmax :: RegionName -> RegionName -> RegionName
>= :: RegionName -> RegionName -> Bool
$c>= :: RegionName -> RegionName -> Bool
> :: RegionName -> RegionName -> Bool
$c> :: RegionName -> RegionName -> Bool
<= :: RegionName -> RegionName -> Bool
$c<= :: RegionName -> RegionName -> Bool
< :: RegionName -> RegionName -> Bool
$c< :: RegionName -> RegionName -> Bool
compare :: RegionName -> RegionName -> Ordering
$ccompare :: RegionName -> RegionName -> Ordering
$cp1Ord :: Eq RegionName
Prelude.Ord,
      (forall x. RegionName -> Rep RegionName x)
-> (forall x. Rep RegionName x -> RegionName) -> Generic RegionName
forall x. Rep RegionName x -> RegionName
forall x. RegionName -> Rep RegionName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RegionName x -> RegionName
$cfrom :: forall x. RegionName -> Rep RegionName x
Prelude.Generic
    )
  deriving newtype
    ( Int -> RegionName -> Int
RegionName -> Int
(Int -> RegionName -> Int)
-> (RegionName -> Int) -> Hashable RegionName
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: RegionName -> Int
$chash :: RegionName -> Int
hashWithSalt :: Int -> RegionName -> Int
$chashWithSalt :: Int -> RegionName -> Int
Prelude.Hashable,
      RegionName -> ()
(RegionName -> ()) -> NFData RegionName
forall a. (a -> ()) -> NFData a
rnf :: RegionName -> ()
$crnf :: RegionName -> ()
Prelude.NFData,
      Text -> Either String RegionName
(Text -> Either String RegionName) -> FromText RegionName
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String RegionName
$cfromText :: Text -> Either String RegionName
Core.FromText,
      RegionName -> Text
(RegionName -> Text) -> ToText RegionName
forall a. (a -> Text) -> ToText a
toText :: RegionName -> Text
$ctoText :: RegionName -> Text
Core.ToText,
      RegionName -> ByteString
(RegionName -> ByteString) -> ToByteString RegionName
forall a. (a -> ByteString) -> ToByteString a
toBS :: RegionName -> ByteString
$ctoBS :: RegionName -> ByteString
Core.ToByteString,
      RegionName -> ByteStringBuilder
(RegionName -> ByteStringBuilder) -> ToLog RegionName
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: RegionName -> ByteStringBuilder
$cbuild :: RegionName -> ByteStringBuilder
Core.ToLog,
      HeaderName -> RegionName -> [Header]
(HeaderName -> RegionName -> [Header]) -> ToHeader RegionName
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> RegionName -> [Header]
$ctoHeader :: HeaderName -> RegionName -> [Header]
Core.ToHeader,
      RegionName -> QueryString
(RegionName -> QueryString) -> ToQuery RegionName
forall a. (a -> QueryString) -> ToQuery a
toQuery :: RegionName -> QueryString
$ctoQuery :: RegionName -> QueryString
Core.ToQuery,
      Value -> Parser [RegionName]
Value -> Parser RegionName
(Value -> Parser RegionName)
-> (Value -> Parser [RegionName]) -> FromJSON RegionName
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [RegionName]
$cparseJSONList :: Value -> Parser [RegionName]
parseJSON :: Value -> Parser RegionName
$cparseJSON :: Value -> Parser RegionName
Core.FromJSON,
      FromJSONKeyFunction [RegionName]
FromJSONKeyFunction RegionName
FromJSONKeyFunction RegionName
-> FromJSONKeyFunction [RegionName] -> FromJSONKey RegionName
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [RegionName]
$cfromJSONKeyList :: FromJSONKeyFunction [RegionName]
fromJSONKey :: FromJSONKeyFunction RegionName
$cfromJSONKey :: FromJSONKeyFunction RegionName
Core.FromJSONKey,
      [RegionName] -> Encoding
[RegionName] -> Value
RegionName -> Encoding
RegionName -> Value
(RegionName -> Value)
-> (RegionName -> Encoding)
-> ([RegionName] -> Value)
-> ([RegionName] -> Encoding)
-> ToJSON RegionName
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [RegionName] -> Encoding
$ctoEncodingList :: [RegionName] -> Encoding
toJSONList :: [RegionName] -> Value
$ctoJSONList :: [RegionName] -> Value
toEncoding :: RegionName -> Encoding
$ctoEncoding :: RegionName -> Encoding
toJSON :: RegionName -> Value
$ctoJSON :: RegionName -> Value
Core.ToJSON,
      ToJSONKeyFunction [RegionName]
ToJSONKeyFunction RegionName
ToJSONKeyFunction RegionName
-> ToJSONKeyFunction [RegionName] -> ToJSONKey RegionName
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [RegionName]
$ctoJSONKeyList :: ToJSONKeyFunction [RegionName]
toJSONKey :: ToJSONKeyFunction RegionName
$ctoJSONKey :: ToJSONKeyFunction RegionName
Core.ToJSONKey,
      [Node] -> Either String RegionName
([Node] -> Either String RegionName) -> FromXML RegionName
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String RegionName
$cparseXML :: [Node] -> Either String RegionName
Core.FromXML,
      RegionName -> XML
(RegionName -> XML) -> ToXML RegionName
forall a. (a -> XML) -> ToXML a
toXML :: RegionName -> XML
$ctoXML :: RegionName -> XML
Core.ToXML
    )

pattern RegionName_Ap_northeast_1 :: RegionName
pattern $bRegionName_Ap_northeast_1 :: RegionName
$mRegionName_Ap_northeast_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Ap_northeast_1 = RegionName' "ap-northeast-1"

pattern RegionName_Ap_northeast_2 :: RegionName
pattern $bRegionName_Ap_northeast_2 :: RegionName
$mRegionName_Ap_northeast_2 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Ap_northeast_2 = RegionName' "ap-northeast-2"

pattern RegionName_Ap_south_1 :: RegionName
pattern $bRegionName_Ap_south_1 :: RegionName
$mRegionName_Ap_south_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Ap_south_1 = RegionName' "ap-south-1"

pattern RegionName_Ap_southeast_1 :: RegionName
pattern $bRegionName_Ap_southeast_1 :: RegionName
$mRegionName_Ap_southeast_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Ap_southeast_1 = RegionName' "ap-southeast-1"

pattern RegionName_Ap_southeast_2 :: RegionName
pattern $bRegionName_Ap_southeast_2 :: RegionName
$mRegionName_Ap_southeast_2 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Ap_southeast_2 = RegionName' "ap-southeast-2"

pattern RegionName_Ca_central_1 :: RegionName
pattern $bRegionName_Ca_central_1 :: RegionName
$mRegionName_Ca_central_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Ca_central_1 = RegionName' "ca-central-1"

pattern RegionName_Eu_central_1 :: RegionName
pattern $bRegionName_Eu_central_1 :: RegionName
$mRegionName_Eu_central_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Eu_central_1 = RegionName' "eu-central-1"

pattern RegionName_Eu_north_1 :: RegionName
pattern $bRegionName_Eu_north_1 :: RegionName
$mRegionName_Eu_north_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Eu_north_1 = RegionName' "eu-north-1"

pattern RegionName_Eu_west_1 :: RegionName
pattern $bRegionName_Eu_west_1 :: RegionName
$mRegionName_Eu_west_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Eu_west_1 = RegionName' "eu-west-1"

pattern RegionName_Eu_west_2 :: RegionName
pattern $bRegionName_Eu_west_2 :: RegionName
$mRegionName_Eu_west_2 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Eu_west_2 = RegionName' "eu-west-2"

pattern RegionName_Eu_west_3 :: RegionName
pattern $bRegionName_Eu_west_3 :: RegionName
$mRegionName_Eu_west_3 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Eu_west_3 = RegionName' "eu-west-3"

pattern RegionName_Us_east_1 :: RegionName
pattern $bRegionName_Us_east_1 :: RegionName
$mRegionName_Us_east_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Us_east_1 = RegionName' "us-east-1"

pattern RegionName_Us_east_2 :: RegionName
pattern $bRegionName_Us_east_2 :: RegionName
$mRegionName_Us_east_2 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Us_east_2 = RegionName' "us-east-2"

pattern RegionName_Us_west_1 :: RegionName
pattern $bRegionName_Us_west_1 :: RegionName
$mRegionName_Us_west_1 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Us_west_1 = RegionName' "us-west-1"

pattern RegionName_Us_west_2 :: RegionName
pattern $bRegionName_Us_west_2 :: RegionName
$mRegionName_Us_west_2 :: forall r. RegionName -> (Void# -> r) -> (Void# -> r) -> r
RegionName_Us_west_2 = RegionName' "us-west-2"

{-# COMPLETE
  RegionName_Ap_northeast_1,
  RegionName_Ap_northeast_2,
  RegionName_Ap_south_1,
  RegionName_Ap_southeast_1,
  RegionName_Ap_southeast_2,
  RegionName_Ca_central_1,
  RegionName_Eu_central_1,
  RegionName_Eu_north_1,
  RegionName_Eu_west_1,
  RegionName_Eu_west_2,
  RegionName_Eu_west_3,
  RegionName_Us_east_1,
  RegionName_Us_east_2,
  RegionName_Us_west_1,
  RegionName_Us_west_2,
  RegionName'
  #-}