{-# 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.MigrationHub.Types.ResourceAttributeType
-- 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.MigrationHub.Types.ResourceAttributeType
  ( ResourceAttributeType
      ( ..,
        ResourceAttributeType_BIOS_ID,
        ResourceAttributeType_FQDN,
        ResourceAttributeType_IPV4_ADDRESS,
        ResourceAttributeType_IPV6_ADDRESS,
        ResourceAttributeType_MAC_ADDRESS,
        ResourceAttributeType_MOTHERBOARD_SERIAL_NUMBER,
        ResourceAttributeType_VM_MANAGED_OBJECT_REFERENCE,
        ResourceAttributeType_VM_MANAGER_ID,
        ResourceAttributeType_VM_NAME,
        ResourceAttributeType_VM_PATH
      ),
  )
where

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

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

pattern ResourceAttributeType_BIOS_ID :: ResourceAttributeType
pattern $bResourceAttributeType_BIOS_ID :: ResourceAttributeType
$mResourceAttributeType_BIOS_ID :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_BIOS_ID = ResourceAttributeType' "BIOS_ID"

pattern ResourceAttributeType_FQDN :: ResourceAttributeType
pattern $bResourceAttributeType_FQDN :: ResourceAttributeType
$mResourceAttributeType_FQDN :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_FQDN = ResourceAttributeType' "FQDN"

pattern ResourceAttributeType_IPV4_ADDRESS :: ResourceAttributeType
pattern $bResourceAttributeType_IPV4_ADDRESS :: ResourceAttributeType
$mResourceAttributeType_IPV4_ADDRESS :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_IPV4_ADDRESS = ResourceAttributeType' "IPV4_ADDRESS"

pattern ResourceAttributeType_IPV6_ADDRESS :: ResourceAttributeType
pattern $bResourceAttributeType_IPV6_ADDRESS :: ResourceAttributeType
$mResourceAttributeType_IPV6_ADDRESS :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_IPV6_ADDRESS = ResourceAttributeType' "IPV6_ADDRESS"

pattern ResourceAttributeType_MAC_ADDRESS :: ResourceAttributeType
pattern $bResourceAttributeType_MAC_ADDRESS :: ResourceAttributeType
$mResourceAttributeType_MAC_ADDRESS :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_MAC_ADDRESS = ResourceAttributeType' "MAC_ADDRESS"

pattern ResourceAttributeType_MOTHERBOARD_SERIAL_NUMBER :: ResourceAttributeType
pattern $bResourceAttributeType_MOTHERBOARD_SERIAL_NUMBER :: ResourceAttributeType
$mResourceAttributeType_MOTHERBOARD_SERIAL_NUMBER :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_MOTHERBOARD_SERIAL_NUMBER = ResourceAttributeType' "MOTHERBOARD_SERIAL_NUMBER"

pattern ResourceAttributeType_VM_MANAGED_OBJECT_REFERENCE :: ResourceAttributeType
pattern $bResourceAttributeType_VM_MANAGED_OBJECT_REFERENCE :: ResourceAttributeType
$mResourceAttributeType_VM_MANAGED_OBJECT_REFERENCE :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_VM_MANAGED_OBJECT_REFERENCE = ResourceAttributeType' "VM_MANAGED_OBJECT_REFERENCE"

pattern ResourceAttributeType_VM_MANAGER_ID :: ResourceAttributeType
pattern $bResourceAttributeType_VM_MANAGER_ID :: ResourceAttributeType
$mResourceAttributeType_VM_MANAGER_ID :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_VM_MANAGER_ID = ResourceAttributeType' "VM_MANAGER_ID"

pattern ResourceAttributeType_VM_NAME :: ResourceAttributeType
pattern $bResourceAttributeType_VM_NAME :: ResourceAttributeType
$mResourceAttributeType_VM_NAME :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_VM_NAME = ResourceAttributeType' "VM_NAME"

pattern ResourceAttributeType_VM_PATH :: ResourceAttributeType
pattern $bResourceAttributeType_VM_PATH :: ResourceAttributeType
$mResourceAttributeType_VM_PATH :: forall r.
ResourceAttributeType -> (Void# -> r) -> (Void# -> r) -> r
ResourceAttributeType_VM_PATH = ResourceAttributeType' "VM_PATH"

{-# COMPLETE
  ResourceAttributeType_BIOS_ID,
  ResourceAttributeType_FQDN,
  ResourceAttributeType_IPV4_ADDRESS,
  ResourceAttributeType_IPV6_ADDRESS,
  ResourceAttributeType_MAC_ADDRESS,
  ResourceAttributeType_MOTHERBOARD_SERIAL_NUMBER,
  ResourceAttributeType_VM_MANAGED_OBJECT_REFERENCE,
  ResourceAttributeType_VM_MANAGER_ID,
  ResourceAttributeType_VM_NAME,
  ResourceAttributeType_VM_PATH,
  ResourceAttributeType'
  #-}