{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.EC2.Types.LaunchTemplatePlacementRequest
-- 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.LaunchTemplatePlacementRequest where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.Tenancy
import qualified Amazonka.Prelude as Prelude

-- | Describes the placement of an instance.
--
-- /See:/ 'newLaunchTemplatePlacementRequest' smart constructor.
data LaunchTemplatePlacementRequest = LaunchTemplatePlacementRequest'
  { -- | The affinity setting for an instance on a Dedicated Host.
    LaunchTemplatePlacementRequest -> Maybe Text
affinity :: Prelude.Maybe Prelude.Text,
    -- | The Availability Zone for the instance.
    LaunchTemplatePlacementRequest -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
    -- | The Group Id of a placement group. You must specify the Placement Group
    -- __Group Id__ to launch an instance in a shared placement group.
    LaunchTemplatePlacementRequest -> Maybe Text
groupId :: Prelude.Maybe Prelude.Text,
    -- | The name of the placement group for the instance.
    LaunchTemplatePlacementRequest -> Maybe Text
groupName :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Dedicated Host for the instance.
    LaunchTemplatePlacementRequest -> Maybe Text
hostId :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the host resource group in which to launch the instances. If
    -- you specify a host resource group ARN, omit the __Tenancy__ parameter or
    -- set it to @host@.
    LaunchTemplatePlacementRequest -> Maybe Text
hostResourceGroupArn :: Prelude.Maybe Prelude.Text,
    -- | The number of the partition the instance should launch in. Valid only if
    -- the placement group strategy is set to @partition@.
    LaunchTemplatePlacementRequest -> Maybe Int
partitionNumber :: Prelude.Maybe Prelude.Int,
    -- | Reserved for future use.
    LaunchTemplatePlacementRequest -> Maybe Text
spreadDomain :: Prelude.Maybe Prelude.Text,
    -- | The tenancy of the instance (if the instance is running in a VPC). An
    -- instance with a tenancy of dedicated runs on single-tenant hardware.
    LaunchTemplatePlacementRequest -> Maybe Tenancy
tenancy :: Prelude.Maybe Tenancy
  }
  deriving (LaunchTemplatePlacementRequest
-> LaunchTemplatePlacementRequest -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LaunchTemplatePlacementRequest
-> LaunchTemplatePlacementRequest -> Bool
$c/= :: LaunchTemplatePlacementRequest
-> LaunchTemplatePlacementRequest -> Bool
== :: LaunchTemplatePlacementRequest
-> LaunchTemplatePlacementRequest -> Bool
$c== :: LaunchTemplatePlacementRequest
-> LaunchTemplatePlacementRequest -> Bool
Prelude.Eq, ReadPrec [LaunchTemplatePlacementRequest]
ReadPrec LaunchTemplatePlacementRequest
Int -> ReadS LaunchTemplatePlacementRequest
ReadS [LaunchTemplatePlacementRequest]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LaunchTemplatePlacementRequest]
$creadListPrec :: ReadPrec [LaunchTemplatePlacementRequest]
readPrec :: ReadPrec LaunchTemplatePlacementRequest
$creadPrec :: ReadPrec LaunchTemplatePlacementRequest
readList :: ReadS [LaunchTemplatePlacementRequest]
$creadList :: ReadS [LaunchTemplatePlacementRequest]
readsPrec :: Int -> ReadS LaunchTemplatePlacementRequest
$creadsPrec :: Int -> ReadS LaunchTemplatePlacementRequest
Prelude.Read, Int -> LaunchTemplatePlacementRequest -> ShowS
[LaunchTemplatePlacementRequest] -> ShowS
LaunchTemplatePlacementRequest -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LaunchTemplatePlacementRequest] -> ShowS
$cshowList :: [LaunchTemplatePlacementRequest] -> ShowS
show :: LaunchTemplatePlacementRequest -> String
$cshow :: LaunchTemplatePlacementRequest -> String
showsPrec :: Int -> LaunchTemplatePlacementRequest -> ShowS
$cshowsPrec :: Int -> LaunchTemplatePlacementRequest -> ShowS
Prelude.Show, forall x.
Rep LaunchTemplatePlacementRequest x
-> LaunchTemplatePlacementRequest
forall x.
LaunchTemplatePlacementRequest
-> Rep LaunchTemplatePlacementRequest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep LaunchTemplatePlacementRequest x
-> LaunchTemplatePlacementRequest
$cfrom :: forall x.
LaunchTemplatePlacementRequest
-> Rep LaunchTemplatePlacementRequest x
Prelude.Generic)

-- |
-- Create a value of 'LaunchTemplatePlacementRequest' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'affinity', 'launchTemplatePlacementRequest_affinity' - The affinity setting for an instance on a Dedicated Host.
--
-- 'availabilityZone', 'launchTemplatePlacementRequest_availabilityZone' - The Availability Zone for the instance.
--
-- 'groupId', 'launchTemplatePlacementRequest_groupId' - The Group Id of a placement group. You must specify the Placement Group
-- __Group Id__ to launch an instance in a shared placement group.
--
-- 'groupName', 'launchTemplatePlacementRequest_groupName' - The name of the placement group for the instance.
--
-- 'hostId', 'launchTemplatePlacementRequest_hostId' - The ID of the Dedicated Host for the instance.
--
-- 'hostResourceGroupArn', 'launchTemplatePlacementRequest_hostResourceGroupArn' - The ARN of the host resource group in which to launch the instances. If
-- you specify a host resource group ARN, omit the __Tenancy__ parameter or
-- set it to @host@.
--
-- 'partitionNumber', 'launchTemplatePlacementRequest_partitionNumber' - The number of the partition the instance should launch in. Valid only if
-- the placement group strategy is set to @partition@.
--
-- 'spreadDomain', 'launchTemplatePlacementRequest_spreadDomain' - Reserved for future use.
--
-- 'tenancy', 'launchTemplatePlacementRequest_tenancy' - The tenancy of the instance (if the instance is running in a VPC). An
-- instance with a tenancy of dedicated runs on single-tenant hardware.
newLaunchTemplatePlacementRequest ::
  LaunchTemplatePlacementRequest
newLaunchTemplatePlacementRequest :: LaunchTemplatePlacementRequest
newLaunchTemplatePlacementRequest =
  LaunchTemplatePlacementRequest'
    { $sel:affinity:LaunchTemplatePlacementRequest' :: Maybe Text
affinity =
        forall a. Maybe a
Prelude.Nothing,
      $sel:availabilityZone:LaunchTemplatePlacementRequest' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
      $sel:groupId:LaunchTemplatePlacementRequest' :: Maybe Text
groupId = forall a. Maybe a
Prelude.Nothing,
      $sel:groupName:LaunchTemplatePlacementRequest' :: Maybe Text
groupName = forall a. Maybe a
Prelude.Nothing,
      $sel:hostId:LaunchTemplatePlacementRequest' :: Maybe Text
hostId = forall a. Maybe a
Prelude.Nothing,
      $sel:hostResourceGroupArn:LaunchTemplatePlacementRequest' :: Maybe Text
hostResourceGroupArn = forall a. Maybe a
Prelude.Nothing,
      $sel:partitionNumber:LaunchTemplatePlacementRequest' :: Maybe Int
partitionNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:spreadDomain:LaunchTemplatePlacementRequest' :: Maybe Text
spreadDomain = forall a. Maybe a
Prelude.Nothing,
      $sel:tenancy:LaunchTemplatePlacementRequest' :: Maybe Tenancy
tenancy = forall a. Maybe a
Prelude.Nothing
    }

-- | The affinity setting for an instance on a Dedicated Host.
launchTemplatePlacementRequest_affinity :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_affinity :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_affinity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
affinity :: Maybe Text
$sel:affinity:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
affinity} -> Maybe Text
affinity) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:affinity:LaunchTemplatePlacementRequest' :: Maybe Text
affinity = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The Availability Zone for the instance.
launchTemplatePlacementRequest_availabilityZone :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_availabilityZone :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:availabilityZone:LaunchTemplatePlacementRequest' :: Maybe Text
availabilityZone = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The Group Id of a placement group. You must specify the Placement Group
-- __Group Id__ to launch an instance in a shared placement group.
launchTemplatePlacementRequest_groupId :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_groupId :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_groupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
groupId :: Maybe Text
$sel:groupId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
groupId} -> Maybe Text
groupId) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:groupId:LaunchTemplatePlacementRequest' :: Maybe Text
groupId = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The name of the placement group for the instance.
launchTemplatePlacementRequest_groupName :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_groupName :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_groupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
groupName :: Maybe Text
$sel:groupName:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
groupName} -> Maybe Text
groupName) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:groupName:LaunchTemplatePlacementRequest' :: Maybe Text
groupName = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The ID of the Dedicated Host for the instance.
launchTemplatePlacementRequest_hostId :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_hostId :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_hostId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
hostId :: Maybe Text
$sel:hostId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
hostId} -> Maybe Text
hostId) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:hostId:LaunchTemplatePlacementRequest' :: Maybe Text
hostId = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The ARN of the host resource group in which to launch the instances. If
-- you specify a host resource group ARN, omit the __Tenancy__ parameter or
-- set it to @host@.
launchTemplatePlacementRequest_hostResourceGroupArn :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_hostResourceGroupArn :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_hostResourceGroupArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
hostResourceGroupArn :: Maybe Text
$sel:hostResourceGroupArn:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
hostResourceGroupArn} -> Maybe Text
hostResourceGroupArn) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:hostResourceGroupArn:LaunchTemplatePlacementRequest' :: Maybe Text
hostResourceGroupArn = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The number of the partition the instance should launch in. Valid only if
-- the placement group strategy is set to @partition@.
launchTemplatePlacementRequest_partitionNumber :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Int)
launchTemplatePlacementRequest_partitionNumber :: Lens' LaunchTemplatePlacementRequest (Maybe Int)
launchTemplatePlacementRequest_partitionNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Int
partitionNumber :: Maybe Int
$sel:partitionNumber:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Int
partitionNumber} -> Maybe Int
partitionNumber) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Int
a -> LaunchTemplatePlacementRequest
s {$sel:partitionNumber:LaunchTemplatePlacementRequest' :: Maybe Int
partitionNumber = Maybe Int
a} :: LaunchTemplatePlacementRequest)

-- | Reserved for future use.
launchTemplatePlacementRequest_spreadDomain :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Prelude.Text)
launchTemplatePlacementRequest_spreadDomain :: Lens' LaunchTemplatePlacementRequest (Maybe Text)
launchTemplatePlacementRequest_spreadDomain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Text
spreadDomain :: Maybe Text
$sel:spreadDomain:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
spreadDomain} -> Maybe Text
spreadDomain) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Text
a -> LaunchTemplatePlacementRequest
s {$sel:spreadDomain:LaunchTemplatePlacementRequest' :: Maybe Text
spreadDomain = Maybe Text
a} :: LaunchTemplatePlacementRequest)

-- | The tenancy of the instance (if the instance is running in a VPC). An
-- instance with a tenancy of dedicated runs on single-tenant hardware.
launchTemplatePlacementRequest_tenancy :: Lens.Lens' LaunchTemplatePlacementRequest (Prelude.Maybe Tenancy)
launchTemplatePlacementRequest_tenancy :: Lens' LaunchTemplatePlacementRequest (Maybe Tenancy)
launchTemplatePlacementRequest_tenancy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LaunchTemplatePlacementRequest' {Maybe Tenancy
tenancy :: Maybe Tenancy
$sel:tenancy:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Tenancy
tenancy} -> Maybe Tenancy
tenancy) (\s :: LaunchTemplatePlacementRequest
s@LaunchTemplatePlacementRequest' {} Maybe Tenancy
a -> LaunchTemplatePlacementRequest
s {$sel:tenancy:LaunchTemplatePlacementRequest' :: Maybe Tenancy
tenancy = Maybe Tenancy
a} :: LaunchTemplatePlacementRequest)

instance
  Prelude.Hashable
    LaunchTemplatePlacementRequest
  where
  hashWithSalt :: Int -> LaunchTemplatePlacementRequest -> Int
hashWithSalt
    Int
_salt
    LaunchTemplatePlacementRequest' {Maybe Int
Maybe Text
Maybe Tenancy
tenancy :: Maybe Tenancy
spreadDomain :: Maybe Text
partitionNumber :: Maybe Int
hostResourceGroupArn :: Maybe Text
hostId :: Maybe Text
groupName :: Maybe Text
groupId :: Maybe Text
availabilityZone :: Maybe Text
affinity :: Maybe Text
$sel:tenancy:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Tenancy
$sel:spreadDomain:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:partitionNumber:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Int
$sel:hostResourceGroupArn:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:hostId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:groupName:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:groupId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:availabilityZone:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:affinity:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
affinity
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
availabilityZone
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
groupId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
groupName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
hostId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
hostResourceGroupArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
partitionNumber
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
spreadDomain
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Tenancy
tenancy

instance
  Prelude.NFData
    LaunchTemplatePlacementRequest
  where
  rnf :: LaunchTemplatePlacementRequest -> ()
rnf LaunchTemplatePlacementRequest' {Maybe Int
Maybe Text
Maybe Tenancy
tenancy :: Maybe Tenancy
spreadDomain :: Maybe Text
partitionNumber :: Maybe Int
hostResourceGroupArn :: Maybe Text
hostId :: Maybe Text
groupName :: Maybe Text
groupId :: Maybe Text
availabilityZone :: Maybe Text
affinity :: Maybe Text
$sel:tenancy:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Tenancy
$sel:spreadDomain:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:partitionNumber:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Int
$sel:hostResourceGroupArn:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:hostId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:groupName:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:groupId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:availabilityZone:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:affinity:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
affinity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
availabilityZone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
groupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
groupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
hostId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
hostResourceGroupArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
partitionNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
spreadDomain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Tenancy
tenancy

instance Data.ToQuery LaunchTemplatePlacementRequest where
  toQuery :: LaunchTemplatePlacementRequest -> QueryString
toQuery LaunchTemplatePlacementRequest' {Maybe Int
Maybe Text
Maybe Tenancy
tenancy :: Maybe Tenancy
spreadDomain :: Maybe Text
partitionNumber :: Maybe Int
hostResourceGroupArn :: Maybe Text
hostId :: Maybe Text
groupName :: Maybe Text
groupId :: Maybe Text
availabilityZone :: Maybe Text
affinity :: Maybe Text
$sel:tenancy:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Tenancy
$sel:spreadDomain:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:partitionNumber:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Int
$sel:hostResourceGroupArn:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:hostId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:groupName:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:groupId:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:availabilityZone:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
$sel:affinity:LaunchTemplatePlacementRequest' :: LaunchTemplatePlacementRequest -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Affinity" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
affinity,
        ByteString
"AvailabilityZone" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
availabilityZone,
        ByteString
"GroupId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
groupId,
        ByteString
"GroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
groupName,
        ByteString
"HostId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
hostId,
        ByteString
"HostResourceGroupArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
hostResourceGroupArn,
        ByteString
"PartitionNumber" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
partitionNumber,
        ByteString
"SpreadDomain" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
spreadDomain,
        ByteString
"Tenancy" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Tenancy
tenancy
      ]