{-# 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.DeviceFarm.UpdateVPCEConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates information about an Amazon Virtual Private Cloud (VPC) endpoint
-- configuration.
module Amazonka.DeviceFarm.UpdateVPCEConfiguration
  ( -- * Creating a Request
    UpdateVPCEConfiguration (..),
    newUpdateVPCEConfiguration,

    -- * Request Lenses
    updateVPCEConfiguration_serviceDnsName,
    updateVPCEConfiguration_vpceConfigurationDescription,
    updateVPCEConfiguration_vpceConfigurationName,
    updateVPCEConfiguration_vpceServiceName,
    updateVPCEConfiguration_arn,

    -- * Destructuring the Response
    UpdateVPCEConfigurationResponse (..),
    newUpdateVPCEConfigurationResponse,

    -- * Response Lenses
    updateVPCEConfigurationResponse_vpceConfiguration,
    updateVPCEConfigurationResponse_httpStatus,
  )
where

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

-- | /See:/ 'newUpdateVPCEConfiguration' smart constructor.
data UpdateVPCEConfiguration = UpdateVPCEConfiguration'
  { -- | The DNS (domain) name used to connect to your private service in your
    -- VPC. The DNS name must not already be in use on the internet.
    UpdateVPCEConfiguration -> Maybe Text
serviceDnsName :: Prelude.Maybe Prelude.Text,
    -- | An optional description that provides details about your VPC endpoint
    -- configuration.
    UpdateVPCEConfiguration -> Maybe Text
vpceConfigurationDescription :: Prelude.Maybe Prelude.Text,
    -- | The friendly name you give to your VPC endpoint configuration to manage
    -- your configurations more easily.
    UpdateVPCEConfiguration -> Maybe Text
vpceConfigurationName :: Prelude.Maybe Prelude.Text,
    -- | The name of the VPC endpoint service running in your AWS account that
    -- you want Device Farm to test.
    UpdateVPCEConfiguration -> Maybe Text
vpceServiceName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the VPC endpoint configuration you
    -- want to update.
    UpdateVPCEConfiguration -> Text
arn :: Prelude.Text
  }
  deriving (UpdateVPCEConfiguration -> UpdateVPCEConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateVPCEConfiguration -> UpdateVPCEConfiguration -> Bool
$c/= :: UpdateVPCEConfiguration -> UpdateVPCEConfiguration -> Bool
== :: UpdateVPCEConfiguration -> UpdateVPCEConfiguration -> Bool
$c== :: UpdateVPCEConfiguration -> UpdateVPCEConfiguration -> Bool
Prelude.Eq, ReadPrec [UpdateVPCEConfiguration]
ReadPrec UpdateVPCEConfiguration
Int -> ReadS UpdateVPCEConfiguration
ReadS [UpdateVPCEConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateVPCEConfiguration]
$creadListPrec :: ReadPrec [UpdateVPCEConfiguration]
readPrec :: ReadPrec UpdateVPCEConfiguration
$creadPrec :: ReadPrec UpdateVPCEConfiguration
readList :: ReadS [UpdateVPCEConfiguration]
$creadList :: ReadS [UpdateVPCEConfiguration]
readsPrec :: Int -> ReadS UpdateVPCEConfiguration
$creadsPrec :: Int -> ReadS UpdateVPCEConfiguration
Prelude.Read, Int -> UpdateVPCEConfiguration -> ShowS
[UpdateVPCEConfiguration] -> ShowS
UpdateVPCEConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateVPCEConfiguration] -> ShowS
$cshowList :: [UpdateVPCEConfiguration] -> ShowS
show :: UpdateVPCEConfiguration -> String
$cshow :: UpdateVPCEConfiguration -> String
showsPrec :: Int -> UpdateVPCEConfiguration -> ShowS
$cshowsPrec :: Int -> UpdateVPCEConfiguration -> ShowS
Prelude.Show, forall x. Rep UpdateVPCEConfiguration x -> UpdateVPCEConfiguration
forall x. UpdateVPCEConfiguration -> Rep UpdateVPCEConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateVPCEConfiguration x -> UpdateVPCEConfiguration
$cfrom :: forall x. UpdateVPCEConfiguration -> Rep UpdateVPCEConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'UpdateVPCEConfiguration' 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:
--
-- 'serviceDnsName', 'updateVPCEConfiguration_serviceDnsName' - The DNS (domain) name used to connect to your private service in your
-- VPC. The DNS name must not already be in use on the internet.
--
-- 'vpceConfigurationDescription', 'updateVPCEConfiguration_vpceConfigurationDescription' - An optional description that provides details about your VPC endpoint
-- configuration.
--
-- 'vpceConfigurationName', 'updateVPCEConfiguration_vpceConfigurationName' - The friendly name you give to your VPC endpoint configuration to manage
-- your configurations more easily.
--
-- 'vpceServiceName', 'updateVPCEConfiguration_vpceServiceName' - The name of the VPC endpoint service running in your AWS account that
-- you want Device Farm to test.
--
-- 'arn', 'updateVPCEConfiguration_arn' - The Amazon Resource Name (ARN) of the VPC endpoint configuration you
-- want to update.
newUpdateVPCEConfiguration ::
  -- | 'arn'
  Prelude.Text ->
  UpdateVPCEConfiguration
newUpdateVPCEConfiguration :: Text -> UpdateVPCEConfiguration
newUpdateVPCEConfiguration Text
pArn_ =
  UpdateVPCEConfiguration'
    { $sel:serviceDnsName:UpdateVPCEConfiguration' :: Maybe Text
serviceDnsName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:vpceConfigurationDescription:UpdateVPCEConfiguration' :: Maybe Text
vpceConfigurationDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:vpceConfigurationName:UpdateVPCEConfiguration' :: Maybe Text
vpceConfigurationName = forall a. Maybe a
Prelude.Nothing,
      $sel:vpceServiceName:UpdateVPCEConfiguration' :: Maybe Text
vpceServiceName = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:UpdateVPCEConfiguration' :: Text
arn = Text
pArn_
    }

-- | The DNS (domain) name used to connect to your private service in your
-- VPC. The DNS name must not already be in use on the internet.
updateVPCEConfiguration_serviceDnsName :: Lens.Lens' UpdateVPCEConfiguration (Prelude.Maybe Prelude.Text)
updateVPCEConfiguration_serviceDnsName :: Lens' UpdateVPCEConfiguration (Maybe Text)
updateVPCEConfiguration_serviceDnsName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateVPCEConfiguration' {Maybe Text
serviceDnsName :: Maybe Text
$sel:serviceDnsName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
serviceDnsName} -> Maybe Text
serviceDnsName) (\s :: UpdateVPCEConfiguration
s@UpdateVPCEConfiguration' {} Maybe Text
a -> UpdateVPCEConfiguration
s {$sel:serviceDnsName:UpdateVPCEConfiguration' :: Maybe Text
serviceDnsName = Maybe Text
a} :: UpdateVPCEConfiguration)

-- | An optional description that provides details about your VPC endpoint
-- configuration.
updateVPCEConfiguration_vpceConfigurationDescription :: Lens.Lens' UpdateVPCEConfiguration (Prelude.Maybe Prelude.Text)
updateVPCEConfiguration_vpceConfigurationDescription :: Lens' UpdateVPCEConfiguration (Maybe Text)
updateVPCEConfiguration_vpceConfigurationDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateVPCEConfiguration' {Maybe Text
vpceConfigurationDescription :: Maybe Text
$sel:vpceConfigurationDescription:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
vpceConfigurationDescription} -> Maybe Text
vpceConfigurationDescription) (\s :: UpdateVPCEConfiguration
s@UpdateVPCEConfiguration' {} Maybe Text
a -> UpdateVPCEConfiguration
s {$sel:vpceConfigurationDescription:UpdateVPCEConfiguration' :: Maybe Text
vpceConfigurationDescription = Maybe Text
a} :: UpdateVPCEConfiguration)

-- | The friendly name you give to your VPC endpoint configuration to manage
-- your configurations more easily.
updateVPCEConfiguration_vpceConfigurationName :: Lens.Lens' UpdateVPCEConfiguration (Prelude.Maybe Prelude.Text)
updateVPCEConfiguration_vpceConfigurationName :: Lens' UpdateVPCEConfiguration (Maybe Text)
updateVPCEConfiguration_vpceConfigurationName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateVPCEConfiguration' {Maybe Text
vpceConfigurationName :: Maybe Text
$sel:vpceConfigurationName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
vpceConfigurationName} -> Maybe Text
vpceConfigurationName) (\s :: UpdateVPCEConfiguration
s@UpdateVPCEConfiguration' {} Maybe Text
a -> UpdateVPCEConfiguration
s {$sel:vpceConfigurationName:UpdateVPCEConfiguration' :: Maybe Text
vpceConfigurationName = Maybe Text
a} :: UpdateVPCEConfiguration)

-- | The name of the VPC endpoint service running in your AWS account that
-- you want Device Farm to test.
updateVPCEConfiguration_vpceServiceName :: Lens.Lens' UpdateVPCEConfiguration (Prelude.Maybe Prelude.Text)
updateVPCEConfiguration_vpceServiceName :: Lens' UpdateVPCEConfiguration (Maybe Text)
updateVPCEConfiguration_vpceServiceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateVPCEConfiguration' {Maybe Text
vpceServiceName :: Maybe Text
$sel:vpceServiceName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
vpceServiceName} -> Maybe Text
vpceServiceName) (\s :: UpdateVPCEConfiguration
s@UpdateVPCEConfiguration' {} Maybe Text
a -> UpdateVPCEConfiguration
s {$sel:vpceServiceName:UpdateVPCEConfiguration' :: Maybe Text
vpceServiceName = Maybe Text
a} :: UpdateVPCEConfiguration)

-- | The Amazon Resource Name (ARN) of the VPC endpoint configuration you
-- want to update.
updateVPCEConfiguration_arn :: Lens.Lens' UpdateVPCEConfiguration Prelude.Text
updateVPCEConfiguration_arn :: Lens' UpdateVPCEConfiguration Text
updateVPCEConfiguration_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateVPCEConfiguration' {Text
arn :: Text
$sel:arn:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Text
arn} -> Text
arn) (\s :: UpdateVPCEConfiguration
s@UpdateVPCEConfiguration' {} Text
a -> UpdateVPCEConfiguration
s {$sel:arn:UpdateVPCEConfiguration' :: Text
arn = Text
a} :: UpdateVPCEConfiguration)

instance Core.AWSRequest UpdateVPCEConfiguration where
  type
    AWSResponse UpdateVPCEConfiguration =
      UpdateVPCEConfigurationResponse
  request :: (Service -> Service)
-> UpdateVPCEConfiguration -> Request UpdateVPCEConfiguration
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 UpdateVPCEConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateVPCEConfiguration)))
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 VPCEConfiguration -> Int -> UpdateVPCEConfigurationResponse
UpdateVPCEConfigurationResponse'
            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
"vpceConfiguration")
            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 UpdateVPCEConfiguration where
  hashWithSalt :: Int -> UpdateVPCEConfiguration -> Int
hashWithSalt Int
_salt UpdateVPCEConfiguration' {Maybe Text
Text
arn :: Text
vpceServiceName :: Maybe Text
vpceConfigurationName :: Maybe Text
vpceConfigurationDescription :: Maybe Text
serviceDnsName :: Maybe Text
$sel:arn:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Text
$sel:vpceServiceName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:vpceConfigurationName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:vpceConfigurationDescription:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:serviceDnsName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceDnsName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpceConfigurationDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpceConfigurationName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpceServiceName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn

instance Prelude.NFData UpdateVPCEConfiguration where
  rnf :: UpdateVPCEConfiguration -> ()
rnf UpdateVPCEConfiguration' {Maybe Text
Text
arn :: Text
vpceServiceName :: Maybe Text
vpceConfigurationName :: Maybe Text
vpceConfigurationDescription :: Maybe Text
serviceDnsName :: Maybe Text
$sel:arn:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Text
$sel:vpceServiceName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:vpceConfigurationName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:vpceConfigurationDescription:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:serviceDnsName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceDnsName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpceConfigurationDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpceConfigurationName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpceServiceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn

instance Data.ToHeaders UpdateVPCEConfiguration where
  toHeaders :: UpdateVPCEConfiguration -> 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
"DeviceFarm_20150623.UpdateVPCEConfiguration" ::
                          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 UpdateVPCEConfiguration where
  toJSON :: UpdateVPCEConfiguration -> Value
toJSON UpdateVPCEConfiguration' {Maybe Text
Text
arn :: Text
vpceServiceName :: Maybe Text
vpceConfigurationName :: Maybe Text
vpceConfigurationDescription :: Maybe Text
serviceDnsName :: Maybe Text
$sel:arn:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Text
$sel:vpceServiceName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:vpceConfigurationName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:vpceConfigurationDescription:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
$sel:serviceDnsName:UpdateVPCEConfiguration' :: UpdateVPCEConfiguration -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"serviceDnsName" 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 Text
serviceDnsName,
            (Key
"vpceConfigurationDescription" 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 Text
vpceConfigurationDescription,
            (Key
"vpceConfigurationName" 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 Text
vpceConfigurationName,
            (Key
"vpceServiceName" 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 Text
vpceServiceName,
            forall a. a -> Maybe a
Prelude.Just (Key
"arn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
arn)
          ]
      )

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

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

-- | /See:/ 'newUpdateVPCEConfigurationResponse' smart constructor.
data UpdateVPCEConfigurationResponse = UpdateVPCEConfigurationResponse'
  { -- | An object that contains information about your VPC endpoint
    -- configuration.
    UpdateVPCEConfigurationResponse -> Maybe VPCEConfiguration
vpceConfiguration :: Prelude.Maybe VPCEConfiguration,
    -- | The response's http status code.
    UpdateVPCEConfigurationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateVPCEConfigurationResponse
-> UpdateVPCEConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateVPCEConfigurationResponse
-> UpdateVPCEConfigurationResponse -> Bool
$c/= :: UpdateVPCEConfigurationResponse
-> UpdateVPCEConfigurationResponse -> Bool
== :: UpdateVPCEConfigurationResponse
-> UpdateVPCEConfigurationResponse -> Bool
$c== :: UpdateVPCEConfigurationResponse
-> UpdateVPCEConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [UpdateVPCEConfigurationResponse]
ReadPrec UpdateVPCEConfigurationResponse
Int -> ReadS UpdateVPCEConfigurationResponse
ReadS [UpdateVPCEConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateVPCEConfigurationResponse]
$creadListPrec :: ReadPrec [UpdateVPCEConfigurationResponse]
readPrec :: ReadPrec UpdateVPCEConfigurationResponse
$creadPrec :: ReadPrec UpdateVPCEConfigurationResponse
readList :: ReadS [UpdateVPCEConfigurationResponse]
$creadList :: ReadS [UpdateVPCEConfigurationResponse]
readsPrec :: Int -> ReadS UpdateVPCEConfigurationResponse
$creadsPrec :: Int -> ReadS UpdateVPCEConfigurationResponse
Prelude.Read, Int -> UpdateVPCEConfigurationResponse -> ShowS
[UpdateVPCEConfigurationResponse] -> ShowS
UpdateVPCEConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateVPCEConfigurationResponse] -> ShowS
$cshowList :: [UpdateVPCEConfigurationResponse] -> ShowS
show :: UpdateVPCEConfigurationResponse -> String
$cshow :: UpdateVPCEConfigurationResponse -> String
showsPrec :: Int -> UpdateVPCEConfigurationResponse -> ShowS
$cshowsPrec :: Int -> UpdateVPCEConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateVPCEConfigurationResponse x
-> UpdateVPCEConfigurationResponse
forall x.
UpdateVPCEConfigurationResponse
-> Rep UpdateVPCEConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateVPCEConfigurationResponse x
-> UpdateVPCEConfigurationResponse
$cfrom :: forall x.
UpdateVPCEConfigurationResponse
-> Rep UpdateVPCEConfigurationResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateVPCEConfigurationResponse' 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:
--
-- 'vpceConfiguration', 'updateVPCEConfigurationResponse_vpceConfiguration' - An object that contains information about your VPC endpoint
-- configuration.
--
-- 'httpStatus', 'updateVPCEConfigurationResponse_httpStatus' - The response's http status code.
newUpdateVPCEConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateVPCEConfigurationResponse
newUpdateVPCEConfigurationResponse :: Int -> UpdateVPCEConfigurationResponse
newUpdateVPCEConfigurationResponse Int
pHttpStatus_ =
  UpdateVPCEConfigurationResponse'
    { $sel:vpceConfiguration:UpdateVPCEConfigurationResponse' :: Maybe VPCEConfiguration
vpceConfiguration =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateVPCEConfigurationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | An object that contains information about your VPC endpoint
-- configuration.
updateVPCEConfigurationResponse_vpceConfiguration :: Lens.Lens' UpdateVPCEConfigurationResponse (Prelude.Maybe VPCEConfiguration)
updateVPCEConfigurationResponse_vpceConfiguration :: Lens' UpdateVPCEConfigurationResponse (Maybe VPCEConfiguration)
updateVPCEConfigurationResponse_vpceConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateVPCEConfigurationResponse' {Maybe VPCEConfiguration
vpceConfiguration :: Maybe VPCEConfiguration
$sel:vpceConfiguration:UpdateVPCEConfigurationResponse' :: UpdateVPCEConfigurationResponse -> Maybe VPCEConfiguration
vpceConfiguration} -> Maybe VPCEConfiguration
vpceConfiguration) (\s :: UpdateVPCEConfigurationResponse
s@UpdateVPCEConfigurationResponse' {} Maybe VPCEConfiguration
a -> UpdateVPCEConfigurationResponse
s {$sel:vpceConfiguration:UpdateVPCEConfigurationResponse' :: Maybe VPCEConfiguration
vpceConfiguration = Maybe VPCEConfiguration
a} :: UpdateVPCEConfigurationResponse)

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

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