{-# 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.EC2.Types.ResourceType
-- 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.EC2.Types.ResourceType
  ( ResourceType
      ( ..,
        ResourceType_Capacity_reservation,
        ResourceType_Capacity_reservation_fleet,
        ResourceType_Carrier_gateway,
        ResourceType_Client_vpn_endpoint,
        ResourceType_Coip_pool,
        ResourceType_Customer_gateway,
        ResourceType_Dedicated_host,
        ResourceType_Dhcp_options,
        ResourceType_Egress_only_internet_gateway,
        ResourceType_Elastic_gpu,
        ResourceType_Elastic_ip,
        ResourceType_Export_image_task,
        ResourceType_Export_instance_task,
        ResourceType_Fleet,
        ResourceType_Fpga_image,
        ResourceType_Host_reservation,
        ResourceType_Image,
        ResourceType_Import_image_task,
        ResourceType_Import_snapshot_task,
        ResourceType_Instance,
        ResourceType_Instance_event_window,
        ResourceType_Internet_gateway,
        ResourceType_Ipam,
        ResourceType_Ipam_pool,
        ResourceType_Ipam_scope,
        ResourceType_Ipv4pool_ec2,
        ResourceType_Ipv6pool_ec2,
        ResourceType_Key_pair,
        ResourceType_Launch_template,
        ResourceType_Local_gateway,
        ResourceType_Local_gateway_route_table,
        ResourceType_Local_gateway_route_table_virtual_interface_group_association,
        ResourceType_Local_gateway_route_table_vpc_association,
        ResourceType_Local_gateway_virtual_interface,
        ResourceType_Local_gateway_virtual_interface_group,
        ResourceType_Natgateway,
        ResourceType_Network_acl,
        ResourceType_Network_insights_access_scope,
        ResourceType_Network_insights_access_scope_analysis,
        ResourceType_Network_insights_analysis,
        ResourceType_Network_insights_path,
        ResourceType_Network_interface,
        ResourceType_Placement_group,
        ResourceType_Prefix_list,
        ResourceType_Replace_root_volume_task,
        ResourceType_Reserved_instances,
        ResourceType_Route_table,
        ResourceType_Security_group,
        ResourceType_Security_group_rule,
        ResourceType_Snapshot,
        ResourceType_Spot_fleet_request,
        ResourceType_Spot_instances_request,
        ResourceType_Subnet,
        ResourceType_Subnet_cidr_reservation,
        ResourceType_Traffic_mirror_filter,
        ResourceType_Traffic_mirror_filter_rule,
        ResourceType_Traffic_mirror_session,
        ResourceType_Traffic_mirror_target,
        ResourceType_Transit_gateway,
        ResourceType_Transit_gateway_attachment,
        ResourceType_Transit_gateway_connect_peer,
        ResourceType_Transit_gateway_multicast_domain,
        ResourceType_Transit_gateway_policy_table,
        ResourceType_Transit_gateway_route_table,
        ResourceType_Transit_gateway_route_table_announcement,
        ResourceType_Verified_access_endpoint,
        ResourceType_Verified_access_group,
        ResourceType_Verified_access_instance,
        ResourceType_Verified_access_policy,
        ResourceType_Verified_access_trust_provider,
        ResourceType_Volume,
        ResourceType_Vpc,
        ResourceType_Vpc_block_public_access_exclusion,
        ResourceType_Vpc_endpoint,
        ResourceType_Vpc_endpoint_connection,
        ResourceType_Vpc_endpoint_connection_device_type,
        ResourceType_Vpc_endpoint_service,
        ResourceType_Vpc_endpoint_service_permission,
        ResourceType_Vpc_flow_log,
        ResourceType_Vpc_peering_connection,
        ResourceType_Vpn_connection,
        ResourceType_Vpn_connection_device_type,
        ResourceType_Vpn_gateway
      ),
  )
where

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

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

pattern ResourceType_Capacity_reservation :: ResourceType
pattern $bResourceType_Capacity_reservation :: ResourceType
$mResourceType_Capacity_reservation :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Capacity_reservation = ResourceType' "capacity-reservation"

pattern ResourceType_Capacity_reservation_fleet :: ResourceType
pattern $bResourceType_Capacity_reservation_fleet :: ResourceType
$mResourceType_Capacity_reservation_fleet :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Capacity_reservation_fleet = ResourceType' "capacity-reservation-fleet"

pattern ResourceType_Carrier_gateway :: ResourceType
pattern $bResourceType_Carrier_gateway :: ResourceType
$mResourceType_Carrier_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Carrier_gateway = ResourceType' "carrier-gateway"

pattern ResourceType_Client_vpn_endpoint :: ResourceType
pattern $bResourceType_Client_vpn_endpoint :: ResourceType
$mResourceType_Client_vpn_endpoint :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Client_vpn_endpoint = ResourceType' "client-vpn-endpoint"

pattern ResourceType_Coip_pool :: ResourceType
pattern $bResourceType_Coip_pool :: ResourceType
$mResourceType_Coip_pool :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Coip_pool = ResourceType' "coip-pool"

pattern ResourceType_Customer_gateway :: ResourceType
pattern $bResourceType_Customer_gateway :: ResourceType
$mResourceType_Customer_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Customer_gateway = ResourceType' "customer-gateway"

pattern ResourceType_Dedicated_host :: ResourceType
pattern $bResourceType_Dedicated_host :: ResourceType
$mResourceType_Dedicated_host :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Dedicated_host = ResourceType' "dedicated-host"

pattern ResourceType_Dhcp_options :: ResourceType
pattern $bResourceType_Dhcp_options :: ResourceType
$mResourceType_Dhcp_options :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Dhcp_options = ResourceType' "dhcp-options"

pattern ResourceType_Egress_only_internet_gateway :: ResourceType
pattern $bResourceType_Egress_only_internet_gateway :: ResourceType
$mResourceType_Egress_only_internet_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Egress_only_internet_gateway = ResourceType' "egress-only-internet-gateway"

pattern ResourceType_Elastic_gpu :: ResourceType
pattern $bResourceType_Elastic_gpu :: ResourceType
$mResourceType_Elastic_gpu :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Elastic_gpu = ResourceType' "elastic-gpu"

pattern ResourceType_Elastic_ip :: ResourceType
pattern $bResourceType_Elastic_ip :: ResourceType
$mResourceType_Elastic_ip :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Elastic_ip = ResourceType' "elastic-ip"

pattern ResourceType_Export_image_task :: ResourceType
pattern $bResourceType_Export_image_task :: ResourceType
$mResourceType_Export_image_task :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Export_image_task = ResourceType' "export-image-task"

pattern ResourceType_Export_instance_task :: ResourceType
pattern $bResourceType_Export_instance_task :: ResourceType
$mResourceType_Export_instance_task :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Export_instance_task = ResourceType' "export-instance-task"

pattern ResourceType_Fleet :: ResourceType
pattern $bResourceType_Fleet :: ResourceType
$mResourceType_Fleet :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Fleet = ResourceType' "fleet"

pattern ResourceType_Fpga_image :: ResourceType
pattern $bResourceType_Fpga_image :: ResourceType
$mResourceType_Fpga_image :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Fpga_image = ResourceType' "fpga-image"

pattern ResourceType_Host_reservation :: ResourceType
pattern $bResourceType_Host_reservation :: ResourceType
$mResourceType_Host_reservation :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Host_reservation = ResourceType' "host-reservation"

pattern ResourceType_Image :: ResourceType
pattern $bResourceType_Image :: ResourceType
$mResourceType_Image :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Image = ResourceType' "image"

pattern ResourceType_Import_image_task :: ResourceType
pattern $bResourceType_Import_image_task :: ResourceType
$mResourceType_Import_image_task :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Import_image_task = ResourceType' "import-image-task"

pattern ResourceType_Import_snapshot_task :: ResourceType
pattern $bResourceType_Import_snapshot_task :: ResourceType
$mResourceType_Import_snapshot_task :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Import_snapshot_task = ResourceType' "import-snapshot-task"

pattern ResourceType_Instance :: ResourceType
pattern $bResourceType_Instance :: ResourceType
$mResourceType_Instance :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Instance = ResourceType' "instance"

pattern ResourceType_Instance_event_window :: ResourceType
pattern $bResourceType_Instance_event_window :: ResourceType
$mResourceType_Instance_event_window :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Instance_event_window = ResourceType' "instance-event-window"

pattern ResourceType_Internet_gateway :: ResourceType
pattern $bResourceType_Internet_gateway :: ResourceType
$mResourceType_Internet_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Internet_gateway = ResourceType' "internet-gateway"

pattern ResourceType_Ipam :: ResourceType
pattern $bResourceType_Ipam :: ResourceType
$mResourceType_Ipam :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Ipam = ResourceType' "ipam"

pattern ResourceType_Ipam_pool :: ResourceType
pattern $bResourceType_Ipam_pool :: ResourceType
$mResourceType_Ipam_pool :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Ipam_pool = ResourceType' "ipam-pool"

pattern ResourceType_Ipam_scope :: ResourceType
pattern $bResourceType_Ipam_scope :: ResourceType
$mResourceType_Ipam_scope :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Ipam_scope = ResourceType' "ipam-scope"

pattern ResourceType_Ipv4pool_ec2 :: ResourceType
pattern $bResourceType_Ipv4pool_ec2 :: ResourceType
$mResourceType_Ipv4pool_ec2 :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Ipv4pool_ec2 = ResourceType' "ipv4pool-ec2"

pattern ResourceType_Ipv6pool_ec2 :: ResourceType
pattern $bResourceType_Ipv6pool_ec2 :: ResourceType
$mResourceType_Ipv6pool_ec2 :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Ipv6pool_ec2 = ResourceType' "ipv6pool-ec2"

pattern ResourceType_Key_pair :: ResourceType
pattern $bResourceType_Key_pair :: ResourceType
$mResourceType_Key_pair :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Key_pair = ResourceType' "key-pair"

pattern ResourceType_Launch_template :: ResourceType
pattern $bResourceType_Launch_template :: ResourceType
$mResourceType_Launch_template :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Launch_template = ResourceType' "launch-template"

pattern ResourceType_Local_gateway :: ResourceType
pattern $bResourceType_Local_gateway :: ResourceType
$mResourceType_Local_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Local_gateway = ResourceType' "local-gateway"

pattern ResourceType_Local_gateway_route_table :: ResourceType
pattern $bResourceType_Local_gateway_route_table :: ResourceType
$mResourceType_Local_gateway_route_table :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Local_gateway_route_table = ResourceType' "local-gateway-route-table"

pattern ResourceType_Local_gateway_route_table_virtual_interface_group_association :: ResourceType
pattern $bResourceType_Local_gateway_route_table_virtual_interface_group_association :: ResourceType
$mResourceType_Local_gateway_route_table_virtual_interface_group_association :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Local_gateway_route_table_virtual_interface_group_association = ResourceType' "local-gateway-route-table-virtual-interface-group-association"

pattern ResourceType_Local_gateway_route_table_vpc_association :: ResourceType
pattern $bResourceType_Local_gateway_route_table_vpc_association :: ResourceType
$mResourceType_Local_gateway_route_table_vpc_association :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Local_gateway_route_table_vpc_association = ResourceType' "local-gateway-route-table-vpc-association"

pattern ResourceType_Local_gateway_virtual_interface :: ResourceType
pattern $bResourceType_Local_gateway_virtual_interface :: ResourceType
$mResourceType_Local_gateway_virtual_interface :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Local_gateway_virtual_interface = ResourceType' "local-gateway-virtual-interface"

pattern ResourceType_Local_gateway_virtual_interface_group :: ResourceType
pattern $bResourceType_Local_gateway_virtual_interface_group :: ResourceType
$mResourceType_Local_gateway_virtual_interface_group :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Local_gateway_virtual_interface_group = ResourceType' "local-gateway-virtual-interface-group"

pattern ResourceType_Natgateway :: ResourceType
pattern $bResourceType_Natgateway :: ResourceType
$mResourceType_Natgateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Natgateway = ResourceType' "natgateway"

pattern ResourceType_Network_acl :: ResourceType
pattern $bResourceType_Network_acl :: ResourceType
$mResourceType_Network_acl :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Network_acl = ResourceType' "network-acl"

pattern ResourceType_Network_insights_access_scope :: ResourceType
pattern $bResourceType_Network_insights_access_scope :: ResourceType
$mResourceType_Network_insights_access_scope :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Network_insights_access_scope = ResourceType' "network-insights-access-scope"

pattern ResourceType_Network_insights_access_scope_analysis :: ResourceType
pattern $bResourceType_Network_insights_access_scope_analysis :: ResourceType
$mResourceType_Network_insights_access_scope_analysis :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Network_insights_access_scope_analysis = ResourceType' "network-insights-access-scope-analysis"

pattern ResourceType_Network_insights_analysis :: ResourceType
pattern $bResourceType_Network_insights_analysis :: ResourceType
$mResourceType_Network_insights_analysis :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Network_insights_analysis = ResourceType' "network-insights-analysis"

pattern ResourceType_Network_insights_path :: ResourceType
pattern $bResourceType_Network_insights_path :: ResourceType
$mResourceType_Network_insights_path :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Network_insights_path = ResourceType' "network-insights-path"

pattern ResourceType_Network_interface :: ResourceType
pattern $bResourceType_Network_interface :: ResourceType
$mResourceType_Network_interface :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Network_interface = ResourceType' "network-interface"

pattern ResourceType_Placement_group :: ResourceType
pattern $bResourceType_Placement_group :: ResourceType
$mResourceType_Placement_group :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Placement_group = ResourceType' "placement-group"

pattern ResourceType_Prefix_list :: ResourceType
pattern $bResourceType_Prefix_list :: ResourceType
$mResourceType_Prefix_list :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Prefix_list = ResourceType' "prefix-list"

pattern ResourceType_Replace_root_volume_task :: ResourceType
pattern $bResourceType_Replace_root_volume_task :: ResourceType
$mResourceType_Replace_root_volume_task :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Replace_root_volume_task = ResourceType' "replace-root-volume-task"

pattern ResourceType_Reserved_instances :: ResourceType
pattern $bResourceType_Reserved_instances :: ResourceType
$mResourceType_Reserved_instances :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Reserved_instances = ResourceType' "reserved-instances"

pattern ResourceType_Route_table :: ResourceType
pattern $bResourceType_Route_table :: ResourceType
$mResourceType_Route_table :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Route_table = ResourceType' "route-table"

pattern ResourceType_Security_group :: ResourceType
pattern $bResourceType_Security_group :: ResourceType
$mResourceType_Security_group :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Security_group = ResourceType' "security-group"

pattern ResourceType_Security_group_rule :: ResourceType
pattern $bResourceType_Security_group_rule :: ResourceType
$mResourceType_Security_group_rule :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Security_group_rule = ResourceType' "security-group-rule"

pattern ResourceType_Snapshot :: ResourceType
pattern $bResourceType_Snapshot :: ResourceType
$mResourceType_Snapshot :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Snapshot = ResourceType' "snapshot"

pattern ResourceType_Spot_fleet_request :: ResourceType
pattern $bResourceType_Spot_fleet_request :: ResourceType
$mResourceType_Spot_fleet_request :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Spot_fleet_request = ResourceType' "spot-fleet-request"

pattern ResourceType_Spot_instances_request :: ResourceType
pattern $bResourceType_Spot_instances_request :: ResourceType
$mResourceType_Spot_instances_request :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Spot_instances_request = ResourceType' "spot-instances-request"

pattern ResourceType_Subnet :: ResourceType
pattern $bResourceType_Subnet :: ResourceType
$mResourceType_Subnet :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Subnet = ResourceType' "subnet"

pattern ResourceType_Subnet_cidr_reservation :: ResourceType
pattern $bResourceType_Subnet_cidr_reservation :: ResourceType
$mResourceType_Subnet_cidr_reservation :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Subnet_cidr_reservation = ResourceType' "subnet-cidr-reservation"

pattern ResourceType_Traffic_mirror_filter :: ResourceType
pattern $bResourceType_Traffic_mirror_filter :: ResourceType
$mResourceType_Traffic_mirror_filter :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Traffic_mirror_filter = ResourceType' "traffic-mirror-filter"

pattern ResourceType_Traffic_mirror_filter_rule :: ResourceType
pattern $bResourceType_Traffic_mirror_filter_rule :: ResourceType
$mResourceType_Traffic_mirror_filter_rule :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Traffic_mirror_filter_rule = ResourceType' "traffic-mirror-filter-rule"

pattern ResourceType_Traffic_mirror_session :: ResourceType
pattern $bResourceType_Traffic_mirror_session :: ResourceType
$mResourceType_Traffic_mirror_session :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Traffic_mirror_session = ResourceType' "traffic-mirror-session"

pattern ResourceType_Traffic_mirror_target :: ResourceType
pattern $bResourceType_Traffic_mirror_target :: ResourceType
$mResourceType_Traffic_mirror_target :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Traffic_mirror_target = ResourceType' "traffic-mirror-target"

pattern ResourceType_Transit_gateway :: ResourceType
pattern $bResourceType_Transit_gateway :: ResourceType
$mResourceType_Transit_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway = ResourceType' "transit-gateway"

pattern ResourceType_Transit_gateway_attachment :: ResourceType
pattern $bResourceType_Transit_gateway_attachment :: ResourceType
$mResourceType_Transit_gateway_attachment :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway_attachment = ResourceType' "transit-gateway-attachment"

pattern ResourceType_Transit_gateway_connect_peer :: ResourceType
pattern $bResourceType_Transit_gateway_connect_peer :: ResourceType
$mResourceType_Transit_gateway_connect_peer :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway_connect_peer = ResourceType' "transit-gateway-connect-peer"

pattern ResourceType_Transit_gateway_multicast_domain :: ResourceType
pattern $bResourceType_Transit_gateway_multicast_domain :: ResourceType
$mResourceType_Transit_gateway_multicast_domain :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway_multicast_domain = ResourceType' "transit-gateway-multicast-domain"

pattern ResourceType_Transit_gateway_policy_table :: ResourceType
pattern $bResourceType_Transit_gateway_policy_table :: ResourceType
$mResourceType_Transit_gateway_policy_table :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway_policy_table = ResourceType' "transit-gateway-policy-table"

pattern ResourceType_Transit_gateway_route_table :: ResourceType
pattern $bResourceType_Transit_gateway_route_table :: ResourceType
$mResourceType_Transit_gateway_route_table :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway_route_table = ResourceType' "transit-gateway-route-table"

pattern ResourceType_Transit_gateway_route_table_announcement :: ResourceType
pattern $bResourceType_Transit_gateway_route_table_announcement :: ResourceType
$mResourceType_Transit_gateway_route_table_announcement :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Transit_gateway_route_table_announcement = ResourceType' "transit-gateway-route-table-announcement"

pattern ResourceType_Verified_access_endpoint :: ResourceType
pattern $bResourceType_Verified_access_endpoint :: ResourceType
$mResourceType_Verified_access_endpoint :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Verified_access_endpoint = ResourceType' "verified-access-endpoint"

pattern ResourceType_Verified_access_group :: ResourceType
pattern $bResourceType_Verified_access_group :: ResourceType
$mResourceType_Verified_access_group :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Verified_access_group = ResourceType' "verified-access-group"

pattern ResourceType_Verified_access_instance :: ResourceType
pattern $bResourceType_Verified_access_instance :: ResourceType
$mResourceType_Verified_access_instance :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Verified_access_instance = ResourceType' "verified-access-instance"

pattern ResourceType_Verified_access_policy :: ResourceType
pattern $bResourceType_Verified_access_policy :: ResourceType
$mResourceType_Verified_access_policy :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Verified_access_policy = ResourceType' "verified-access-policy"

pattern ResourceType_Verified_access_trust_provider :: ResourceType
pattern $bResourceType_Verified_access_trust_provider :: ResourceType
$mResourceType_Verified_access_trust_provider :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Verified_access_trust_provider = ResourceType' "verified-access-trust-provider"

pattern ResourceType_Volume :: ResourceType
pattern $bResourceType_Volume :: ResourceType
$mResourceType_Volume :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Volume = ResourceType' "volume"

pattern ResourceType_Vpc :: ResourceType
pattern $bResourceType_Vpc :: ResourceType
$mResourceType_Vpc :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc = ResourceType' "vpc"

pattern ResourceType_Vpc_block_public_access_exclusion :: ResourceType
pattern $bResourceType_Vpc_block_public_access_exclusion :: ResourceType
$mResourceType_Vpc_block_public_access_exclusion :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_block_public_access_exclusion = ResourceType' "vpc-block-public-access-exclusion"

pattern ResourceType_Vpc_endpoint :: ResourceType
pattern $bResourceType_Vpc_endpoint :: ResourceType
$mResourceType_Vpc_endpoint :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_endpoint = ResourceType' "vpc-endpoint"

pattern ResourceType_Vpc_endpoint_connection :: ResourceType
pattern $bResourceType_Vpc_endpoint_connection :: ResourceType
$mResourceType_Vpc_endpoint_connection :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_endpoint_connection = ResourceType' "vpc-endpoint-connection"

pattern ResourceType_Vpc_endpoint_connection_device_type :: ResourceType
pattern $bResourceType_Vpc_endpoint_connection_device_type :: ResourceType
$mResourceType_Vpc_endpoint_connection_device_type :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_endpoint_connection_device_type = ResourceType' "vpc-endpoint-connection-device-type"

pattern ResourceType_Vpc_endpoint_service :: ResourceType
pattern $bResourceType_Vpc_endpoint_service :: ResourceType
$mResourceType_Vpc_endpoint_service :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_endpoint_service = ResourceType' "vpc-endpoint-service"

pattern ResourceType_Vpc_endpoint_service_permission :: ResourceType
pattern $bResourceType_Vpc_endpoint_service_permission :: ResourceType
$mResourceType_Vpc_endpoint_service_permission :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_endpoint_service_permission = ResourceType' "vpc-endpoint-service-permission"

pattern ResourceType_Vpc_flow_log :: ResourceType
pattern $bResourceType_Vpc_flow_log :: ResourceType
$mResourceType_Vpc_flow_log :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_flow_log = ResourceType' "vpc-flow-log"

pattern ResourceType_Vpc_peering_connection :: ResourceType
pattern $bResourceType_Vpc_peering_connection :: ResourceType
$mResourceType_Vpc_peering_connection :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpc_peering_connection = ResourceType' "vpc-peering-connection"

pattern ResourceType_Vpn_connection :: ResourceType
pattern $bResourceType_Vpn_connection :: ResourceType
$mResourceType_Vpn_connection :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpn_connection = ResourceType' "vpn-connection"

pattern ResourceType_Vpn_connection_device_type :: ResourceType
pattern $bResourceType_Vpn_connection_device_type :: ResourceType
$mResourceType_Vpn_connection_device_type :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpn_connection_device_type = ResourceType' "vpn-connection-device-type"

pattern ResourceType_Vpn_gateway :: ResourceType
pattern $bResourceType_Vpn_gateway :: ResourceType
$mResourceType_Vpn_gateway :: forall {r}. ResourceType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceType_Vpn_gateway = ResourceType' "vpn-gateway"

{-# COMPLETE
  ResourceType_Capacity_reservation,
  ResourceType_Capacity_reservation_fleet,
  ResourceType_Carrier_gateway,
  ResourceType_Client_vpn_endpoint,
  ResourceType_Coip_pool,
  ResourceType_Customer_gateway,
  ResourceType_Dedicated_host,
  ResourceType_Dhcp_options,
  ResourceType_Egress_only_internet_gateway,
  ResourceType_Elastic_gpu,
  ResourceType_Elastic_ip,
  ResourceType_Export_image_task,
  ResourceType_Export_instance_task,
  ResourceType_Fleet,
  ResourceType_Fpga_image,
  ResourceType_Host_reservation,
  ResourceType_Image,
  ResourceType_Import_image_task,
  ResourceType_Import_snapshot_task,
  ResourceType_Instance,
  ResourceType_Instance_event_window,
  ResourceType_Internet_gateway,
  ResourceType_Ipam,
  ResourceType_Ipam_pool,
  ResourceType_Ipam_scope,
  ResourceType_Ipv4pool_ec2,
  ResourceType_Ipv6pool_ec2,
  ResourceType_Key_pair,
  ResourceType_Launch_template,
  ResourceType_Local_gateway,
  ResourceType_Local_gateway_route_table,
  ResourceType_Local_gateway_route_table_virtual_interface_group_association,
  ResourceType_Local_gateway_route_table_vpc_association,
  ResourceType_Local_gateway_virtual_interface,
  ResourceType_Local_gateway_virtual_interface_group,
  ResourceType_Natgateway,
  ResourceType_Network_acl,
  ResourceType_Network_insights_access_scope,
  ResourceType_Network_insights_access_scope_analysis,
  ResourceType_Network_insights_analysis,
  ResourceType_Network_insights_path,
  ResourceType_Network_interface,
  ResourceType_Placement_group,
  ResourceType_Prefix_list,
  ResourceType_Replace_root_volume_task,
  ResourceType_Reserved_instances,
  ResourceType_Route_table,
  ResourceType_Security_group,
  ResourceType_Security_group_rule,
  ResourceType_Snapshot,
  ResourceType_Spot_fleet_request,
  ResourceType_Spot_instances_request,
  ResourceType_Subnet,
  ResourceType_Subnet_cidr_reservation,
  ResourceType_Traffic_mirror_filter,
  ResourceType_Traffic_mirror_filter_rule,
  ResourceType_Traffic_mirror_session,
  ResourceType_Traffic_mirror_target,
  ResourceType_Transit_gateway,
  ResourceType_Transit_gateway_attachment,
  ResourceType_Transit_gateway_connect_peer,
  ResourceType_Transit_gateway_multicast_domain,
  ResourceType_Transit_gateway_policy_table,
  ResourceType_Transit_gateway_route_table,
  ResourceType_Transit_gateway_route_table_announcement,
  ResourceType_Verified_access_endpoint,
  ResourceType_Verified_access_group,
  ResourceType_Verified_access_instance,
  ResourceType_Verified_access_policy,
  ResourceType_Verified_access_trust_provider,
  ResourceType_Volume,
  ResourceType_Vpc,
  ResourceType_Vpc_block_public_access_exclusion,
  ResourceType_Vpc_endpoint,
  ResourceType_Vpc_endpoint_connection,
  ResourceType_Vpc_endpoint_connection_device_type,
  ResourceType_Vpc_endpoint_service,
  ResourceType_Vpc_endpoint_service_permission,
  ResourceType_Vpc_flow_log,
  ResourceType_Vpc_peering_connection,
  ResourceType_Vpn_connection,
  ResourceType_Vpn_connection_device_type,
  ResourceType_Vpn_gateway,
  ResourceType'
  #-}