{-# 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.DirectConnect.AcceptDirectConnectGatewayAssociationProposal
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Accepts a proposal request to attach a virtual private gateway or
-- transit gateway to a Direct Connect gateway.
module Amazonka.DirectConnect.AcceptDirectConnectGatewayAssociationProposal
  ( -- * Creating a Request
    AcceptDirectConnectGatewayAssociationProposal (..),
    newAcceptDirectConnectGatewayAssociationProposal,

    -- * Request Lenses
    acceptDirectConnectGatewayAssociationProposal_overrideAllowedPrefixesToDirectConnectGateway,
    acceptDirectConnectGatewayAssociationProposal_directConnectGatewayId,
    acceptDirectConnectGatewayAssociationProposal_proposalId,
    acceptDirectConnectGatewayAssociationProposal_associatedGatewayOwnerAccount,

    -- * Destructuring the Response
    AcceptDirectConnectGatewayAssociationProposalResponse (..),
    newAcceptDirectConnectGatewayAssociationProposalResponse,

    -- * Response Lenses
    acceptDirectConnectGatewayAssociationProposalResponse_directConnectGatewayAssociation,
    acceptDirectConnectGatewayAssociationProposalResponse_httpStatus,
  )
where

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

-- | /See:/ 'newAcceptDirectConnectGatewayAssociationProposal' smart constructor.
data AcceptDirectConnectGatewayAssociationProposal = AcceptDirectConnectGatewayAssociationProposal'
  { -- | Overrides the Amazon VPC prefixes advertised to the Direct Connect
    -- gateway.
    --
    -- For information about how to set the prefixes, see
    -- <https://docs.aws.amazon.com/directconnect/latest/UserGuide/multi-account-associate-vgw.html#allowed-prefixes Allowed Prefixes>
    -- in the /Direct Connect User Guide/.
    AcceptDirectConnectGatewayAssociationProposal
-> Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway :: Prelude.Maybe [RouteFilterPrefix],
    -- | The ID of the Direct Connect gateway.
    AcceptDirectConnectGatewayAssociationProposal -> Text
directConnectGatewayId :: Prelude.Text,
    -- | The ID of the request proposal.
    AcceptDirectConnectGatewayAssociationProposal -> Text
proposalId :: Prelude.Text,
    -- | The ID of the Amazon Web Services account that owns the virtual private
    -- gateway or transit gateway.
    AcceptDirectConnectGatewayAssociationProposal -> Text
associatedGatewayOwnerAccount :: Prelude.Text
  }
  deriving (AcceptDirectConnectGatewayAssociationProposal
-> AcceptDirectConnectGatewayAssociationProposal -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AcceptDirectConnectGatewayAssociationProposal
-> AcceptDirectConnectGatewayAssociationProposal -> Bool
$c/= :: AcceptDirectConnectGatewayAssociationProposal
-> AcceptDirectConnectGatewayAssociationProposal -> Bool
== :: AcceptDirectConnectGatewayAssociationProposal
-> AcceptDirectConnectGatewayAssociationProposal -> Bool
$c== :: AcceptDirectConnectGatewayAssociationProposal
-> AcceptDirectConnectGatewayAssociationProposal -> Bool
Prelude.Eq, ReadPrec [AcceptDirectConnectGatewayAssociationProposal]
ReadPrec AcceptDirectConnectGatewayAssociationProposal
Int -> ReadS AcceptDirectConnectGatewayAssociationProposal
ReadS [AcceptDirectConnectGatewayAssociationProposal]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AcceptDirectConnectGatewayAssociationProposal]
$creadListPrec :: ReadPrec [AcceptDirectConnectGatewayAssociationProposal]
readPrec :: ReadPrec AcceptDirectConnectGatewayAssociationProposal
$creadPrec :: ReadPrec AcceptDirectConnectGatewayAssociationProposal
readList :: ReadS [AcceptDirectConnectGatewayAssociationProposal]
$creadList :: ReadS [AcceptDirectConnectGatewayAssociationProposal]
readsPrec :: Int -> ReadS AcceptDirectConnectGatewayAssociationProposal
$creadsPrec :: Int -> ReadS AcceptDirectConnectGatewayAssociationProposal
Prelude.Read, Int -> AcceptDirectConnectGatewayAssociationProposal -> ShowS
[AcceptDirectConnectGatewayAssociationProposal] -> ShowS
AcceptDirectConnectGatewayAssociationProposal -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AcceptDirectConnectGatewayAssociationProposal] -> ShowS
$cshowList :: [AcceptDirectConnectGatewayAssociationProposal] -> ShowS
show :: AcceptDirectConnectGatewayAssociationProposal -> String
$cshow :: AcceptDirectConnectGatewayAssociationProposal -> String
showsPrec :: Int -> AcceptDirectConnectGatewayAssociationProposal -> ShowS
$cshowsPrec :: Int -> AcceptDirectConnectGatewayAssociationProposal -> ShowS
Prelude.Show, forall x.
Rep AcceptDirectConnectGatewayAssociationProposal x
-> AcceptDirectConnectGatewayAssociationProposal
forall x.
AcceptDirectConnectGatewayAssociationProposal
-> Rep AcceptDirectConnectGatewayAssociationProposal x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AcceptDirectConnectGatewayAssociationProposal x
-> AcceptDirectConnectGatewayAssociationProposal
$cfrom :: forall x.
AcceptDirectConnectGatewayAssociationProposal
-> Rep AcceptDirectConnectGatewayAssociationProposal x
Prelude.Generic)

-- |
-- Create a value of 'AcceptDirectConnectGatewayAssociationProposal' 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:
--
-- 'overrideAllowedPrefixesToDirectConnectGateway', 'acceptDirectConnectGatewayAssociationProposal_overrideAllowedPrefixesToDirectConnectGateway' - Overrides the Amazon VPC prefixes advertised to the Direct Connect
-- gateway.
--
-- For information about how to set the prefixes, see
-- <https://docs.aws.amazon.com/directconnect/latest/UserGuide/multi-account-associate-vgw.html#allowed-prefixes Allowed Prefixes>
-- in the /Direct Connect User Guide/.
--
-- 'directConnectGatewayId', 'acceptDirectConnectGatewayAssociationProposal_directConnectGatewayId' - The ID of the Direct Connect gateway.
--
-- 'proposalId', 'acceptDirectConnectGatewayAssociationProposal_proposalId' - The ID of the request proposal.
--
-- 'associatedGatewayOwnerAccount', 'acceptDirectConnectGatewayAssociationProposal_associatedGatewayOwnerAccount' - The ID of the Amazon Web Services account that owns the virtual private
-- gateway or transit gateway.
newAcceptDirectConnectGatewayAssociationProposal ::
  -- | 'directConnectGatewayId'
  Prelude.Text ->
  -- | 'proposalId'
  Prelude.Text ->
  -- | 'associatedGatewayOwnerAccount'
  Prelude.Text ->
  AcceptDirectConnectGatewayAssociationProposal
newAcceptDirectConnectGatewayAssociationProposal :: Text
-> Text -> Text -> AcceptDirectConnectGatewayAssociationProposal
newAcceptDirectConnectGatewayAssociationProposal
  Text
pDirectConnectGatewayId_
  Text
pProposalId_
  Text
pAssociatedGatewayOwnerAccount_ =
    AcceptDirectConnectGatewayAssociationProposal'
      { $sel:overrideAllowedPrefixesToDirectConnectGateway:AcceptDirectConnectGatewayAssociationProposal' :: Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway =
          forall a. Maybe a
Prelude.Nothing,
        $sel:directConnectGatewayId:AcceptDirectConnectGatewayAssociationProposal' :: Text
directConnectGatewayId =
          Text
pDirectConnectGatewayId_,
        $sel:proposalId:AcceptDirectConnectGatewayAssociationProposal' :: Text
proposalId = Text
pProposalId_,
        $sel:associatedGatewayOwnerAccount:AcceptDirectConnectGatewayAssociationProposal' :: Text
associatedGatewayOwnerAccount =
          Text
pAssociatedGatewayOwnerAccount_
      }

-- | Overrides the Amazon VPC prefixes advertised to the Direct Connect
-- gateway.
--
-- For information about how to set the prefixes, see
-- <https://docs.aws.amazon.com/directconnect/latest/UserGuide/multi-account-associate-vgw.html#allowed-prefixes Allowed Prefixes>
-- in the /Direct Connect User Guide/.
acceptDirectConnectGatewayAssociationProposal_overrideAllowedPrefixesToDirectConnectGateway :: Lens.Lens' AcceptDirectConnectGatewayAssociationProposal (Prelude.Maybe [RouteFilterPrefix])
acceptDirectConnectGatewayAssociationProposal_overrideAllowedPrefixesToDirectConnectGateway :: Lens'
  AcceptDirectConnectGatewayAssociationProposal
  (Maybe [RouteFilterPrefix])
acceptDirectConnectGatewayAssociationProposal_overrideAllowedPrefixesToDirectConnectGateway = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AcceptDirectConnectGatewayAssociationProposal' {Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway :: Maybe [RouteFilterPrefix]
$sel:overrideAllowedPrefixesToDirectConnectGateway:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal
-> Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway} -> Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway) (\s :: AcceptDirectConnectGatewayAssociationProposal
s@AcceptDirectConnectGatewayAssociationProposal' {} Maybe [RouteFilterPrefix]
a -> AcceptDirectConnectGatewayAssociationProposal
s {$sel:overrideAllowedPrefixesToDirectConnectGateway:AcceptDirectConnectGatewayAssociationProposal' :: Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway = Maybe [RouteFilterPrefix]
a} :: AcceptDirectConnectGatewayAssociationProposal) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The ID of the Direct Connect gateway.
acceptDirectConnectGatewayAssociationProposal_directConnectGatewayId :: Lens.Lens' AcceptDirectConnectGatewayAssociationProposal Prelude.Text
acceptDirectConnectGatewayAssociationProposal_directConnectGatewayId :: Lens' AcceptDirectConnectGatewayAssociationProposal Text
acceptDirectConnectGatewayAssociationProposal_directConnectGatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AcceptDirectConnectGatewayAssociationProposal' {Text
directConnectGatewayId :: Text
$sel:directConnectGatewayId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
directConnectGatewayId} -> Text
directConnectGatewayId) (\s :: AcceptDirectConnectGatewayAssociationProposal
s@AcceptDirectConnectGatewayAssociationProposal' {} Text
a -> AcceptDirectConnectGatewayAssociationProposal
s {$sel:directConnectGatewayId:AcceptDirectConnectGatewayAssociationProposal' :: Text
directConnectGatewayId = Text
a} :: AcceptDirectConnectGatewayAssociationProposal)

-- | The ID of the request proposal.
acceptDirectConnectGatewayAssociationProposal_proposalId :: Lens.Lens' AcceptDirectConnectGatewayAssociationProposal Prelude.Text
acceptDirectConnectGatewayAssociationProposal_proposalId :: Lens' AcceptDirectConnectGatewayAssociationProposal Text
acceptDirectConnectGatewayAssociationProposal_proposalId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AcceptDirectConnectGatewayAssociationProposal' {Text
proposalId :: Text
$sel:proposalId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
proposalId} -> Text
proposalId) (\s :: AcceptDirectConnectGatewayAssociationProposal
s@AcceptDirectConnectGatewayAssociationProposal' {} Text
a -> AcceptDirectConnectGatewayAssociationProposal
s {$sel:proposalId:AcceptDirectConnectGatewayAssociationProposal' :: Text
proposalId = Text
a} :: AcceptDirectConnectGatewayAssociationProposal)

-- | The ID of the Amazon Web Services account that owns the virtual private
-- gateway or transit gateway.
acceptDirectConnectGatewayAssociationProposal_associatedGatewayOwnerAccount :: Lens.Lens' AcceptDirectConnectGatewayAssociationProposal Prelude.Text
acceptDirectConnectGatewayAssociationProposal_associatedGatewayOwnerAccount :: Lens' AcceptDirectConnectGatewayAssociationProposal Text
acceptDirectConnectGatewayAssociationProposal_associatedGatewayOwnerAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AcceptDirectConnectGatewayAssociationProposal' {Text
associatedGatewayOwnerAccount :: Text
$sel:associatedGatewayOwnerAccount:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
associatedGatewayOwnerAccount} -> Text
associatedGatewayOwnerAccount) (\s :: AcceptDirectConnectGatewayAssociationProposal
s@AcceptDirectConnectGatewayAssociationProposal' {} Text
a -> AcceptDirectConnectGatewayAssociationProposal
s {$sel:associatedGatewayOwnerAccount:AcceptDirectConnectGatewayAssociationProposal' :: Text
associatedGatewayOwnerAccount = Text
a} :: AcceptDirectConnectGatewayAssociationProposal)

instance
  Core.AWSRequest
    AcceptDirectConnectGatewayAssociationProposal
  where
  type
    AWSResponse
      AcceptDirectConnectGatewayAssociationProposal =
      AcceptDirectConnectGatewayAssociationProposalResponse
  request :: (Service -> Service)
-> AcceptDirectConnectGatewayAssociationProposal
-> Request AcceptDirectConnectGatewayAssociationProposal
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy AcceptDirectConnectGatewayAssociationProposal
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse AcceptDirectConnectGatewayAssociationProposal)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe DirectConnectGatewayAssociation
-> Int -> AcceptDirectConnectGatewayAssociationProposalResponse
AcceptDirectConnectGatewayAssociationProposalResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"directConnectGatewayAssociation")
            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
    AcceptDirectConnectGatewayAssociationProposal
  where
  hashWithSalt :: Int -> AcceptDirectConnectGatewayAssociationProposal -> Int
hashWithSalt
    Int
_salt
    AcceptDirectConnectGatewayAssociationProposal' {Maybe [RouteFilterPrefix]
Text
associatedGatewayOwnerAccount :: Text
proposalId :: Text
directConnectGatewayId :: Text
overrideAllowedPrefixesToDirectConnectGateway :: Maybe [RouteFilterPrefix]
$sel:associatedGatewayOwnerAccount:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:proposalId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:directConnectGatewayId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:overrideAllowedPrefixesToDirectConnectGateway:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal
-> Maybe [RouteFilterPrefix]
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
directConnectGatewayId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
proposalId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
associatedGatewayOwnerAccount

instance
  Prelude.NFData
    AcceptDirectConnectGatewayAssociationProposal
  where
  rnf :: AcceptDirectConnectGatewayAssociationProposal -> ()
rnf
    AcceptDirectConnectGatewayAssociationProposal' {Maybe [RouteFilterPrefix]
Text
associatedGatewayOwnerAccount :: Text
proposalId :: Text
directConnectGatewayId :: Text
overrideAllowedPrefixesToDirectConnectGateway :: Maybe [RouteFilterPrefix]
$sel:associatedGatewayOwnerAccount:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:proposalId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:directConnectGatewayId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:overrideAllowedPrefixesToDirectConnectGateway:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal
-> Maybe [RouteFilterPrefix]
..} =
      forall a. NFData a => a -> ()
Prelude.rnf
        Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
directConnectGatewayId
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
proposalId
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
associatedGatewayOwnerAccount

instance
  Data.ToHeaders
    AcceptDirectConnectGatewayAssociationProposal
  where
  toHeaders :: AcceptDirectConnectGatewayAssociationProposal -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"OvertureService.AcceptDirectConnectGatewayAssociationProposal" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance
  Data.ToJSON
    AcceptDirectConnectGatewayAssociationProposal
  where
  toJSON :: AcceptDirectConnectGatewayAssociationProposal -> Value
toJSON
    AcceptDirectConnectGatewayAssociationProposal' {Maybe [RouteFilterPrefix]
Text
associatedGatewayOwnerAccount :: Text
proposalId :: Text
directConnectGatewayId :: Text
overrideAllowedPrefixesToDirectConnectGateway :: Maybe [RouteFilterPrefix]
$sel:associatedGatewayOwnerAccount:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:proposalId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:directConnectGatewayId:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal -> Text
$sel:overrideAllowedPrefixesToDirectConnectGateway:AcceptDirectConnectGatewayAssociationProposal' :: AcceptDirectConnectGatewayAssociationProposal
-> Maybe [RouteFilterPrefix]
..} =
      [Pair] -> Value
Data.object
        ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
            [ ( Key
"overrideAllowedPrefixesToDirectConnectGateway"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=
              )
                forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [RouteFilterPrefix]
overrideAllowedPrefixesToDirectConnectGateway,
              forall a. a -> Maybe a
Prelude.Just
                ( Key
"directConnectGatewayId"
                    forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
directConnectGatewayId
                ),
              forall a. a -> Maybe a
Prelude.Just (Key
"proposalId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
proposalId),
              forall a. a -> Maybe a
Prelude.Just
                ( Key
"associatedGatewayOwnerAccount"
                    forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
associatedGatewayOwnerAccount
                )
            ]
        )

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

instance
  Data.ToQuery
    AcceptDirectConnectGatewayAssociationProposal
  where
  toQuery :: AcceptDirectConnectGatewayAssociationProposal -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

-- |
-- Create a value of 'AcceptDirectConnectGatewayAssociationProposalResponse' 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:
--
-- 'directConnectGatewayAssociation', 'acceptDirectConnectGatewayAssociationProposalResponse_directConnectGatewayAssociation' - Undocumented member.
--
-- 'httpStatus', 'acceptDirectConnectGatewayAssociationProposalResponse_httpStatus' - The response's http status code.
newAcceptDirectConnectGatewayAssociationProposalResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  AcceptDirectConnectGatewayAssociationProposalResponse
newAcceptDirectConnectGatewayAssociationProposalResponse :: Int -> AcceptDirectConnectGatewayAssociationProposalResponse
newAcceptDirectConnectGatewayAssociationProposalResponse
  Int
pHttpStatus_ =
    AcceptDirectConnectGatewayAssociationProposalResponse'
      { $sel:directConnectGatewayAssociation:AcceptDirectConnectGatewayAssociationProposalResponse' :: Maybe DirectConnectGatewayAssociation
directConnectGatewayAssociation =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:AcceptDirectConnectGatewayAssociationProposalResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | Undocumented member.
acceptDirectConnectGatewayAssociationProposalResponse_directConnectGatewayAssociation :: Lens.Lens' AcceptDirectConnectGatewayAssociationProposalResponse (Prelude.Maybe DirectConnectGatewayAssociation)
acceptDirectConnectGatewayAssociationProposalResponse_directConnectGatewayAssociation :: Lens'
  AcceptDirectConnectGatewayAssociationProposalResponse
  (Maybe DirectConnectGatewayAssociation)
acceptDirectConnectGatewayAssociationProposalResponse_directConnectGatewayAssociation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AcceptDirectConnectGatewayAssociationProposalResponse' {Maybe DirectConnectGatewayAssociation
directConnectGatewayAssociation :: Maybe DirectConnectGatewayAssociation
$sel:directConnectGatewayAssociation:AcceptDirectConnectGatewayAssociationProposalResponse' :: AcceptDirectConnectGatewayAssociationProposalResponse
-> Maybe DirectConnectGatewayAssociation
directConnectGatewayAssociation} -> Maybe DirectConnectGatewayAssociation
directConnectGatewayAssociation) (\s :: AcceptDirectConnectGatewayAssociationProposalResponse
s@AcceptDirectConnectGatewayAssociationProposalResponse' {} Maybe DirectConnectGatewayAssociation
a -> AcceptDirectConnectGatewayAssociationProposalResponse
s {$sel:directConnectGatewayAssociation:AcceptDirectConnectGatewayAssociationProposalResponse' :: Maybe DirectConnectGatewayAssociation
directConnectGatewayAssociation = Maybe DirectConnectGatewayAssociation
a} :: AcceptDirectConnectGatewayAssociationProposalResponse)

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

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