{-# 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.EC2.Types.SelfServicePortal
-- 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.EC2.Types.SelfServicePortal
  ( SelfServicePortal
      ( ..,
        SelfServicePortal_Disabled,
        SelfServicePortal_Enabled
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import qualified Amazonka.Prelude as Prelude

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

pattern SelfServicePortal_Disabled :: SelfServicePortal
pattern $bSelfServicePortal_Disabled :: SelfServicePortal
$mSelfServicePortal_Disabled :: forall {r}. SelfServicePortal -> ((# #) -> r) -> ((# #) -> r) -> r
SelfServicePortal_Disabled = SelfServicePortal' "disabled"

pattern SelfServicePortal_Enabled :: SelfServicePortal
pattern $bSelfServicePortal_Enabled :: SelfServicePortal
$mSelfServicePortal_Enabled :: forall {r}. SelfServicePortal -> ((# #) -> r) -> ((# #) -> r) -> r
SelfServicePortal_Enabled = SelfServicePortal' "enabled"

{-# COMPLETE
  SelfServicePortal_Disabled,
  SelfServicePortal_Enabled,
  SelfServicePortal'
  #-}