{-# 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.Nimble.Types.LaunchProfileValidationType
-- 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.Nimble.Types.LaunchProfileValidationType
  ( LaunchProfileValidationType
      ( ..,
        LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT,
        LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION,
        LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION,
        LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION
      ),
  )
where

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

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

pattern LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT :: LaunchProfileValidationType
pattern $bLaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT :: LaunchProfileValidationType
$mLaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT :: forall {r}.
LaunchProfileValidationType -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT = LaunchProfileValidationType' "VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT"

pattern LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION :: LaunchProfileValidationType
pattern $bLaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION :: LaunchProfileValidationType
$mLaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION :: forall {r}.
LaunchProfileValidationType -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION = LaunchProfileValidationType' "VALIDATE_NETWORK_ACL_ASSOCIATION"

pattern LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION :: LaunchProfileValidationType
pattern $bLaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION :: LaunchProfileValidationType
$mLaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION :: forall {r}.
LaunchProfileValidationType -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION = LaunchProfileValidationType' "VALIDATE_SECURITY_GROUP_ASSOCIATION"

pattern LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION :: LaunchProfileValidationType
pattern $bLaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION :: LaunchProfileValidationType
$mLaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION :: forall {r}.
LaunchProfileValidationType -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION = LaunchProfileValidationType' "VALIDATE_SUBNET_ASSOCIATION"

{-# COMPLETE
  LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT,
  LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION,
  LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION,
  LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION,
  LaunchProfileValidationType'
  #-}