amazonka-networkmanager-2.0: gen/Amazonka/NetworkManager/CreateTransitGatewayPeering.hs
{-# 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.NetworkManager.CreateTransitGatewayPeering
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a transit gateway peering connection.
module Amazonka.NetworkManager.CreateTransitGatewayPeering
( -- * Creating a Request
CreateTransitGatewayPeering (..),
newCreateTransitGatewayPeering,
-- * Request Lenses
createTransitGatewayPeering_clientToken,
createTransitGatewayPeering_tags,
createTransitGatewayPeering_coreNetworkId,
createTransitGatewayPeering_transitGatewayArn,
-- * Destructuring the Response
CreateTransitGatewayPeeringResponse (..),
newCreateTransitGatewayPeeringResponse,
-- * Response Lenses
createTransitGatewayPeeringResponse_transitGatewayPeering,
createTransitGatewayPeeringResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.NetworkManager.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newCreateTransitGatewayPeering' smart constructor.
data CreateTransitGatewayPeering = CreateTransitGatewayPeering'
{ -- | The client token associated with the request.
clientToken :: Prelude.Maybe Prelude.Text,
-- | The list of key-value tags associated with the request.
tags :: Prelude.Maybe [Tag],
-- | The ID of a core network.
coreNetworkId :: Prelude.Text,
-- | The ARN of the transit gateway for the peering request.
transitGatewayArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateTransitGatewayPeering' 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:
--
-- 'clientToken', 'createTransitGatewayPeering_clientToken' - The client token associated with the request.
--
-- 'tags', 'createTransitGatewayPeering_tags' - The list of key-value tags associated with the request.
--
-- 'coreNetworkId', 'createTransitGatewayPeering_coreNetworkId' - The ID of a core network.
--
-- 'transitGatewayArn', 'createTransitGatewayPeering_transitGatewayArn' - The ARN of the transit gateway for the peering request.
newCreateTransitGatewayPeering ::
-- | 'coreNetworkId'
Prelude.Text ->
-- | 'transitGatewayArn'
Prelude.Text ->
CreateTransitGatewayPeering
newCreateTransitGatewayPeering
pCoreNetworkId_
pTransitGatewayArn_ =
CreateTransitGatewayPeering'
{ clientToken =
Prelude.Nothing,
tags = Prelude.Nothing,
coreNetworkId = pCoreNetworkId_,
transitGatewayArn = pTransitGatewayArn_
}
-- | The client token associated with the request.
createTransitGatewayPeering_clientToken :: Lens.Lens' CreateTransitGatewayPeering (Prelude.Maybe Prelude.Text)
createTransitGatewayPeering_clientToken = Lens.lens (\CreateTransitGatewayPeering' {clientToken} -> clientToken) (\s@CreateTransitGatewayPeering' {} a -> s {clientToken = a} :: CreateTransitGatewayPeering)
-- | The list of key-value tags associated with the request.
createTransitGatewayPeering_tags :: Lens.Lens' CreateTransitGatewayPeering (Prelude.Maybe [Tag])
createTransitGatewayPeering_tags = Lens.lens (\CreateTransitGatewayPeering' {tags} -> tags) (\s@CreateTransitGatewayPeering' {} a -> s {tags = a} :: CreateTransitGatewayPeering) Prelude.. Lens.mapping Lens.coerced
-- | The ID of a core network.
createTransitGatewayPeering_coreNetworkId :: Lens.Lens' CreateTransitGatewayPeering Prelude.Text
createTransitGatewayPeering_coreNetworkId = Lens.lens (\CreateTransitGatewayPeering' {coreNetworkId} -> coreNetworkId) (\s@CreateTransitGatewayPeering' {} a -> s {coreNetworkId = a} :: CreateTransitGatewayPeering)
-- | The ARN of the transit gateway for the peering request.
createTransitGatewayPeering_transitGatewayArn :: Lens.Lens' CreateTransitGatewayPeering Prelude.Text
createTransitGatewayPeering_transitGatewayArn = Lens.lens (\CreateTransitGatewayPeering' {transitGatewayArn} -> transitGatewayArn) (\s@CreateTransitGatewayPeering' {} a -> s {transitGatewayArn = a} :: CreateTransitGatewayPeering)
instance Core.AWSRequest CreateTransitGatewayPeering where
type
AWSResponse CreateTransitGatewayPeering =
CreateTransitGatewayPeeringResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
CreateTransitGatewayPeeringResponse'
Prelude.<$> (x Data..?> "TransitGatewayPeering")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable CreateTransitGatewayPeering where
hashWithSalt _salt CreateTransitGatewayPeering' {..} =
_salt
`Prelude.hashWithSalt` clientToken
`Prelude.hashWithSalt` tags
`Prelude.hashWithSalt` coreNetworkId
`Prelude.hashWithSalt` transitGatewayArn
instance Prelude.NFData CreateTransitGatewayPeering where
rnf CreateTransitGatewayPeering' {..} =
Prelude.rnf clientToken
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf coreNetworkId
`Prelude.seq` Prelude.rnf transitGatewayArn
instance Data.ToHeaders CreateTransitGatewayPeering where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateTransitGatewayPeering where
toJSON CreateTransitGatewayPeering' {..} =
Data.object
( Prelude.catMaybes
[ ("ClientToken" Data..=) Prelude.<$> clientToken,
("Tags" Data..=) Prelude.<$> tags,
Prelude.Just ("CoreNetworkId" Data..= coreNetworkId),
Prelude.Just
("TransitGatewayArn" Data..= transitGatewayArn)
]
)
instance Data.ToPath CreateTransitGatewayPeering where
toPath = Prelude.const "/transit-gateway-peerings"
instance Data.ToQuery CreateTransitGatewayPeering where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newCreateTransitGatewayPeeringResponse' smart constructor.
data CreateTransitGatewayPeeringResponse = CreateTransitGatewayPeeringResponse'
{ -- | Returns information about the transit gateway peering connection
-- request.
transitGatewayPeering :: Prelude.Maybe TransitGatewayPeering,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateTransitGatewayPeeringResponse' 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:
--
-- 'transitGatewayPeering', 'createTransitGatewayPeeringResponse_transitGatewayPeering' - Returns information about the transit gateway peering connection
-- request.
--
-- 'httpStatus', 'createTransitGatewayPeeringResponse_httpStatus' - The response's http status code.
newCreateTransitGatewayPeeringResponse ::
-- | 'httpStatus'
Prelude.Int ->
CreateTransitGatewayPeeringResponse
newCreateTransitGatewayPeeringResponse pHttpStatus_ =
CreateTransitGatewayPeeringResponse'
{ transitGatewayPeering =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Returns information about the transit gateway peering connection
-- request.
createTransitGatewayPeeringResponse_transitGatewayPeering :: Lens.Lens' CreateTransitGatewayPeeringResponse (Prelude.Maybe TransitGatewayPeering)
createTransitGatewayPeeringResponse_transitGatewayPeering = Lens.lens (\CreateTransitGatewayPeeringResponse' {transitGatewayPeering} -> transitGatewayPeering) (\s@CreateTransitGatewayPeeringResponse' {} a -> s {transitGatewayPeering = a} :: CreateTransitGatewayPeeringResponse)
-- | The response's http status code.
createTransitGatewayPeeringResponse_httpStatus :: Lens.Lens' CreateTransitGatewayPeeringResponse Prelude.Int
createTransitGatewayPeeringResponse_httpStatus = Lens.lens (\CreateTransitGatewayPeeringResponse' {httpStatus} -> httpStatus) (\s@CreateTransitGatewayPeeringResponse' {} a -> s {httpStatus = a} :: CreateTransitGatewayPeeringResponse)
instance
Prelude.NFData
CreateTransitGatewayPeeringResponse
where
rnf CreateTransitGatewayPeeringResponse' {..} =
Prelude.rnf transitGatewayPeering
`Prelude.seq` Prelude.rnf httpStatus