{-# 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.EKS.Types.UpdateParamType
-- 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.EKS.Types.UpdateParamType
  ( UpdateParamType
      ( ..,
        UpdateParamType_AddonVersion,
        UpdateParamType_ClusterLogging,
        UpdateParamType_DesiredSize,
        UpdateParamType_EncryptionConfig,
        UpdateParamType_EndpointPrivateAccess,
        UpdateParamType_EndpointPublicAccess,
        UpdateParamType_IdentityProviderConfig,
        UpdateParamType_LabelsToAdd,
        UpdateParamType_LabelsToRemove,
        UpdateParamType_LaunchTemplateName,
        UpdateParamType_LaunchTemplateVersion,
        UpdateParamType_MaxSize,
        UpdateParamType_MaxUnavailable,
        UpdateParamType_MaxUnavailablePercentage,
        UpdateParamType_MinSize,
        UpdateParamType_PlatformVersion,
        UpdateParamType_PublicAccessCidrs,
        UpdateParamType_ReleaseVersion,
        UpdateParamType_ResolveConflicts,
        UpdateParamType_ServiceAccountRoleArn,
        UpdateParamType_TaintsToAdd,
        UpdateParamType_TaintsToRemove,
        UpdateParamType_Version
      ),
  )
where

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

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

pattern UpdateParamType_AddonVersion :: UpdateParamType
pattern $bUpdateParamType_AddonVersion :: UpdateParamType
$mUpdateParamType_AddonVersion :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_AddonVersion = UpdateParamType' "AddonVersion"

pattern UpdateParamType_ClusterLogging :: UpdateParamType
pattern $bUpdateParamType_ClusterLogging :: UpdateParamType
$mUpdateParamType_ClusterLogging :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_ClusterLogging = UpdateParamType' "ClusterLogging"

pattern UpdateParamType_DesiredSize :: UpdateParamType
pattern $bUpdateParamType_DesiredSize :: UpdateParamType
$mUpdateParamType_DesiredSize :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_DesiredSize = UpdateParamType' "DesiredSize"

pattern UpdateParamType_EncryptionConfig :: UpdateParamType
pattern $bUpdateParamType_EncryptionConfig :: UpdateParamType
$mUpdateParamType_EncryptionConfig :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_EncryptionConfig = UpdateParamType' "EncryptionConfig"

pattern UpdateParamType_EndpointPrivateAccess :: UpdateParamType
pattern $bUpdateParamType_EndpointPrivateAccess :: UpdateParamType
$mUpdateParamType_EndpointPrivateAccess :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_EndpointPrivateAccess = UpdateParamType' "EndpointPrivateAccess"

pattern UpdateParamType_EndpointPublicAccess :: UpdateParamType
pattern $bUpdateParamType_EndpointPublicAccess :: UpdateParamType
$mUpdateParamType_EndpointPublicAccess :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_EndpointPublicAccess = UpdateParamType' "EndpointPublicAccess"

pattern UpdateParamType_IdentityProviderConfig :: UpdateParamType
pattern $bUpdateParamType_IdentityProviderConfig :: UpdateParamType
$mUpdateParamType_IdentityProviderConfig :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_IdentityProviderConfig = UpdateParamType' "IdentityProviderConfig"

pattern UpdateParamType_LabelsToAdd :: UpdateParamType
pattern $bUpdateParamType_LabelsToAdd :: UpdateParamType
$mUpdateParamType_LabelsToAdd :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_LabelsToAdd = UpdateParamType' "LabelsToAdd"

pattern UpdateParamType_LabelsToRemove :: UpdateParamType
pattern $bUpdateParamType_LabelsToRemove :: UpdateParamType
$mUpdateParamType_LabelsToRemove :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_LabelsToRemove = UpdateParamType' "LabelsToRemove"

pattern UpdateParamType_LaunchTemplateName :: UpdateParamType
pattern $bUpdateParamType_LaunchTemplateName :: UpdateParamType
$mUpdateParamType_LaunchTemplateName :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_LaunchTemplateName = UpdateParamType' "LaunchTemplateName"

pattern UpdateParamType_LaunchTemplateVersion :: UpdateParamType
pattern $bUpdateParamType_LaunchTemplateVersion :: UpdateParamType
$mUpdateParamType_LaunchTemplateVersion :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_LaunchTemplateVersion = UpdateParamType' "LaunchTemplateVersion"

pattern UpdateParamType_MaxSize :: UpdateParamType
pattern $bUpdateParamType_MaxSize :: UpdateParamType
$mUpdateParamType_MaxSize :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_MaxSize = UpdateParamType' "MaxSize"

pattern UpdateParamType_MaxUnavailable :: UpdateParamType
pattern $bUpdateParamType_MaxUnavailable :: UpdateParamType
$mUpdateParamType_MaxUnavailable :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_MaxUnavailable = UpdateParamType' "MaxUnavailable"

pattern UpdateParamType_MaxUnavailablePercentage :: UpdateParamType
pattern $bUpdateParamType_MaxUnavailablePercentage :: UpdateParamType
$mUpdateParamType_MaxUnavailablePercentage :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_MaxUnavailablePercentage = UpdateParamType' "MaxUnavailablePercentage"

pattern UpdateParamType_MinSize :: UpdateParamType
pattern $bUpdateParamType_MinSize :: UpdateParamType
$mUpdateParamType_MinSize :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_MinSize = UpdateParamType' "MinSize"

pattern UpdateParamType_PlatformVersion :: UpdateParamType
pattern $bUpdateParamType_PlatformVersion :: UpdateParamType
$mUpdateParamType_PlatformVersion :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_PlatformVersion = UpdateParamType' "PlatformVersion"

pattern UpdateParamType_PublicAccessCidrs :: UpdateParamType
pattern $bUpdateParamType_PublicAccessCidrs :: UpdateParamType
$mUpdateParamType_PublicAccessCidrs :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_PublicAccessCidrs = UpdateParamType' "PublicAccessCidrs"

pattern UpdateParamType_ReleaseVersion :: UpdateParamType
pattern $bUpdateParamType_ReleaseVersion :: UpdateParamType
$mUpdateParamType_ReleaseVersion :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_ReleaseVersion = UpdateParamType' "ReleaseVersion"

pattern UpdateParamType_ResolveConflicts :: UpdateParamType
pattern $bUpdateParamType_ResolveConflicts :: UpdateParamType
$mUpdateParamType_ResolveConflicts :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_ResolveConflicts = UpdateParamType' "ResolveConflicts"

pattern UpdateParamType_ServiceAccountRoleArn :: UpdateParamType
pattern $bUpdateParamType_ServiceAccountRoleArn :: UpdateParamType
$mUpdateParamType_ServiceAccountRoleArn :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_ServiceAccountRoleArn = UpdateParamType' "ServiceAccountRoleArn"

pattern UpdateParamType_TaintsToAdd :: UpdateParamType
pattern $bUpdateParamType_TaintsToAdd :: UpdateParamType
$mUpdateParamType_TaintsToAdd :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_TaintsToAdd = UpdateParamType' "TaintsToAdd"

pattern UpdateParamType_TaintsToRemove :: UpdateParamType
pattern $bUpdateParamType_TaintsToRemove :: UpdateParamType
$mUpdateParamType_TaintsToRemove :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_TaintsToRemove = UpdateParamType' "TaintsToRemove"

pattern UpdateParamType_Version :: UpdateParamType
pattern $bUpdateParamType_Version :: UpdateParamType
$mUpdateParamType_Version :: forall r. UpdateParamType -> (Void# -> r) -> (Void# -> r) -> r
UpdateParamType_Version = UpdateParamType' "Version"

{-# COMPLETE
  UpdateParamType_AddonVersion,
  UpdateParamType_ClusterLogging,
  UpdateParamType_DesiredSize,
  UpdateParamType_EncryptionConfig,
  UpdateParamType_EndpointPrivateAccess,
  UpdateParamType_EndpointPublicAccess,
  UpdateParamType_IdentityProviderConfig,
  UpdateParamType_LabelsToAdd,
  UpdateParamType_LabelsToRemove,
  UpdateParamType_LaunchTemplateName,
  UpdateParamType_LaunchTemplateVersion,
  UpdateParamType_MaxSize,
  UpdateParamType_MaxUnavailable,
  UpdateParamType_MaxUnavailablePercentage,
  UpdateParamType_MinSize,
  UpdateParamType_PlatformVersion,
  UpdateParamType_PublicAccessCidrs,
  UpdateParamType_ReleaseVersion,
  UpdateParamType_ResolveConflicts,
  UpdateParamType_ServiceAccountRoleArn,
  UpdateParamType_TaintsToAdd,
  UpdateParamType_TaintsToRemove,
  UpdateParamType_Version,
  UpdateParamType'
  #-}