{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype RepositoryAccessMode = RepositoryAccessMode'
  { RepositoryAccessMode -> Text
fromRepositoryAccessMode ::
      Data.Text
  }
  deriving stock
    ( Int -> RepositoryAccessMode -> ShowS
[RepositoryAccessMode] -> ShowS
RepositoryAccessMode -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq RepositoryAccessMode
Int -> RepositoryAccessMode -> Int
RepositoryAccessMode -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: RepositoryAccessMode -> ()
$crnf :: RepositoryAccessMode -> ()
Prelude.NFData,
      Text -> Either String RepositoryAccessMode
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String RepositoryAccessMode
$cfromText :: Text -> Either String RepositoryAccessMode
Data.FromText,
      RepositoryAccessMode -> Text
forall a. (a -> Text) -> ToText a
toText :: RepositoryAccessMode -> Text
$ctoText :: RepositoryAccessMode -> Text
Data.ToText,
      RepositoryAccessMode -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: RepositoryAccessMode -> ByteString
$ctoBS :: RepositoryAccessMode -> ByteString
Data.ToByteString,
      RepositoryAccessMode -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: RepositoryAccessMode -> ByteStringBuilder
$cbuild :: RepositoryAccessMode -> ByteStringBuilder
Data.ToLog,
      HeaderName -> RepositoryAccessMode -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> RepositoryAccessMode -> [Header]
$ctoHeader :: HeaderName -> RepositoryAccessMode -> [Header]
Data.ToHeader,
      RepositoryAccessMode -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: RepositoryAccessMode -> QueryString
$ctoQuery :: RepositoryAccessMode -> QueryString
Data.ToQuery,
      Value -> Parser [RepositoryAccessMode]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [RepositoryAccessMode]
FromJSONKeyFunction RepositoryAccessMode
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [RepositoryAccessMode]
$cfromJSONKeyList :: FromJSONKeyFunction [RepositoryAccessMode]
fromJSONKey :: FromJSONKeyFunction RepositoryAccessMode
$cfromJSONKey :: FromJSONKeyFunction RepositoryAccessMode
Data.FromJSONKey,
      [RepositoryAccessMode] -> Encoding
[RepositoryAccessMode] -> Value
RepositoryAccessMode -> Encoding
RepositoryAccessMode -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [RepositoryAccessMode]
ToJSONKeyFunction RepositoryAccessMode
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [RepositoryAccessMode]
$ctoJSONKeyList :: ToJSONKeyFunction [RepositoryAccessMode]
toJSONKey :: ToJSONKeyFunction RepositoryAccessMode
$ctoJSONKey :: ToJSONKeyFunction RepositoryAccessMode
Data.ToJSONKey,
      [Node] -> Either String RepositoryAccessMode
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String RepositoryAccessMode
$cparseXML :: [Node] -> Either String RepositoryAccessMode
Data.FromXML,
      RepositoryAccessMode -> XML
forall a. (a -> XML) -> ToXML a
toXML :: RepositoryAccessMode -> XML
$ctoXML :: RepositoryAccessMode -> XML
Data.ToXML
    )

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

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

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