{-# 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.ServiceCatalog.Types.DescribePortfolioShareType
-- 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.ServiceCatalog.Types.DescribePortfolioShareType
  ( DescribePortfolioShareType
      ( ..,
        DescribePortfolioShareType_ACCOUNT,
        DescribePortfolioShareType_ORGANIZATION,
        DescribePortfolioShareType_ORGANIZATIONAL_UNIT,
        DescribePortfolioShareType_ORGANIZATION_MEMBER_ACCOUNT
      ),
  )
where

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

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

pattern DescribePortfolioShareType_ACCOUNT :: DescribePortfolioShareType
pattern $bDescribePortfolioShareType_ACCOUNT :: DescribePortfolioShareType
$mDescribePortfolioShareType_ACCOUNT :: forall r.
DescribePortfolioShareType -> (Void# -> r) -> (Void# -> r) -> r
DescribePortfolioShareType_ACCOUNT = DescribePortfolioShareType' "ACCOUNT"

pattern DescribePortfolioShareType_ORGANIZATION :: DescribePortfolioShareType
pattern $bDescribePortfolioShareType_ORGANIZATION :: DescribePortfolioShareType
$mDescribePortfolioShareType_ORGANIZATION :: forall r.
DescribePortfolioShareType -> (Void# -> r) -> (Void# -> r) -> r
DescribePortfolioShareType_ORGANIZATION = DescribePortfolioShareType' "ORGANIZATION"

pattern DescribePortfolioShareType_ORGANIZATIONAL_UNIT :: DescribePortfolioShareType
pattern $bDescribePortfolioShareType_ORGANIZATIONAL_UNIT :: DescribePortfolioShareType
$mDescribePortfolioShareType_ORGANIZATIONAL_UNIT :: forall r.
DescribePortfolioShareType -> (Void# -> r) -> (Void# -> r) -> r
DescribePortfolioShareType_ORGANIZATIONAL_UNIT = DescribePortfolioShareType' "ORGANIZATIONAL_UNIT"

pattern DescribePortfolioShareType_ORGANIZATION_MEMBER_ACCOUNT :: DescribePortfolioShareType
pattern $bDescribePortfolioShareType_ORGANIZATION_MEMBER_ACCOUNT :: DescribePortfolioShareType
$mDescribePortfolioShareType_ORGANIZATION_MEMBER_ACCOUNT :: forall r.
DescribePortfolioShareType -> (Void# -> r) -> (Void# -> r) -> r
DescribePortfolioShareType_ORGANIZATION_MEMBER_ACCOUNT = DescribePortfolioShareType' "ORGANIZATION_MEMBER_ACCOUNT"

{-# COMPLETE
  DescribePortfolioShareType_ACCOUNT,
  DescribePortfolioShareType_ORGANIZATION,
  DescribePortfolioShareType_ORGANIZATIONAL_UNIT,
  DescribePortfolioShareType_ORGANIZATION_MEMBER_ACCOUNT,
  DescribePortfolioShareType'
  #-}