{-# 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.CodePipeline.Types.ArtifactLocationType
-- 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.CodePipeline.Types.ArtifactLocationType
  ( ArtifactLocationType
      ( ..,
        ArtifactLocationType_S3
      ),
  )
where

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

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

pattern ArtifactLocationType_S3 :: ArtifactLocationType
pattern $bArtifactLocationType_S3 :: ArtifactLocationType
$mArtifactLocationType_S3 :: forall r. ArtifactLocationType -> (Void# -> r) -> (Void# -> r) -> r
ArtifactLocationType_S3 = ArtifactLocationType' "S3"

{-# COMPLETE
  ArtifactLocationType_S3,
  ArtifactLocationType'
  #-}