{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# 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.EnableTransitGatewayRouteTablePropagation
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Enables the specified attachment to propagate routes to the specified
-- propagation route table.
module Amazonka.EC2.EnableTransitGatewayRouteTablePropagation
  ( -- * Creating a Request
    EnableTransitGatewayRouteTablePropagation (..),
    newEnableTransitGatewayRouteTablePropagation,

    -- * Request Lenses
    enableTransitGatewayRouteTablePropagation_dryRun,
    enableTransitGatewayRouteTablePropagation_transitGatewayAttachmentId,
    enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableAnnouncementId,
    enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableId,

    -- * Destructuring the Response
    EnableTransitGatewayRouteTablePropagationResponse (..),
    newEnableTransitGatewayRouteTablePropagationResponse,

    -- * Response Lenses
    enableTransitGatewayRouteTablePropagationResponse_propagation,
    enableTransitGatewayRouteTablePropagationResponse_httpStatus,
  )
where

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

-- | /See:/ 'newEnableTransitGatewayRouteTablePropagation' smart constructor.
data EnableTransitGatewayRouteTablePropagation = EnableTransitGatewayRouteTablePropagation'
  { -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    EnableTransitGatewayRouteTablePropagation -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the attachment.
    EnableTransitGatewayRouteTablePropagation -> Maybe Text
transitGatewayAttachmentId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the transit gateway route table announcement.
    EnableTransitGatewayRouteTablePropagation -> Maybe Text
transitGatewayRouteTableAnnouncementId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the propagation route table.
    EnableTransitGatewayRouteTablePropagation -> Text
transitGatewayRouteTableId :: Prelude.Text
  }
  deriving (EnableTransitGatewayRouteTablePropagation
-> EnableTransitGatewayRouteTablePropagation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnableTransitGatewayRouteTablePropagation
-> EnableTransitGatewayRouteTablePropagation -> Bool
$c/= :: EnableTransitGatewayRouteTablePropagation
-> EnableTransitGatewayRouteTablePropagation -> Bool
== :: EnableTransitGatewayRouteTablePropagation
-> EnableTransitGatewayRouteTablePropagation -> Bool
$c== :: EnableTransitGatewayRouteTablePropagation
-> EnableTransitGatewayRouteTablePropagation -> Bool
Prelude.Eq, ReadPrec [EnableTransitGatewayRouteTablePropagation]
ReadPrec EnableTransitGatewayRouteTablePropagation
Int -> ReadS EnableTransitGatewayRouteTablePropagation
ReadS [EnableTransitGatewayRouteTablePropagation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EnableTransitGatewayRouteTablePropagation]
$creadListPrec :: ReadPrec [EnableTransitGatewayRouteTablePropagation]
readPrec :: ReadPrec EnableTransitGatewayRouteTablePropagation
$creadPrec :: ReadPrec EnableTransitGatewayRouteTablePropagation
readList :: ReadS [EnableTransitGatewayRouteTablePropagation]
$creadList :: ReadS [EnableTransitGatewayRouteTablePropagation]
readsPrec :: Int -> ReadS EnableTransitGatewayRouteTablePropagation
$creadsPrec :: Int -> ReadS EnableTransitGatewayRouteTablePropagation
Prelude.Read, Int -> EnableTransitGatewayRouteTablePropagation -> ShowS
[EnableTransitGatewayRouteTablePropagation] -> ShowS
EnableTransitGatewayRouteTablePropagation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EnableTransitGatewayRouteTablePropagation] -> ShowS
$cshowList :: [EnableTransitGatewayRouteTablePropagation] -> ShowS
show :: EnableTransitGatewayRouteTablePropagation -> String
$cshow :: EnableTransitGatewayRouteTablePropagation -> String
showsPrec :: Int -> EnableTransitGatewayRouteTablePropagation -> ShowS
$cshowsPrec :: Int -> EnableTransitGatewayRouteTablePropagation -> ShowS
Prelude.Show, forall x.
Rep EnableTransitGatewayRouteTablePropagation x
-> EnableTransitGatewayRouteTablePropagation
forall x.
EnableTransitGatewayRouteTablePropagation
-> Rep EnableTransitGatewayRouteTablePropagation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EnableTransitGatewayRouteTablePropagation x
-> EnableTransitGatewayRouteTablePropagation
$cfrom :: forall x.
EnableTransitGatewayRouteTablePropagation
-> Rep EnableTransitGatewayRouteTablePropagation x
Prelude.Generic)

-- |
-- Create a value of 'EnableTransitGatewayRouteTablePropagation' 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:
--
-- 'dryRun', 'enableTransitGatewayRouteTablePropagation_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 'transitGatewayAttachmentId', 'enableTransitGatewayRouteTablePropagation_transitGatewayAttachmentId' - The ID of the attachment.
--
-- 'transitGatewayRouteTableAnnouncementId', 'enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableAnnouncementId' - The ID of the transit gateway route table announcement.
--
-- 'transitGatewayRouteTableId', 'enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableId' - The ID of the propagation route table.
newEnableTransitGatewayRouteTablePropagation ::
  -- | 'transitGatewayRouteTableId'
  Prelude.Text ->
  EnableTransitGatewayRouteTablePropagation
newEnableTransitGatewayRouteTablePropagation :: Text -> EnableTransitGatewayRouteTablePropagation
newEnableTransitGatewayRouteTablePropagation
  Text
pTransitGatewayRouteTableId_ =
    EnableTransitGatewayRouteTablePropagation'
      { $sel:dryRun:EnableTransitGatewayRouteTablePropagation' :: Maybe Bool
dryRun =
          forall a. Maybe a
Prelude.Nothing,
        $sel:transitGatewayAttachmentId:EnableTransitGatewayRouteTablePropagation' :: Maybe Text
transitGatewayAttachmentId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:transitGatewayRouteTableAnnouncementId:EnableTransitGatewayRouteTablePropagation' :: Maybe Text
transitGatewayRouteTableAnnouncementId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:transitGatewayRouteTableId:EnableTransitGatewayRouteTablePropagation' :: Text
transitGatewayRouteTableId =
          Text
pTransitGatewayRouteTableId_
      }

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
enableTransitGatewayRouteTablePropagation_dryRun :: Lens.Lens' EnableTransitGatewayRouteTablePropagation (Prelude.Maybe Prelude.Bool)
enableTransitGatewayRouteTablePropagation_dryRun :: Lens' EnableTransitGatewayRouteTablePropagation (Maybe Bool)
enableTransitGatewayRouteTablePropagation_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableTransitGatewayRouteTablePropagation' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: EnableTransitGatewayRouteTablePropagation
s@EnableTransitGatewayRouteTablePropagation' {} Maybe Bool
a -> EnableTransitGatewayRouteTablePropagation
s {$sel:dryRun:EnableTransitGatewayRouteTablePropagation' :: Maybe Bool
dryRun = Maybe Bool
a} :: EnableTransitGatewayRouteTablePropagation)

-- | The ID of the attachment.
enableTransitGatewayRouteTablePropagation_transitGatewayAttachmentId :: Lens.Lens' EnableTransitGatewayRouteTablePropagation (Prelude.Maybe Prelude.Text)
enableTransitGatewayRouteTablePropagation_transitGatewayAttachmentId :: Lens' EnableTransitGatewayRouteTablePropagation (Maybe Text)
enableTransitGatewayRouteTablePropagation_transitGatewayAttachmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableTransitGatewayRouteTablePropagation' {Maybe Text
transitGatewayAttachmentId :: Maybe Text
$sel:transitGatewayAttachmentId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
transitGatewayAttachmentId} -> Maybe Text
transitGatewayAttachmentId) (\s :: EnableTransitGatewayRouteTablePropagation
s@EnableTransitGatewayRouteTablePropagation' {} Maybe Text
a -> EnableTransitGatewayRouteTablePropagation
s {$sel:transitGatewayAttachmentId:EnableTransitGatewayRouteTablePropagation' :: Maybe Text
transitGatewayAttachmentId = Maybe Text
a} :: EnableTransitGatewayRouteTablePropagation)

-- | The ID of the transit gateway route table announcement.
enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableAnnouncementId :: Lens.Lens' EnableTransitGatewayRouteTablePropagation (Prelude.Maybe Prelude.Text)
enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableAnnouncementId :: Lens' EnableTransitGatewayRouteTablePropagation (Maybe Text)
enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableAnnouncementId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableTransitGatewayRouteTablePropagation' {Maybe Text
transitGatewayRouteTableAnnouncementId :: Maybe Text
$sel:transitGatewayRouteTableAnnouncementId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
transitGatewayRouteTableAnnouncementId} -> Maybe Text
transitGatewayRouteTableAnnouncementId) (\s :: EnableTransitGatewayRouteTablePropagation
s@EnableTransitGatewayRouteTablePropagation' {} Maybe Text
a -> EnableTransitGatewayRouteTablePropagation
s {$sel:transitGatewayRouteTableAnnouncementId:EnableTransitGatewayRouteTablePropagation' :: Maybe Text
transitGatewayRouteTableAnnouncementId = Maybe Text
a} :: EnableTransitGatewayRouteTablePropagation)

-- | The ID of the propagation route table.
enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableId :: Lens.Lens' EnableTransitGatewayRouteTablePropagation Prelude.Text
enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableId :: Lens' EnableTransitGatewayRouteTablePropagation Text
enableTransitGatewayRouteTablePropagation_transitGatewayRouteTableId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableTransitGatewayRouteTablePropagation' {Text
transitGatewayRouteTableId :: Text
$sel:transitGatewayRouteTableId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Text
transitGatewayRouteTableId} -> Text
transitGatewayRouteTableId) (\s :: EnableTransitGatewayRouteTablePropagation
s@EnableTransitGatewayRouteTablePropagation' {} Text
a -> EnableTransitGatewayRouteTablePropagation
s {$sel:transitGatewayRouteTableId:EnableTransitGatewayRouteTablePropagation' :: Text
transitGatewayRouteTableId = Text
a} :: EnableTransitGatewayRouteTablePropagation)

instance
  Core.AWSRequest
    EnableTransitGatewayRouteTablePropagation
  where
  type
    AWSResponse
      EnableTransitGatewayRouteTablePropagation =
      EnableTransitGatewayRouteTablePropagationResponse
  request :: (Service -> Service)
-> EnableTransitGatewayRouteTablePropagation
-> Request EnableTransitGatewayRouteTablePropagation
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy EnableTransitGatewayRouteTablePropagation
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse EnableTransitGatewayRouteTablePropagation)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe TransitGatewayPropagation
-> Int -> EnableTransitGatewayRouteTablePropagationResponse
EnableTransitGatewayRouteTablePropagationResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"propagation")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    EnableTransitGatewayRouteTablePropagation
  where
  hashWithSalt :: Int -> EnableTransitGatewayRouteTablePropagation -> Int
hashWithSalt
    Int
_salt
    EnableTransitGatewayRouteTablePropagation' {Maybe Bool
Maybe Text
Text
transitGatewayRouteTableId :: Text
transitGatewayRouteTableAnnouncementId :: Maybe Text
transitGatewayAttachmentId :: Maybe Text
dryRun :: Maybe Bool
$sel:transitGatewayRouteTableId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Text
$sel:transitGatewayRouteTableAnnouncementId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
$sel:transitGatewayAttachmentId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
$sel:dryRun:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Bool
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayAttachmentId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transitGatewayRouteTableAnnouncementId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
transitGatewayRouteTableId

instance
  Prelude.NFData
    EnableTransitGatewayRouteTablePropagation
  where
  rnf :: EnableTransitGatewayRouteTablePropagation -> ()
rnf EnableTransitGatewayRouteTablePropagation' {Maybe Bool
Maybe Text
Text
transitGatewayRouteTableId :: Text
transitGatewayRouteTableAnnouncementId :: Maybe Text
transitGatewayAttachmentId :: Maybe Text
dryRun :: Maybe Bool
$sel:transitGatewayRouteTableId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Text
$sel:transitGatewayRouteTableAnnouncementId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
$sel:transitGatewayAttachmentId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
$sel:dryRun:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transitGatewayAttachmentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transitGatewayRouteTableAnnouncementId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
transitGatewayRouteTableId

instance
  Data.ToHeaders
    EnableTransitGatewayRouteTablePropagation
  where
  toHeaders :: EnableTransitGatewayRouteTablePropagation -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance
  Data.ToPath
    EnableTransitGatewayRouteTablePropagation
  where
  toPath :: EnableTransitGatewayRouteTablePropagation -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance
  Data.ToQuery
    EnableTransitGatewayRouteTablePropagation
  where
  toQuery :: EnableTransitGatewayRouteTablePropagation -> QueryString
toQuery
    EnableTransitGatewayRouteTablePropagation' {Maybe Bool
Maybe Text
Text
transitGatewayRouteTableId :: Text
transitGatewayRouteTableAnnouncementId :: Maybe Text
transitGatewayAttachmentId :: Maybe Text
dryRun :: Maybe Bool
$sel:transitGatewayRouteTableId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Text
$sel:transitGatewayRouteTableAnnouncementId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
$sel:transitGatewayAttachmentId:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Text
$sel:dryRun:EnableTransitGatewayRouteTablePropagation' :: EnableTransitGatewayRouteTablePropagation -> Maybe Bool
..} =
      forall a. Monoid a => [a] -> a
Prelude.mconcat
        [ ByteString
"Action"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"EnableTransitGatewayRouteTablePropagation" ::
                        Prelude.ByteString
                    ),
          ByteString
"Version"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
          ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
          ByteString
"TransitGatewayAttachmentId"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
transitGatewayAttachmentId,
          ByteString
"TransitGatewayRouteTableAnnouncementId"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
transitGatewayRouteTableAnnouncementId,
          ByteString
"TransitGatewayRouteTableId"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
transitGatewayRouteTableId
        ]

-- | /See:/ 'newEnableTransitGatewayRouteTablePropagationResponse' smart constructor.
data EnableTransitGatewayRouteTablePropagationResponse = EnableTransitGatewayRouteTablePropagationResponse'
  { -- | Information about route propagation.
    EnableTransitGatewayRouteTablePropagationResponse
-> Maybe TransitGatewayPropagation
propagation :: Prelude.Maybe TransitGatewayPropagation,
    -- | The response's http status code.
    EnableTransitGatewayRouteTablePropagationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (EnableTransitGatewayRouteTablePropagationResponse
-> EnableTransitGatewayRouteTablePropagationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnableTransitGatewayRouteTablePropagationResponse
-> EnableTransitGatewayRouteTablePropagationResponse -> Bool
$c/= :: EnableTransitGatewayRouteTablePropagationResponse
-> EnableTransitGatewayRouteTablePropagationResponse -> Bool
== :: EnableTransitGatewayRouteTablePropagationResponse
-> EnableTransitGatewayRouteTablePropagationResponse -> Bool
$c== :: EnableTransitGatewayRouteTablePropagationResponse
-> EnableTransitGatewayRouteTablePropagationResponse -> Bool
Prelude.Eq, ReadPrec [EnableTransitGatewayRouteTablePropagationResponse]
ReadPrec EnableTransitGatewayRouteTablePropagationResponse
Int -> ReadS EnableTransitGatewayRouteTablePropagationResponse
ReadS [EnableTransitGatewayRouteTablePropagationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EnableTransitGatewayRouteTablePropagationResponse]
$creadListPrec :: ReadPrec [EnableTransitGatewayRouteTablePropagationResponse]
readPrec :: ReadPrec EnableTransitGatewayRouteTablePropagationResponse
$creadPrec :: ReadPrec EnableTransitGatewayRouteTablePropagationResponse
readList :: ReadS [EnableTransitGatewayRouteTablePropagationResponse]
$creadList :: ReadS [EnableTransitGatewayRouteTablePropagationResponse]
readsPrec :: Int -> ReadS EnableTransitGatewayRouteTablePropagationResponse
$creadsPrec :: Int -> ReadS EnableTransitGatewayRouteTablePropagationResponse
Prelude.Read, Int -> EnableTransitGatewayRouteTablePropagationResponse -> ShowS
[EnableTransitGatewayRouteTablePropagationResponse] -> ShowS
EnableTransitGatewayRouteTablePropagationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EnableTransitGatewayRouteTablePropagationResponse] -> ShowS
$cshowList :: [EnableTransitGatewayRouteTablePropagationResponse] -> ShowS
show :: EnableTransitGatewayRouteTablePropagationResponse -> String
$cshow :: EnableTransitGatewayRouteTablePropagationResponse -> String
showsPrec :: Int -> EnableTransitGatewayRouteTablePropagationResponse -> ShowS
$cshowsPrec :: Int -> EnableTransitGatewayRouteTablePropagationResponse -> ShowS
Prelude.Show, forall x.
Rep EnableTransitGatewayRouteTablePropagationResponse x
-> EnableTransitGatewayRouteTablePropagationResponse
forall x.
EnableTransitGatewayRouteTablePropagationResponse
-> Rep EnableTransitGatewayRouteTablePropagationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EnableTransitGatewayRouteTablePropagationResponse x
-> EnableTransitGatewayRouteTablePropagationResponse
$cfrom :: forall x.
EnableTransitGatewayRouteTablePropagationResponse
-> Rep EnableTransitGatewayRouteTablePropagationResponse x
Prelude.Generic)

-- |
-- Create a value of 'EnableTransitGatewayRouteTablePropagationResponse' 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:
--
-- 'propagation', 'enableTransitGatewayRouteTablePropagationResponse_propagation' - Information about route propagation.
--
-- 'httpStatus', 'enableTransitGatewayRouteTablePropagationResponse_httpStatus' - The response's http status code.
newEnableTransitGatewayRouteTablePropagationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  EnableTransitGatewayRouteTablePropagationResponse
newEnableTransitGatewayRouteTablePropagationResponse :: Int -> EnableTransitGatewayRouteTablePropagationResponse
newEnableTransitGatewayRouteTablePropagationResponse
  Int
pHttpStatus_ =
    EnableTransitGatewayRouteTablePropagationResponse'
      { $sel:propagation:EnableTransitGatewayRouteTablePropagationResponse' :: Maybe TransitGatewayPropagation
propagation =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:EnableTransitGatewayRouteTablePropagationResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | Information about route propagation.
enableTransitGatewayRouteTablePropagationResponse_propagation :: Lens.Lens' EnableTransitGatewayRouteTablePropagationResponse (Prelude.Maybe TransitGatewayPropagation)
enableTransitGatewayRouteTablePropagationResponse_propagation :: Lens'
  EnableTransitGatewayRouteTablePropagationResponse
  (Maybe TransitGatewayPropagation)
enableTransitGatewayRouteTablePropagationResponse_propagation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableTransitGatewayRouteTablePropagationResponse' {Maybe TransitGatewayPropagation
propagation :: Maybe TransitGatewayPropagation
$sel:propagation:EnableTransitGatewayRouteTablePropagationResponse' :: EnableTransitGatewayRouteTablePropagationResponse
-> Maybe TransitGatewayPropagation
propagation} -> Maybe TransitGatewayPropagation
propagation) (\s :: EnableTransitGatewayRouteTablePropagationResponse
s@EnableTransitGatewayRouteTablePropagationResponse' {} Maybe TransitGatewayPropagation
a -> EnableTransitGatewayRouteTablePropagationResponse
s {$sel:propagation:EnableTransitGatewayRouteTablePropagationResponse' :: Maybe TransitGatewayPropagation
propagation = Maybe TransitGatewayPropagation
a} :: EnableTransitGatewayRouteTablePropagationResponse)

-- | The response's http status code.
enableTransitGatewayRouteTablePropagationResponse_httpStatus :: Lens.Lens' EnableTransitGatewayRouteTablePropagationResponse Prelude.Int
enableTransitGatewayRouteTablePropagationResponse_httpStatus :: Lens' EnableTransitGatewayRouteTablePropagationResponse Int
enableTransitGatewayRouteTablePropagationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableTransitGatewayRouteTablePropagationResponse' {Int
httpStatus :: Int
$sel:httpStatus:EnableTransitGatewayRouteTablePropagationResponse' :: EnableTransitGatewayRouteTablePropagationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: EnableTransitGatewayRouteTablePropagationResponse
s@EnableTransitGatewayRouteTablePropagationResponse' {} Int
a -> EnableTransitGatewayRouteTablePropagationResponse
s {$sel:httpStatus:EnableTransitGatewayRouteTablePropagationResponse' :: Int
httpStatus = Int
a} :: EnableTransitGatewayRouteTablePropagationResponse)

instance
  Prelude.NFData
    EnableTransitGatewayRouteTablePropagationResponse
  where
  rnf :: EnableTransitGatewayRouteTablePropagationResponse -> ()
rnf
    EnableTransitGatewayRouteTablePropagationResponse' {Int
Maybe TransitGatewayPropagation
httpStatus :: Int
propagation :: Maybe TransitGatewayPropagation
$sel:httpStatus:EnableTransitGatewayRouteTablePropagationResponse' :: EnableTransitGatewayRouteTablePropagationResponse -> Int
$sel:propagation:EnableTransitGatewayRouteTablePropagationResponse' :: EnableTransitGatewayRouteTablePropagationResponse
-> Maybe TransitGatewayPropagation
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe TransitGatewayPropagation
propagation
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus