{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype RegionName = RegionName'
  { RegionName -> Text
fromRegionName ::
      Data.Text
  }
  deriving stock
    ( Int -> RegionName -> ShowS
[RegionName] -> ShowS
RegionName -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq RegionName
Int -> RegionName -> Int
RegionName -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: RegionName -> ()
$crnf :: RegionName -> ()
Prelude.NFData,
      Text -> Either String RegionName
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String RegionName
$cfromText :: Text -> Either String RegionName
Data.FromText,
      RegionName -> Text
forall a. (a -> Text) -> ToText a
toText :: RegionName -> Text
$ctoText :: RegionName -> Text
Data.ToText,
      RegionName -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: RegionName -> ByteString
$ctoBS :: RegionName -> ByteString
Data.ToByteString,
      RegionName -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: RegionName -> ByteStringBuilder
$cbuild :: RegionName -> ByteStringBuilder
Data.ToLog,
      HeaderName -> RegionName -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> RegionName -> [Header]
$ctoHeader :: HeaderName -> RegionName -> [Header]
Data.ToHeader,
      RegionName -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: RegionName -> QueryString
$ctoQuery :: RegionName -> QueryString
Data.ToQuery,
      Value -> Parser [RegionName]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [RegionName]
FromJSONKeyFunction RegionName
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [RegionName]
$cfromJSONKeyList :: FromJSONKeyFunction [RegionName]
fromJSONKey :: FromJSONKeyFunction RegionName
$cfromJSONKey :: FromJSONKeyFunction RegionName
Data.FromJSONKey,
      [RegionName] -> Encoding
[RegionName] -> Value
RegionName -> Encoding
RegionName -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [RegionName]
ToJSONKeyFunction RegionName
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [RegionName]
$ctoJSONKeyList :: ToJSONKeyFunction [RegionName]
toJSONKey :: ToJSONKeyFunction RegionName
$ctoJSONKey :: ToJSONKeyFunction RegionName
Data.ToJSONKey,
      [Node] -> Either String RegionName
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String RegionName
$cparseXML :: [Node] -> Either String RegionName
Data.FromXML,
      RegionName -> XML
forall a. (a -> XML) -> ToXML a
toXML :: RegionName -> XML
$ctoXML :: RegionName -> XML
Data.ToXML
    )

pattern RegionName_Ap_northeast_1 :: RegionName
pattern $bRegionName_Ap_northeast_1 :: RegionName
$mRegionName_Ap_northeast_1 :: forall {r}. RegionName -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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'
  #-}