amazonka-route53resolver-2.0: gen/Amazonka/Route53Resolver/UpdateResolverConfig.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.Route53Resolver.UpdateResolverConfig
-- 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 the behavior configuration of Route 53 Resolver behavior for a
-- single VPC from Amazon Virtual Private Cloud.
module Amazonka.Route53Resolver.UpdateResolverConfig
( -- * Creating a Request
UpdateResolverConfig (..),
newUpdateResolverConfig,
-- * Request Lenses
updateResolverConfig_resourceId,
updateResolverConfig_autodefinedReverseFlag,
-- * Destructuring the Response
UpdateResolverConfigResponse (..),
newUpdateResolverConfigResponse,
-- * Response Lenses
updateResolverConfigResponse_resolverConfig,
updateResolverConfigResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.Route53Resolver.Types
-- | /See:/ 'newUpdateResolverConfig' smart constructor.
data UpdateResolverConfig = UpdateResolverConfig'
{ -- | Resource ID of the Amazon VPC that you want to update the Resolver
-- configuration for.
resourceId :: Prelude.Text,
-- | Indicates whether or not the Resolver will create autodefined rules for
-- reverse DNS lookups. This is enabled by default. Disabling this option
-- will also affect EC2-Classic instances using ClassicLink. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink>
-- in the /Amazon EC2 guide/.
--
-- It can take some time for the status change to be completed.
autodefinedReverseFlag :: AutodefinedReverseFlag
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateResolverConfig' 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:
--
-- 'resourceId', 'updateResolverConfig_resourceId' - Resource ID of the Amazon VPC that you want to update the Resolver
-- configuration for.
--
-- 'autodefinedReverseFlag', 'updateResolverConfig_autodefinedReverseFlag' - Indicates whether or not the Resolver will create autodefined rules for
-- reverse DNS lookups. This is enabled by default. Disabling this option
-- will also affect EC2-Classic instances using ClassicLink. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink>
-- in the /Amazon EC2 guide/.
--
-- It can take some time for the status change to be completed.
newUpdateResolverConfig ::
-- | 'resourceId'
Prelude.Text ->
-- | 'autodefinedReverseFlag'
AutodefinedReverseFlag ->
UpdateResolverConfig
newUpdateResolverConfig
pResourceId_
pAutodefinedReverseFlag_ =
UpdateResolverConfig'
{ resourceId = pResourceId_,
autodefinedReverseFlag = pAutodefinedReverseFlag_
}
-- | Resource ID of the Amazon VPC that you want to update the Resolver
-- configuration for.
updateResolverConfig_resourceId :: Lens.Lens' UpdateResolverConfig Prelude.Text
updateResolverConfig_resourceId = Lens.lens (\UpdateResolverConfig' {resourceId} -> resourceId) (\s@UpdateResolverConfig' {} a -> s {resourceId = a} :: UpdateResolverConfig)
-- | Indicates whether or not the Resolver will create autodefined rules for
-- reverse DNS lookups. This is enabled by default. Disabling this option
-- will also affect EC2-Classic instances using ClassicLink. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html ClassicLink>
-- in the /Amazon EC2 guide/.
--
-- It can take some time for the status change to be completed.
updateResolverConfig_autodefinedReverseFlag :: Lens.Lens' UpdateResolverConfig AutodefinedReverseFlag
updateResolverConfig_autodefinedReverseFlag = Lens.lens (\UpdateResolverConfig' {autodefinedReverseFlag} -> autodefinedReverseFlag) (\s@UpdateResolverConfig' {} a -> s {autodefinedReverseFlag = a} :: UpdateResolverConfig)
instance Core.AWSRequest UpdateResolverConfig where
type
AWSResponse UpdateResolverConfig =
UpdateResolverConfigResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
UpdateResolverConfigResponse'
Prelude.<$> (x Data..?> "ResolverConfig")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable UpdateResolverConfig where
hashWithSalt _salt UpdateResolverConfig' {..} =
_salt
`Prelude.hashWithSalt` resourceId
`Prelude.hashWithSalt` autodefinedReverseFlag
instance Prelude.NFData UpdateResolverConfig where
rnf UpdateResolverConfig' {..} =
Prelude.rnf resourceId
`Prelude.seq` Prelude.rnf autodefinedReverseFlag
instance Data.ToHeaders UpdateResolverConfig where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "Route53Resolver.UpdateResolverConfig" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateResolverConfig where
toJSON UpdateResolverConfig' {..} =
Data.object
( Prelude.catMaybes
[ Prelude.Just ("ResourceId" Data..= resourceId),
Prelude.Just
( "AutodefinedReverseFlag"
Data..= autodefinedReverseFlag
)
]
)
instance Data.ToPath UpdateResolverConfig where
toPath = Prelude.const "/"
instance Data.ToQuery UpdateResolverConfig where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newUpdateResolverConfigResponse' smart constructor.
data UpdateResolverConfigResponse = UpdateResolverConfigResponse'
{ -- | An array that contains settings for the specified Resolver
-- configuration.
resolverConfig :: Prelude.Maybe ResolverConfig,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateResolverConfigResponse' 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:
--
-- 'resolverConfig', 'updateResolverConfigResponse_resolverConfig' - An array that contains settings for the specified Resolver
-- configuration.
--
-- 'httpStatus', 'updateResolverConfigResponse_httpStatus' - The response's http status code.
newUpdateResolverConfigResponse ::
-- | 'httpStatus'
Prelude.Int ->
UpdateResolverConfigResponse
newUpdateResolverConfigResponse pHttpStatus_ =
UpdateResolverConfigResponse'
{ resolverConfig =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | An array that contains settings for the specified Resolver
-- configuration.
updateResolverConfigResponse_resolverConfig :: Lens.Lens' UpdateResolverConfigResponse (Prelude.Maybe ResolverConfig)
updateResolverConfigResponse_resolverConfig = Lens.lens (\UpdateResolverConfigResponse' {resolverConfig} -> resolverConfig) (\s@UpdateResolverConfigResponse' {} a -> s {resolverConfig = a} :: UpdateResolverConfigResponse)
-- | The response's http status code.
updateResolverConfigResponse_httpStatus :: Lens.Lens' UpdateResolverConfigResponse Prelude.Int
updateResolverConfigResponse_httpStatus = Lens.lens (\UpdateResolverConfigResponse' {httpStatus} -> httpStatus) (\s@UpdateResolverConfigResponse' {} a -> s {httpStatus = a} :: UpdateResolverConfigResponse)
instance Prelude.NFData UpdateResolverConfigResponse where
rnf UpdateResolverConfigResponse' {..} =
Prelude.rnf resolverConfig
`Prelude.seq` Prelude.rnf httpStatus