{-# 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.GetVpnConnectionDeviceSampleConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Download an Amazon Web Services-provided sample configuration file to be
-- used with the customer gateway device specified for your Site-to-Site
-- VPN connection.
module Amazonka.EC2.GetVpnConnectionDeviceSampleConfiguration
  ( -- * Creating a Request
    GetVpnConnectionDeviceSampleConfiguration (..),
    newGetVpnConnectionDeviceSampleConfiguration,

    -- * Request Lenses
    getVpnConnectionDeviceSampleConfiguration_dryRun,
    getVpnConnectionDeviceSampleConfiguration_internetKeyExchangeVersion,
    getVpnConnectionDeviceSampleConfiguration_vpnConnectionId,
    getVpnConnectionDeviceSampleConfiguration_vpnConnectionDeviceTypeId,

    -- * Destructuring the Response
    GetVpnConnectionDeviceSampleConfigurationResponse (..),
    newGetVpnConnectionDeviceSampleConfigurationResponse,

    -- * Response Lenses
    getVpnConnectionDeviceSampleConfigurationResponse_vpnConnectionDeviceSampleConfiguration,
    getVpnConnectionDeviceSampleConfigurationResponse_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:/ 'newGetVpnConnectionDeviceSampleConfiguration' smart constructor.
data GetVpnConnectionDeviceSampleConfiguration = GetVpnConnectionDeviceSampleConfiguration'
  { -- | 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@.
    GetVpnConnectionDeviceSampleConfiguration -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The IKE version to be used in the sample configuration file for your
    -- customer gateway device. You can specify one of the following versions:
    -- @ikev1@ or @ikev2@.
    GetVpnConnectionDeviceSampleConfiguration -> Maybe Text
internetKeyExchangeVersion :: Prelude.Maybe Prelude.Text,
    -- | The @VpnConnectionId@ specifies the Site-to-Site VPN connection used for
    -- the sample configuration.
    GetVpnConnectionDeviceSampleConfiguration -> Text
vpnConnectionId :: Prelude.Text,
    -- | Device identifier provided by the @GetVpnConnectionDeviceTypes@ API.
    GetVpnConnectionDeviceSampleConfiguration -> Text
vpnConnectionDeviceTypeId :: Prelude.Text
  }
  deriving (GetVpnConnectionDeviceSampleConfiguration
-> GetVpnConnectionDeviceSampleConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetVpnConnectionDeviceSampleConfiguration
-> GetVpnConnectionDeviceSampleConfiguration -> Bool
$c/= :: GetVpnConnectionDeviceSampleConfiguration
-> GetVpnConnectionDeviceSampleConfiguration -> Bool
== :: GetVpnConnectionDeviceSampleConfiguration
-> GetVpnConnectionDeviceSampleConfiguration -> Bool
$c== :: GetVpnConnectionDeviceSampleConfiguration
-> GetVpnConnectionDeviceSampleConfiguration -> Bool
Prelude.Eq, ReadPrec [GetVpnConnectionDeviceSampleConfiguration]
ReadPrec GetVpnConnectionDeviceSampleConfiguration
Int -> ReadS GetVpnConnectionDeviceSampleConfiguration
ReadS [GetVpnConnectionDeviceSampleConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetVpnConnectionDeviceSampleConfiguration]
$creadListPrec :: ReadPrec [GetVpnConnectionDeviceSampleConfiguration]
readPrec :: ReadPrec GetVpnConnectionDeviceSampleConfiguration
$creadPrec :: ReadPrec GetVpnConnectionDeviceSampleConfiguration
readList :: ReadS [GetVpnConnectionDeviceSampleConfiguration]
$creadList :: ReadS [GetVpnConnectionDeviceSampleConfiguration]
readsPrec :: Int -> ReadS GetVpnConnectionDeviceSampleConfiguration
$creadsPrec :: Int -> ReadS GetVpnConnectionDeviceSampleConfiguration
Prelude.Read, Int -> GetVpnConnectionDeviceSampleConfiguration -> ShowS
[GetVpnConnectionDeviceSampleConfiguration] -> ShowS
GetVpnConnectionDeviceSampleConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetVpnConnectionDeviceSampleConfiguration] -> ShowS
$cshowList :: [GetVpnConnectionDeviceSampleConfiguration] -> ShowS
show :: GetVpnConnectionDeviceSampleConfiguration -> String
$cshow :: GetVpnConnectionDeviceSampleConfiguration -> String
showsPrec :: Int -> GetVpnConnectionDeviceSampleConfiguration -> ShowS
$cshowsPrec :: Int -> GetVpnConnectionDeviceSampleConfiguration -> ShowS
Prelude.Show, forall x.
Rep GetVpnConnectionDeviceSampleConfiguration x
-> GetVpnConnectionDeviceSampleConfiguration
forall x.
GetVpnConnectionDeviceSampleConfiguration
-> Rep GetVpnConnectionDeviceSampleConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetVpnConnectionDeviceSampleConfiguration x
-> GetVpnConnectionDeviceSampleConfiguration
$cfrom :: forall x.
GetVpnConnectionDeviceSampleConfiguration
-> Rep GetVpnConnectionDeviceSampleConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'GetVpnConnectionDeviceSampleConfiguration' 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', 'getVpnConnectionDeviceSampleConfiguration_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@.
--
-- 'internetKeyExchangeVersion', 'getVpnConnectionDeviceSampleConfiguration_internetKeyExchangeVersion' - The IKE version to be used in the sample configuration file for your
-- customer gateway device. You can specify one of the following versions:
-- @ikev1@ or @ikev2@.
--
-- 'vpnConnectionId', 'getVpnConnectionDeviceSampleConfiguration_vpnConnectionId' - The @VpnConnectionId@ specifies the Site-to-Site VPN connection used for
-- the sample configuration.
--
-- 'vpnConnectionDeviceTypeId', 'getVpnConnectionDeviceSampleConfiguration_vpnConnectionDeviceTypeId' - Device identifier provided by the @GetVpnConnectionDeviceTypes@ API.
newGetVpnConnectionDeviceSampleConfiguration ::
  -- | 'vpnConnectionId'
  Prelude.Text ->
  -- | 'vpnConnectionDeviceTypeId'
  Prelude.Text ->
  GetVpnConnectionDeviceSampleConfiguration
newGetVpnConnectionDeviceSampleConfiguration :: Text -> Text -> GetVpnConnectionDeviceSampleConfiguration
newGetVpnConnectionDeviceSampleConfiguration
  Text
pVpnConnectionId_
  Text
pVpnConnectionDeviceTypeId_ =
    GetVpnConnectionDeviceSampleConfiguration'
      { $sel:dryRun:GetVpnConnectionDeviceSampleConfiguration' :: Maybe Bool
dryRun =
          forall a. Maybe a
Prelude.Nothing,
        $sel:internetKeyExchangeVersion:GetVpnConnectionDeviceSampleConfiguration' :: Maybe Text
internetKeyExchangeVersion =
          forall a. Maybe a
Prelude.Nothing,
        $sel:vpnConnectionId:GetVpnConnectionDeviceSampleConfiguration' :: Text
vpnConnectionId =
          Text
pVpnConnectionId_,
        $sel:vpnConnectionDeviceTypeId:GetVpnConnectionDeviceSampleConfiguration' :: Text
vpnConnectionDeviceTypeId =
          Text
pVpnConnectionDeviceTypeId_
      }

-- | 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@.
getVpnConnectionDeviceSampleConfiguration_dryRun :: Lens.Lens' GetVpnConnectionDeviceSampleConfiguration (Prelude.Maybe Prelude.Bool)
getVpnConnectionDeviceSampleConfiguration_dryRun :: Lens' GetVpnConnectionDeviceSampleConfiguration (Maybe Bool)
getVpnConnectionDeviceSampleConfiguration_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetVpnConnectionDeviceSampleConfiguration' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: GetVpnConnectionDeviceSampleConfiguration
s@GetVpnConnectionDeviceSampleConfiguration' {} Maybe Bool
a -> GetVpnConnectionDeviceSampleConfiguration
s {$sel:dryRun:GetVpnConnectionDeviceSampleConfiguration' :: Maybe Bool
dryRun = Maybe Bool
a} :: GetVpnConnectionDeviceSampleConfiguration)

-- | The IKE version to be used in the sample configuration file for your
-- customer gateway device. You can specify one of the following versions:
-- @ikev1@ or @ikev2@.
getVpnConnectionDeviceSampleConfiguration_internetKeyExchangeVersion :: Lens.Lens' GetVpnConnectionDeviceSampleConfiguration (Prelude.Maybe Prelude.Text)
getVpnConnectionDeviceSampleConfiguration_internetKeyExchangeVersion :: Lens' GetVpnConnectionDeviceSampleConfiguration (Maybe Text)
getVpnConnectionDeviceSampleConfiguration_internetKeyExchangeVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetVpnConnectionDeviceSampleConfiguration' {Maybe Text
internetKeyExchangeVersion :: Maybe Text
$sel:internetKeyExchangeVersion:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Maybe Text
internetKeyExchangeVersion} -> Maybe Text
internetKeyExchangeVersion) (\s :: GetVpnConnectionDeviceSampleConfiguration
s@GetVpnConnectionDeviceSampleConfiguration' {} Maybe Text
a -> GetVpnConnectionDeviceSampleConfiguration
s {$sel:internetKeyExchangeVersion:GetVpnConnectionDeviceSampleConfiguration' :: Maybe Text
internetKeyExchangeVersion = Maybe Text
a} :: GetVpnConnectionDeviceSampleConfiguration)

-- | The @VpnConnectionId@ specifies the Site-to-Site VPN connection used for
-- the sample configuration.
getVpnConnectionDeviceSampleConfiguration_vpnConnectionId :: Lens.Lens' GetVpnConnectionDeviceSampleConfiguration Prelude.Text
getVpnConnectionDeviceSampleConfiguration_vpnConnectionId :: Lens' GetVpnConnectionDeviceSampleConfiguration Text
getVpnConnectionDeviceSampleConfiguration_vpnConnectionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetVpnConnectionDeviceSampleConfiguration' {Text
vpnConnectionId :: Text
$sel:vpnConnectionId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
vpnConnectionId} -> Text
vpnConnectionId) (\s :: GetVpnConnectionDeviceSampleConfiguration
s@GetVpnConnectionDeviceSampleConfiguration' {} Text
a -> GetVpnConnectionDeviceSampleConfiguration
s {$sel:vpnConnectionId:GetVpnConnectionDeviceSampleConfiguration' :: Text
vpnConnectionId = Text
a} :: GetVpnConnectionDeviceSampleConfiguration)

-- | Device identifier provided by the @GetVpnConnectionDeviceTypes@ API.
getVpnConnectionDeviceSampleConfiguration_vpnConnectionDeviceTypeId :: Lens.Lens' GetVpnConnectionDeviceSampleConfiguration Prelude.Text
getVpnConnectionDeviceSampleConfiguration_vpnConnectionDeviceTypeId :: Lens' GetVpnConnectionDeviceSampleConfiguration Text
getVpnConnectionDeviceSampleConfiguration_vpnConnectionDeviceTypeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetVpnConnectionDeviceSampleConfiguration' {Text
vpnConnectionDeviceTypeId :: Text
$sel:vpnConnectionDeviceTypeId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
vpnConnectionDeviceTypeId} -> Text
vpnConnectionDeviceTypeId) (\s :: GetVpnConnectionDeviceSampleConfiguration
s@GetVpnConnectionDeviceSampleConfiguration' {} Text
a -> GetVpnConnectionDeviceSampleConfiguration
s {$sel:vpnConnectionDeviceTypeId:GetVpnConnectionDeviceSampleConfiguration' :: Text
vpnConnectionDeviceTypeId = Text
a} :: GetVpnConnectionDeviceSampleConfiguration)

instance
  Core.AWSRequest
    GetVpnConnectionDeviceSampleConfiguration
  where
  type
    AWSResponse
      GetVpnConnectionDeviceSampleConfiguration =
      GetVpnConnectionDeviceSampleConfigurationResponse
  request :: (Service -> Service)
-> GetVpnConnectionDeviceSampleConfiguration
-> Request GetVpnConnectionDeviceSampleConfiguration
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 GetVpnConnectionDeviceSampleConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse GetVpnConnectionDeviceSampleConfiguration)))
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 (Sensitive Text)
-> Int -> GetVpnConnectionDeviceSampleConfigurationResponse
GetVpnConnectionDeviceSampleConfigurationResponse'
            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
"vpnConnectionDeviceSampleConfiguration")
            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
    GetVpnConnectionDeviceSampleConfiguration
  where
  hashWithSalt :: Int -> GetVpnConnectionDeviceSampleConfiguration -> Int
hashWithSalt
    Int
_salt
    GetVpnConnectionDeviceSampleConfiguration' {Maybe Bool
Maybe Text
Text
vpnConnectionDeviceTypeId :: Text
vpnConnectionId :: Text
internetKeyExchangeVersion :: Maybe Text
dryRun :: Maybe Bool
$sel:vpnConnectionDeviceTypeId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
$sel:vpnConnectionId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
$sel:internetKeyExchangeVersion:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Maybe Text
$sel:dryRun:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> 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
internetKeyExchangeVersion
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
vpnConnectionId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
vpnConnectionDeviceTypeId

instance
  Prelude.NFData
    GetVpnConnectionDeviceSampleConfiguration
  where
  rnf :: GetVpnConnectionDeviceSampleConfiguration -> ()
rnf GetVpnConnectionDeviceSampleConfiguration' {Maybe Bool
Maybe Text
Text
vpnConnectionDeviceTypeId :: Text
vpnConnectionId :: Text
internetKeyExchangeVersion :: Maybe Text
dryRun :: Maybe Bool
$sel:vpnConnectionDeviceTypeId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
$sel:vpnConnectionId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
$sel:internetKeyExchangeVersion:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Maybe Text
$sel:dryRun:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> 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
internetKeyExchangeVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
vpnConnectionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
vpnConnectionDeviceTypeId

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

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

instance
  Data.ToQuery
    GetVpnConnectionDeviceSampleConfiguration
  where
  toQuery :: GetVpnConnectionDeviceSampleConfiguration -> QueryString
toQuery
    GetVpnConnectionDeviceSampleConfiguration' {Maybe Bool
Maybe Text
Text
vpnConnectionDeviceTypeId :: Text
vpnConnectionId :: Text
internetKeyExchangeVersion :: Maybe Text
dryRun :: Maybe Bool
$sel:vpnConnectionDeviceTypeId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
$sel:vpnConnectionId:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Text
$sel:internetKeyExchangeVersion:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Maybe Text
$sel:dryRun:GetVpnConnectionDeviceSampleConfiguration' :: GetVpnConnectionDeviceSampleConfiguration -> Maybe Bool
..} =
      forall a. Monoid a => [a] -> a
Prelude.mconcat
        [ ByteString
"Action"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"GetVpnConnectionDeviceSampleConfiguration" ::
                        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
"InternetKeyExchangeVersion"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
internetKeyExchangeVersion,
          ByteString
"VpnConnectionId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
vpnConnectionId,
          ByteString
"VpnConnectionDeviceTypeId"
            forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
vpnConnectionDeviceTypeId
        ]

-- | /See:/ 'newGetVpnConnectionDeviceSampleConfigurationResponse' smart constructor.
data GetVpnConnectionDeviceSampleConfigurationResponse = GetVpnConnectionDeviceSampleConfigurationResponse'
  { -- | Sample configuration file for the specified customer gateway device.
    GetVpnConnectionDeviceSampleConfigurationResponse
-> Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The response's http status code.
    GetVpnConnectionDeviceSampleConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetVpnConnectionDeviceSampleConfigurationResponse
-> GetVpnConnectionDeviceSampleConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetVpnConnectionDeviceSampleConfigurationResponse
-> GetVpnConnectionDeviceSampleConfigurationResponse -> Bool
$c/= :: GetVpnConnectionDeviceSampleConfigurationResponse
-> GetVpnConnectionDeviceSampleConfigurationResponse -> Bool
== :: GetVpnConnectionDeviceSampleConfigurationResponse
-> GetVpnConnectionDeviceSampleConfigurationResponse -> Bool
$c== :: GetVpnConnectionDeviceSampleConfigurationResponse
-> GetVpnConnectionDeviceSampleConfigurationResponse -> Bool
Prelude.Eq, Int -> GetVpnConnectionDeviceSampleConfigurationResponse -> ShowS
[GetVpnConnectionDeviceSampleConfigurationResponse] -> ShowS
GetVpnConnectionDeviceSampleConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetVpnConnectionDeviceSampleConfigurationResponse] -> ShowS
$cshowList :: [GetVpnConnectionDeviceSampleConfigurationResponse] -> ShowS
show :: GetVpnConnectionDeviceSampleConfigurationResponse -> String
$cshow :: GetVpnConnectionDeviceSampleConfigurationResponse -> String
showsPrec :: Int -> GetVpnConnectionDeviceSampleConfigurationResponse -> ShowS
$cshowsPrec :: Int -> GetVpnConnectionDeviceSampleConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep GetVpnConnectionDeviceSampleConfigurationResponse x
-> GetVpnConnectionDeviceSampleConfigurationResponse
forall x.
GetVpnConnectionDeviceSampleConfigurationResponse
-> Rep GetVpnConnectionDeviceSampleConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetVpnConnectionDeviceSampleConfigurationResponse x
-> GetVpnConnectionDeviceSampleConfigurationResponse
$cfrom :: forall x.
GetVpnConnectionDeviceSampleConfigurationResponse
-> Rep GetVpnConnectionDeviceSampleConfigurationResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetVpnConnectionDeviceSampleConfigurationResponse' 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:
--
-- 'vpnConnectionDeviceSampleConfiguration', 'getVpnConnectionDeviceSampleConfigurationResponse_vpnConnectionDeviceSampleConfiguration' - Sample configuration file for the specified customer gateway device.
--
-- 'httpStatus', 'getVpnConnectionDeviceSampleConfigurationResponse_httpStatus' - The response's http status code.
newGetVpnConnectionDeviceSampleConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetVpnConnectionDeviceSampleConfigurationResponse
newGetVpnConnectionDeviceSampleConfigurationResponse :: Int -> GetVpnConnectionDeviceSampleConfigurationResponse
newGetVpnConnectionDeviceSampleConfigurationResponse
  Int
pHttpStatus_ =
    GetVpnConnectionDeviceSampleConfigurationResponse'
      { $sel:vpnConnectionDeviceSampleConfiguration:GetVpnConnectionDeviceSampleConfigurationResponse' :: Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetVpnConnectionDeviceSampleConfigurationResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | Sample configuration file for the specified customer gateway device.
getVpnConnectionDeviceSampleConfigurationResponse_vpnConnectionDeviceSampleConfiguration :: Lens.Lens' GetVpnConnectionDeviceSampleConfigurationResponse (Prelude.Maybe Prelude.Text)
getVpnConnectionDeviceSampleConfigurationResponse_vpnConnectionDeviceSampleConfiguration :: Lens'
  GetVpnConnectionDeviceSampleConfigurationResponse (Maybe Text)
getVpnConnectionDeviceSampleConfigurationResponse_vpnConnectionDeviceSampleConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetVpnConnectionDeviceSampleConfigurationResponse' {Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration :: Maybe (Sensitive Text)
$sel:vpnConnectionDeviceSampleConfiguration:GetVpnConnectionDeviceSampleConfigurationResponse' :: GetVpnConnectionDeviceSampleConfigurationResponse
-> Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration} -> Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration) (\s :: GetVpnConnectionDeviceSampleConfigurationResponse
s@GetVpnConnectionDeviceSampleConfigurationResponse' {} Maybe (Sensitive Text)
a -> GetVpnConnectionDeviceSampleConfigurationResponse
s {$sel:vpnConnectionDeviceSampleConfiguration:GetVpnConnectionDeviceSampleConfigurationResponse' :: Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration = Maybe (Sensitive Text)
a} :: GetVpnConnectionDeviceSampleConfigurationResponse) 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 a. Iso' (Sensitive a) a
Data._Sensitive

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

instance
  Prelude.NFData
    GetVpnConnectionDeviceSampleConfigurationResponse
  where
  rnf :: GetVpnConnectionDeviceSampleConfigurationResponse -> ()
rnf
    GetVpnConnectionDeviceSampleConfigurationResponse' {Int
Maybe (Sensitive Text)
httpStatus :: Int
vpnConnectionDeviceSampleConfiguration :: Maybe (Sensitive Text)
$sel:httpStatus:GetVpnConnectionDeviceSampleConfigurationResponse' :: GetVpnConnectionDeviceSampleConfigurationResponse -> Int
$sel:vpnConnectionDeviceSampleConfiguration:GetVpnConnectionDeviceSampleConfigurationResponse' :: GetVpnConnectionDeviceSampleConfigurationResponse
-> Maybe (Sensitive Text)
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
vpnConnectionDeviceSampleConfiguration
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus