{-# 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.SageMaker.Types.RepositoryAccessMode
-- 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.SageMaker.Types.RepositoryAccessMode
  ( RepositoryAccessMode
      ( ..,
        RepositoryAccessMode_Platform,
        RepositoryAccessMode_Vpc
      ),
  )
where

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

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

pattern RepositoryAccessMode_Platform :: RepositoryAccessMode
pattern $bRepositoryAccessMode_Platform :: RepositoryAccessMode
$mRepositoryAccessMode_Platform :: forall r. RepositoryAccessMode -> (Void# -> r) -> (Void# -> r) -> r
RepositoryAccessMode_Platform = RepositoryAccessMode' "Platform"

pattern RepositoryAccessMode_Vpc :: RepositoryAccessMode
pattern $bRepositoryAccessMode_Vpc :: RepositoryAccessMode
$mRepositoryAccessMode_Vpc :: forall r. RepositoryAccessMode -> (Void# -> r) -> (Void# -> r) -> r
RepositoryAccessMode_Vpc = RepositoryAccessMode' "Vpc"

{-# COMPLETE
  RepositoryAccessMode_Platform,
  RepositoryAccessMode_Vpc,
  RepositoryAccessMode'
  #-}