{-# 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.ImageBuilder.Types.Ownership
-- 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.ImageBuilder.Types.Ownership
  ( Ownership
      ( ..,
        Ownership_Amazon,
        Ownership_Self,
        Ownership_Shared
      ),
  )
where

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

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

pattern Ownership_Amazon :: Ownership
pattern $bOwnership_Amazon :: Ownership
$mOwnership_Amazon :: forall r. Ownership -> (Void# -> r) -> (Void# -> r) -> r
Ownership_Amazon = Ownership' "Amazon"

pattern Ownership_Self :: Ownership
pattern $bOwnership_Self :: Ownership
$mOwnership_Self :: forall r. Ownership -> (Void# -> r) -> (Void# -> r) -> r
Ownership_Self = Ownership' "Self"

pattern Ownership_Shared :: Ownership
pattern $bOwnership_Shared :: Ownership
$mOwnership_Shared :: forall r. Ownership -> (Void# -> r) -> (Void# -> r) -> r
Ownership_Shared = Ownership' "Shared"

{-# COMPLETE
  Ownership_Amazon,
  Ownership_Self,
  Ownership_Shared,
  Ownership'
  #-}