{-# 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.Inspector2.Types.SortField
-- 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.Inspector2.Types.SortField
  ( SortField
      ( ..,
        SortField_AWS_ACCOUNT_ID,
        SortField_COMPONENT_TYPE,
        SortField_ECR_IMAGE_PUSHED_AT,
        SortField_ECR_IMAGE_REGISTRY,
        SortField_ECR_IMAGE_REPOSITORY_NAME,
        SortField_FINDING_STATUS,
        SortField_FINDING_TYPE,
        SortField_FIRST_OBSERVED_AT,
        SortField_INSPECTOR_SCORE,
        SortField_LAST_OBSERVED_AT,
        SortField_NETWORK_PROTOCOL,
        SortField_RESOURCE_TYPE,
        SortField_SEVERITY,
        SortField_VENDOR_SEVERITY,
        SortField_VULNERABILITY_ID,
        SortField_VULNERABILITY_SOURCE
      ),
  )
where

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

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

pattern SortField_AWS_ACCOUNT_ID :: SortField
pattern $bSortField_AWS_ACCOUNT_ID :: SortField
$mSortField_AWS_ACCOUNT_ID :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_AWS_ACCOUNT_ID = SortField' "AWS_ACCOUNT_ID"

pattern SortField_COMPONENT_TYPE :: SortField
pattern $bSortField_COMPONENT_TYPE :: SortField
$mSortField_COMPONENT_TYPE :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_COMPONENT_TYPE = SortField' "COMPONENT_TYPE"

pattern SortField_ECR_IMAGE_PUSHED_AT :: SortField
pattern $bSortField_ECR_IMAGE_PUSHED_AT :: SortField
$mSortField_ECR_IMAGE_PUSHED_AT :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_ECR_IMAGE_PUSHED_AT = SortField' "ECR_IMAGE_PUSHED_AT"

pattern SortField_ECR_IMAGE_REGISTRY :: SortField
pattern $bSortField_ECR_IMAGE_REGISTRY :: SortField
$mSortField_ECR_IMAGE_REGISTRY :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_ECR_IMAGE_REGISTRY = SortField' "ECR_IMAGE_REGISTRY"

pattern SortField_ECR_IMAGE_REPOSITORY_NAME :: SortField
pattern $bSortField_ECR_IMAGE_REPOSITORY_NAME :: SortField
$mSortField_ECR_IMAGE_REPOSITORY_NAME :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_ECR_IMAGE_REPOSITORY_NAME = SortField' "ECR_IMAGE_REPOSITORY_NAME"

pattern SortField_FINDING_STATUS :: SortField
pattern $bSortField_FINDING_STATUS :: SortField
$mSortField_FINDING_STATUS :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_FINDING_STATUS = SortField' "FINDING_STATUS"

pattern SortField_FINDING_TYPE :: SortField
pattern $bSortField_FINDING_TYPE :: SortField
$mSortField_FINDING_TYPE :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_FINDING_TYPE = SortField' "FINDING_TYPE"

pattern SortField_FIRST_OBSERVED_AT :: SortField
pattern $bSortField_FIRST_OBSERVED_AT :: SortField
$mSortField_FIRST_OBSERVED_AT :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_FIRST_OBSERVED_AT = SortField' "FIRST_OBSERVED_AT"

pattern SortField_INSPECTOR_SCORE :: SortField
pattern $bSortField_INSPECTOR_SCORE :: SortField
$mSortField_INSPECTOR_SCORE :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_INSPECTOR_SCORE = SortField' "INSPECTOR_SCORE"

pattern SortField_LAST_OBSERVED_AT :: SortField
pattern $bSortField_LAST_OBSERVED_AT :: SortField
$mSortField_LAST_OBSERVED_AT :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_LAST_OBSERVED_AT = SortField' "LAST_OBSERVED_AT"

pattern SortField_NETWORK_PROTOCOL :: SortField
pattern $bSortField_NETWORK_PROTOCOL :: SortField
$mSortField_NETWORK_PROTOCOL :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_NETWORK_PROTOCOL = SortField' "NETWORK_PROTOCOL"

pattern SortField_RESOURCE_TYPE :: SortField
pattern $bSortField_RESOURCE_TYPE :: SortField
$mSortField_RESOURCE_TYPE :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_RESOURCE_TYPE = SortField' "RESOURCE_TYPE"

pattern SortField_SEVERITY :: SortField
pattern $bSortField_SEVERITY :: SortField
$mSortField_SEVERITY :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_SEVERITY = SortField' "SEVERITY"

pattern SortField_VENDOR_SEVERITY :: SortField
pattern $bSortField_VENDOR_SEVERITY :: SortField
$mSortField_VENDOR_SEVERITY :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_VENDOR_SEVERITY = SortField' "VENDOR_SEVERITY"

pattern SortField_VULNERABILITY_ID :: SortField
pattern $bSortField_VULNERABILITY_ID :: SortField
$mSortField_VULNERABILITY_ID :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_VULNERABILITY_ID = SortField' "VULNERABILITY_ID"

pattern SortField_VULNERABILITY_SOURCE :: SortField
pattern $bSortField_VULNERABILITY_SOURCE :: SortField
$mSortField_VULNERABILITY_SOURCE :: forall {r}. SortField -> ((# #) -> r) -> ((# #) -> r) -> r
SortField_VULNERABILITY_SOURCE = SortField' "VULNERABILITY_SOURCE"

{-# COMPLETE
  SortField_AWS_ACCOUNT_ID,
  SortField_COMPONENT_TYPE,
  SortField_ECR_IMAGE_PUSHED_AT,
  SortField_ECR_IMAGE_REGISTRY,
  SortField_ECR_IMAGE_REPOSITORY_NAME,
  SortField_FINDING_STATUS,
  SortField_FINDING_TYPE,
  SortField_FIRST_OBSERVED_AT,
  SortField_INSPECTOR_SCORE,
  SortField_LAST_OBSERVED_AT,
  SortField_NETWORK_PROTOCOL,
  SortField_RESOURCE_TYPE,
  SortField_SEVERITY,
  SortField_VENDOR_SEVERITY,
  SortField_VULNERABILITY_ID,
  SortField_VULNERABILITY_SOURCE,
  SortField'
  #-}