{-# 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.ComponentFormat
-- 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.ComponentFormat
  ( ComponentFormat
      ( ..,
        ComponentFormat_SHELL
      ),
  )
where

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

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

pattern ComponentFormat_SHELL :: ComponentFormat
pattern $bComponentFormat_SHELL :: ComponentFormat
$mComponentFormat_SHELL :: forall r. ComponentFormat -> (Void# -> r) -> (Void# -> r) -> r
ComponentFormat_SHELL = ComponentFormat' "SHELL"

{-# COMPLETE
  ComponentFormat_SHELL,
  ComponentFormat'
  #-}