{-# 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.ApiGatewayV2.UpdateDomainName
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a domain name.
module Amazonka.ApiGatewayV2.UpdateDomainName
  ( -- * Creating a Request
    UpdateDomainName (..),
    newUpdateDomainName,

    -- * Request Lenses
    updateDomainName_domainNameConfigurations,
    updateDomainName_mutualTlsAuthentication,
    updateDomainName_domainName,

    -- * Destructuring the Response
    UpdateDomainNameResponse (..),
    newUpdateDomainNameResponse,

    -- * Response Lenses
    updateDomainNameResponse_domainNameConfigurations,
    updateDomainNameResponse_domainName,
    updateDomainNameResponse_mutualTlsAuthentication,
    updateDomainNameResponse_apiMappingSelectionExpression,
    updateDomainNameResponse_tags,
    updateDomainNameResponse_httpStatus,
  )
where

import Amazonka.ApiGatewayV2.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Updates a DomainName.
--
-- /See:/ 'newUpdateDomainName' smart constructor.
data UpdateDomainName = UpdateDomainName'
  { -- | The domain name configurations.
    UpdateDomainName -> Maybe [DomainNameConfiguration]
domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],
    -- | The mutual TLS authentication configuration for a custom domain name.
    UpdateDomainName -> Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthenticationInput,
    -- | The domain name.
    UpdateDomainName -> Text
domainName :: Prelude.Text
  }
  deriving (UpdateDomainName -> UpdateDomainName -> Bool
(UpdateDomainName -> UpdateDomainName -> Bool)
-> (UpdateDomainName -> UpdateDomainName -> Bool)
-> Eq UpdateDomainName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDomainName -> UpdateDomainName -> Bool
$c/= :: UpdateDomainName -> UpdateDomainName -> Bool
== :: UpdateDomainName -> UpdateDomainName -> Bool
$c== :: UpdateDomainName -> UpdateDomainName -> Bool
Prelude.Eq, ReadPrec [UpdateDomainName]
ReadPrec UpdateDomainName
Int -> ReadS UpdateDomainName
ReadS [UpdateDomainName]
(Int -> ReadS UpdateDomainName)
-> ReadS [UpdateDomainName]
-> ReadPrec UpdateDomainName
-> ReadPrec [UpdateDomainName]
-> Read UpdateDomainName
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDomainName]
$creadListPrec :: ReadPrec [UpdateDomainName]
readPrec :: ReadPrec UpdateDomainName
$creadPrec :: ReadPrec UpdateDomainName
readList :: ReadS [UpdateDomainName]
$creadList :: ReadS [UpdateDomainName]
readsPrec :: Int -> ReadS UpdateDomainName
$creadsPrec :: Int -> ReadS UpdateDomainName
Prelude.Read, Int -> UpdateDomainName -> ShowS
[UpdateDomainName] -> ShowS
UpdateDomainName -> String
(Int -> UpdateDomainName -> ShowS)
-> (UpdateDomainName -> String)
-> ([UpdateDomainName] -> ShowS)
-> Show UpdateDomainName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDomainName] -> ShowS
$cshowList :: [UpdateDomainName] -> ShowS
show :: UpdateDomainName -> String
$cshow :: UpdateDomainName -> String
showsPrec :: Int -> UpdateDomainName -> ShowS
$cshowsPrec :: Int -> UpdateDomainName -> ShowS
Prelude.Show, (forall x. UpdateDomainName -> Rep UpdateDomainName x)
-> (forall x. Rep UpdateDomainName x -> UpdateDomainName)
-> Generic UpdateDomainName
forall x. Rep UpdateDomainName x -> UpdateDomainName
forall x. UpdateDomainName -> Rep UpdateDomainName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateDomainName x -> UpdateDomainName
$cfrom :: forall x. UpdateDomainName -> Rep UpdateDomainName x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDomainName' 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:
--
-- 'domainNameConfigurations', 'updateDomainName_domainNameConfigurations' - The domain name configurations.
--
-- 'mutualTlsAuthentication', 'updateDomainName_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.
--
-- 'domainName', 'updateDomainName_domainName' - The domain name.
newUpdateDomainName ::
  -- | 'domainName'
  Prelude.Text ->
  UpdateDomainName
newUpdateDomainName :: Text -> UpdateDomainName
newUpdateDomainName Text
pDomainName_ =
  UpdateDomainName' :: Maybe [DomainNameConfiguration]
-> Maybe MutualTlsAuthenticationInput -> Text -> UpdateDomainName
UpdateDomainName'
    { $sel:domainNameConfigurations:UpdateDomainName' :: Maybe [DomainNameConfiguration]
domainNameConfigurations =
        Maybe [DomainNameConfiguration]
forall a. Maybe a
Prelude.Nothing,
      $sel:mutualTlsAuthentication:UpdateDomainName' :: Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication = Maybe MutualTlsAuthenticationInput
forall a. Maybe a
Prelude.Nothing,
      $sel:domainName:UpdateDomainName' :: Text
domainName = Text
pDomainName_
    }

-- | The domain name configurations.
updateDomainName_domainNameConfigurations :: Lens.Lens' UpdateDomainName (Prelude.Maybe [DomainNameConfiguration])
updateDomainName_domainNameConfigurations :: (Maybe [DomainNameConfiguration]
 -> f (Maybe [DomainNameConfiguration]))
-> UpdateDomainName -> f UpdateDomainName
updateDomainName_domainNameConfigurations = (UpdateDomainName -> Maybe [DomainNameConfiguration])
-> (UpdateDomainName
    -> Maybe [DomainNameConfiguration] -> UpdateDomainName)
-> Lens
     UpdateDomainName
     UpdateDomainName
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainName' {Maybe [DomainNameConfiguration]
domainNameConfigurations :: Maybe [DomainNameConfiguration]
$sel:domainNameConfigurations:UpdateDomainName' :: UpdateDomainName -> Maybe [DomainNameConfiguration]
domainNameConfigurations} -> Maybe [DomainNameConfiguration]
domainNameConfigurations) (\s :: UpdateDomainName
s@UpdateDomainName' {} Maybe [DomainNameConfiguration]
a -> UpdateDomainName
s {$sel:domainNameConfigurations:UpdateDomainName' :: Maybe [DomainNameConfiguration]
domainNameConfigurations = Maybe [DomainNameConfiguration]
a} :: UpdateDomainName) ((Maybe [DomainNameConfiguration]
  -> f (Maybe [DomainNameConfiguration]))
 -> UpdateDomainName -> f UpdateDomainName)
-> ((Maybe [DomainNameConfiguration]
     -> f (Maybe [DomainNameConfiguration]))
    -> Maybe [DomainNameConfiguration]
    -> f (Maybe [DomainNameConfiguration]))
-> (Maybe [DomainNameConfiguration]
    -> f (Maybe [DomainNameConfiguration]))
-> UpdateDomainName
-> f UpdateDomainName
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
-> Iso
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
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 AnIso
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The mutual TLS authentication configuration for a custom domain name.
updateDomainName_mutualTlsAuthentication :: Lens.Lens' UpdateDomainName (Prelude.Maybe MutualTlsAuthenticationInput)
updateDomainName_mutualTlsAuthentication :: (Maybe MutualTlsAuthenticationInput
 -> f (Maybe MutualTlsAuthenticationInput))
-> UpdateDomainName -> f UpdateDomainName
updateDomainName_mutualTlsAuthentication = (UpdateDomainName -> Maybe MutualTlsAuthenticationInput)
-> (UpdateDomainName
    -> Maybe MutualTlsAuthenticationInput -> UpdateDomainName)
-> Lens
     UpdateDomainName
     UpdateDomainName
     (Maybe MutualTlsAuthenticationInput)
     (Maybe MutualTlsAuthenticationInput)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainName' {Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication :: Maybe MutualTlsAuthenticationInput
$sel:mutualTlsAuthentication:UpdateDomainName' :: UpdateDomainName -> Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication} -> Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication) (\s :: UpdateDomainName
s@UpdateDomainName' {} Maybe MutualTlsAuthenticationInput
a -> UpdateDomainName
s {$sel:mutualTlsAuthentication:UpdateDomainName' :: Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication = Maybe MutualTlsAuthenticationInput
a} :: UpdateDomainName)

-- | The domain name.
updateDomainName_domainName :: Lens.Lens' UpdateDomainName Prelude.Text
updateDomainName_domainName :: (Text -> f Text) -> UpdateDomainName -> f UpdateDomainName
updateDomainName_domainName = (UpdateDomainName -> Text)
-> (UpdateDomainName -> Text -> UpdateDomainName)
-> Lens UpdateDomainName UpdateDomainName Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainName' {Text
domainName :: Text
$sel:domainName:UpdateDomainName' :: UpdateDomainName -> Text
domainName} -> Text
domainName) (\s :: UpdateDomainName
s@UpdateDomainName' {} Text
a -> UpdateDomainName
s {$sel:domainName:UpdateDomainName' :: Text
domainName = Text
a} :: UpdateDomainName)

instance Core.AWSRequest UpdateDomainName where
  type
    AWSResponse UpdateDomainName =
      UpdateDomainNameResponse
  request :: UpdateDomainName -> Request UpdateDomainName
request = Service -> UpdateDomainName -> Request UpdateDomainName
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy UpdateDomainName
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateDomainName)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse UpdateDomainName))
-> Logger
-> Service
-> Proxy UpdateDomainName
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateDomainName)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [DomainNameConfiguration]
-> Maybe Text
-> Maybe MutualTlsAuthentication
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> UpdateDomainNameResponse
UpdateDomainNameResponse'
            (Maybe [DomainNameConfiguration]
 -> Maybe Text
 -> Maybe MutualTlsAuthentication
 -> Maybe Text
 -> Maybe (HashMap Text Text)
 -> Int
 -> UpdateDomainNameResponse)
-> Either String (Maybe [DomainNameConfiguration])
-> Either
     String
     (Maybe Text
      -> Maybe MutualTlsAuthentication
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> UpdateDomainNameResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x Object
-> Text -> Either String (Maybe (Maybe [DomainNameConfiguration]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"domainNameConfigurations"
                            Either String (Maybe (Maybe [DomainNameConfiguration]))
-> Maybe [DomainNameConfiguration]
-> Either String (Maybe [DomainNameConfiguration])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [DomainNameConfiguration]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Text
   -> Maybe MutualTlsAuthentication
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> UpdateDomainNameResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe MutualTlsAuthentication
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> UpdateDomainNameResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"domainName")
            Either
  String
  (Maybe MutualTlsAuthentication
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> UpdateDomainNameResponse)
-> Either String (Maybe MutualTlsAuthentication)
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text) -> Int -> UpdateDomainNameResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe MutualTlsAuthentication)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"mutualTlsAuthentication")
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text Text) -> Int -> UpdateDomainNameResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text) -> Int -> UpdateDomainNameResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"apiMappingSelectionExpression")
            Either
  String
  (Maybe (HashMap Text Text) -> Int -> UpdateDomainNameResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either String (Int -> UpdateDomainNameResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"tags" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either String (Int -> UpdateDomainNameResponse)
-> Either String Int -> Either String UpdateDomainNameResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateDomainName

instance Prelude.NFData UpdateDomainName

instance Core.ToHeaders UpdateDomainName where
  toHeaders :: UpdateDomainName -> ResponseHeaders
toHeaders =
    ResponseHeaders -> UpdateDomainName -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON UpdateDomainName where
  toJSON :: UpdateDomainName -> Value
toJSON UpdateDomainName' {Maybe [DomainNameConfiguration]
Maybe MutualTlsAuthenticationInput
Text
domainName :: Text
mutualTlsAuthentication :: Maybe MutualTlsAuthenticationInput
domainNameConfigurations :: Maybe [DomainNameConfiguration]
$sel:domainName:UpdateDomainName' :: UpdateDomainName -> Text
$sel:mutualTlsAuthentication:UpdateDomainName' :: UpdateDomainName -> Maybe MutualTlsAuthenticationInput
$sel:domainNameConfigurations:UpdateDomainName' :: UpdateDomainName -> Maybe [DomainNameConfiguration]
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"domainNameConfigurations" Text -> [DomainNameConfiguration] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([DomainNameConfiguration] -> Pair)
-> Maybe [DomainNameConfiguration] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [DomainNameConfiguration]
domainNameConfigurations,
            (Text
"mutualTlsAuthentication" Text -> MutualTlsAuthenticationInput -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (MutualTlsAuthenticationInput -> Pair)
-> Maybe MutualTlsAuthenticationInput -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MutualTlsAuthenticationInput
mutualTlsAuthentication
          ]
      )

instance Core.ToPath UpdateDomainName where
  toPath :: UpdateDomainName -> ByteString
toPath UpdateDomainName' {Maybe [DomainNameConfiguration]
Maybe MutualTlsAuthenticationInput
Text
domainName :: Text
mutualTlsAuthentication :: Maybe MutualTlsAuthenticationInput
domainNameConfigurations :: Maybe [DomainNameConfiguration]
$sel:domainName:UpdateDomainName' :: UpdateDomainName -> Text
$sel:mutualTlsAuthentication:UpdateDomainName' :: UpdateDomainName -> Maybe MutualTlsAuthenticationInput
$sel:domainNameConfigurations:UpdateDomainName' :: UpdateDomainName -> Maybe [DomainNameConfiguration]
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/v2/domainnames/", Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
domainName]

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

-- | /See:/ 'newUpdateDomainNameResponse' smart constructor.
data UpdateDomainNameResponse = UpdateDomainNameResponse'
  { -- | The domain name configurations.
    UpdateDomainNameResponse -> Maybe [DomainNameConfiguration]
domainNameConfigurations :: Prelude.Maybe [DomainNameConfiguration],
    -- | The name of the DomainName resource.
    UpdateDomainNameResponse -> Maybe Text
domainName :: Prelude.Maybe Prelude.Text,
    -- | The mutual TLS authentication configuration for a custom domain name.
    UpdateDomainNameResponse -> Maybe MutualTlsAuthentication
mutualTlsAuthentication :: Prelude.Maybe MutualTlsAuthentication,
    -- | The API mapping selection expression.
    UpdateDomainNameResponse -> Maybe Text
apiMappingSelectionExpression :: Prelude.Maybe Prelude.Text,
    -- | The collection of tags associated with a domain name.
    UpdateDomainNameResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    UpdateDomainNameResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool
(UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool)
-> (UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool)
-> Eq UpdateDomainNameResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool
$c/= :: UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool
== :: UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool
$c== :: UpdateDomainNameResponse -> UpdateDomainNameResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDomainNameResponse]
ReadPrec UpdateDomainNameResponse
Int -> ReadS UpdateDomainNameResponse
ReadS [UpdateDomainNameResponse]
(Int -> ReadS UpdateDomainNameResponse)
-> ReadS [UpdateDomainNameResponse]
-> ReadPrec UpdateDomainNameResponse
-> ReadPrec [UpdateDomainNameResponse]
-> Read UpdateDomainNameResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDomainNameResponse]
$creadListPrec :: ReadPrec [UpdateDomainNameResponse]
readPrec :: ReadPrec UpdateDomainNameResponse
$creadPrec :: ReadPrec UpdateDomainNameResponse
readList :: ReadS [UpdateDomainNameResponse]
$creadList :: ReadS [UpdateDomainNameResponse]
readsPrec :: Int -> ReadS UpdateDomainNameResponse
$creadsPrec :: Int -> ReadS UpdateDomainNameResponse
Prelude.Read, Int -> UpdateDomainNameResponse -> ShowS
[UpdateDomainNameResponse] -> ShowS
UpdateDomainNameResponse -> String
(Int -> UpdateDomainNameResponse -> ShowS)
-> (UpdateDomainNameResponse -> String)
-> ([UpdateDomainNameResponse] -> ShowS)
-> Show UpdateDomainNameResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDomainNameResponse] -> ShowS
$cshowList :: [UpdateDomainNameResponse] -> ShowS
show :: UpdateDomainNameResponse -> String
$cshow :: UpdateDomainNameResponse -> String
showsPrec :: Int -> UpdateDomainNameResponse -> ShowS
$cshowsPrec :: Int -> UpdateDomainNameResponse -> ShowS
Prelude.Show, (forall x.
 UpdateDomainNameResponse -> Rep UpdateDomainNameResponse x)
-> (forall x.
    Rep UpdateDomainNameResponse x -> UpdateDomainNameResponse)
-> Generic UpdateDomainNameResponse
forall x.
Rep UpdateDomainNameResponse x -> UpdateDomainNameResponse
forall x.
UpdateDomainNameResponse -> Rep UpdateDomainNameResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDomainNameResponse x -> UpdateDomainNameResponse
$cfrom :: forall x.
UpdateDomainNameResponse -> Rep UpdateDomainNameResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDomainNameResponse' 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:
--
-- 'domainNameConfigurations', 'updateDomainNameResponse_domainNameConfigurations' - The domain name configurations.
--
-- 'domainName', 'updateDomainNameResponse_domainName' - The name of the DomainName resource.
--
-- 'mutualTlsAuthentication', 'updateDomainNameResponse_mutualTlsAuthentication' - The mutual TLS authentication configuration for a custom domain name.
--
-- 'apiMappingSelectionExpression', 'updateDomainNameResponse_apiMappingSelectionExpression' - The API mapping selection expression.
--
-- 'tags', 'updateDomainNameResponse_tags' - The collection of tags associated with a domain name.
--
-- 'httpStatus', 'updateDomainNameResponse_httpStatus' - The response's http status code.
newUpdateDomainNameResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateDomainNameResponse
newUpdateDomainNameResponse :: Int -> UpdateDomainNameResponse
newUpdateDomainNameResponse Int
pHttpStatus_ =
  UpdateDomainNameResponse' :: Maybe [DomainNameConfiguration]
-> Maybe Text
-> Maybe MutualTlsAuthentication
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> UpdateDomainNameResponse
UpdateDomainNameResponse'
    { $sel:domainNameConfigurations:UpdateDomainNameResponse' :: Maybe [DomainNameConfiguration]
domainNameConfigurations =
        Maybe [DomainNameConfiguration]
forall a. Maybe a
Prelude.Nothing,
      $sel:domainName:UpdateDomainNameResponse' :: Maybe Text
domainName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:mutualTlsAuthentication:UpdateDomainNameResponse' :: Maybe MutualTlsAuthentication
mutualTlsAuthentication = Maybe MutualTlsAuthentication
forall a. Maybe a
Prelude.Nothing,
      $sel:apiMappingSelectionExpression:UpdateDomainNameResponse' :: Maybe Text
apiMappingSelectionExpression = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:UpdateDomainNameResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateDomainNameResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The domain name configurations.
updateDomainNameResponse_domainNameConfigurations :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe [DomainNameConfiguration])
updateDomainNameResponse_domainNameConfigurations :: (Maybe [DomainNameConfiguration]
 -> f (Maybe [DomainNameConfiguration]))
-> UpdateDomainNameResponse -> f UpdateDomainNameResponse
updateDomainNameResponse_domainNameConfigurations = (UpdateDomainNameResponse -> Maybe [DomainNameConfiguration])
-> (UpdateDomainNameResponse
    -> Maybe [DomainNameConfiguration] -> UpdateDomainNameResponse)
-> Lens
     UpdateDomainNameResponse
     UpdateDomainNameResponse
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainNameResponse' {Maybe [DomainNameConfiguration]
domainNameConfigurations :: Maybe [DomainNameConfiguration]
$sel:domainNameConfigurations:UpdateDomainNameResponse' :: UpdateDomainNameResponse -> Maybe [DomainNameConfiguration]
domainNameConfigurations} -> Maybe [DomainNameConfiguration]
domainNameConfigurations) (\s :: UpdateDomainNameResponse
s@UpdateDomainNameResponse' {} Maybe [DomainNameConfiguration]
a -> UpdateDomainNameResponse
s {$sel:domainNameConfigurations:UpdateDomainNameResponse' :: Maybe [DomainNameConfiguration]
domainNameConfigurations = Maybe [DomainNameConfiguration]
a} :: UpdateDomainNameResponse) ((Maybe [DomainNameConfiguration]
  -> f (Maybe [DomainNameConfiguration]))
 -> UpdateDomainNameResponse -> f UpdateDomainNameResponse)
-> ((Maybe [DomainNameConfiguration]
     -> f (Maybe [DomainNameConfiguration]))
    -> Maybe [DomainNameConfiguration]
    -> f (Maybe [DomainNameConfiguration]))
-> (Maybe [DomainNameConfiguration]
    -> f (Maybe [DomainNameConfiguration]))
-> UpdateDomainNameResponse
-> f UpdateDomainNameResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
-> Iso
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
     (Maybe [DomainNameConfiguration])
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 AnIso
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
  [DomainNameConfiguration]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The name of the DomainName resource.
updateDomainNameResponse_domainName :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe Prelude.Text)
updateDomainNameResponse_domainName :: (Maybe Text -> f (Maybe Text))
-> UpdateDomainNameResponse -> f UpdateDomainNameResponse
updateDomainNameResponse_domainName = (UpdateDomainNameResponse -> Maybe Text)
-> (UpdateDomainNameResponse
    -> Maybe Text -> UpdateDomainNameResponse)
-> Lens
     UpdateDomainNameResponse
     UpdateDomainNameResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainNameResponse' {Maybe Text
domainName :: Maybe Text
$sel:domainName:UpdateDomainNameResponse' :: UpdateDomainNameResponse -> Maybe Text
domainName} -> Maybe Text
domainName) (\s :: UpdateDomainNameResponse
s@UpdateDomainNameResponse' {} Maybe Text
a -> UpdateDomainNameResponse
s {$sel:domainName:UpdateDomainNameResponse' :: Maybe Text
domainName = Maybe Text
a} :: UpdateDomainNameResponse)

-- | The mutual TLS authentication configuration for a custom domain name.
updateDomainNameResponse_mutualTlsAuthentication :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe MutualTlsAuthentication)
updateDomainNameResponse_mutualTlsAuthentication :: (Maybe MutualTlsAuthentication
 -> f (Maybe MutualTlsAuthentication))
-> UpdateDomainNameResponse -> f UpdateDomainNameResponse
updateDomainNameResponse_mutualTlsAuthentication = (UpdateDomainNameResponse -> Maybe MutualTlsAuthentication)
-> (UpdateDomainNameResponse
    -> Maybe MutualTlsAuthentication -> UpdateDomainNameResponse)
-> Lens
     UpdateDomainNameResponse
     UpdateDomainNameResponse
     (Maybe MutualTlsAuthentication)
     (Maybe MutualTlsAuthentication)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainNameResponse' {Maybe MutualTlsAuthentication
mutualTlsAuthentication :: Maybe MutualTlsAuthentication
$sel:mutualTlsAuthentication:UpdateDomainNameResponse' :: UpdateDomainNameResponse -> Maybe MutualTlsAuthentication
mutualTlsAuthentication} -> Maybe MutualTlsAuthentication
mutualTlsAuthentication) (\s :: UpdateDomainNameResponse
s@UpdateDomainNameResponse' {} Maybe MutualTlsAuthentication
a -> UpdateDomainNameResponse
s {$sel:mutualTlsAuthentication:UpdateDomainNameResponse' :: Maybe MutualTlsAuthentication
mutualTlsAuthentication = Maybe MutualTlsAuthentication
a} :: UpdateDomainNameResponse)

-- | The API mapping selection expression.
updateDomainNameResponse_apiMappingSelectionExpression :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe Prelude.Text)
updateDomainNameResponse_apiMappingSelectionExpression :: (Maybe Text -> f (Maybe Text))
-> UpdateDomainNameResponse -> f UpdateDomainNameResponse
updateDomainNameResponse_apiMappingSelectionExpression = (UpdateDomainNameResponse -> Maybe Text)
-> (UpdateDomainNameResponse
    -> Maybe Text -> UpdateDomainNameResponse)
-> Lens
     UpdateDomainNameResponse
     UpdateDomainNameResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainNameResponse' {Maybe Text
apiMappingSelectionExpression :: Maybe Text
$sel:apiMappingSelectionExpression:UpdateDomainNameResponse' :: UpdateDomainNameResponse -> Maybe Text
apiMappingSelectionExpression} -> Maybe Text
apiMappingSelectionExpression) (\s :: UpdateDomainNameResponse
s@UpdateDomainNameResponse' {} Maybe Text
a -> UpdateDomainNameResponse
s {$sel:apiMappingSelectionExpression:UpdateDomainNameResponse' :: Maybe Text
apiMappingSelectionExpression = Maybe Text
a} :: UpdateDomainNameResponse)

-- | The collection of tags associated with a domain name.
updateDomainNameResponse_tags :: Lens.Lens' UpdateDomainNameResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
updateDomainNameResponse_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> UpdateDomainNameResponse -> f UpdateDomainNameResponse
updateDomainNameResponse_tags = (UpdateDomainNameResponse -> Maybe (HashMap Text Text))
-> (UpdateDomainNameResponse
    -> Maybe (HashMap Text Text) -> UpdateDomainNameResponse)
-> Lens
     UpdateDomainNameResponse
     UpdateDomainNameResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDomainNameResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:UpdateDomainNameResponse' :: UpdateDomainNameResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: UpdateDomainNameResponse
s@UpdateDomainNameResponse' {} Maybe (HashMap Text Text)
a -> UpdateDomainNameResponse
s {$sel:tags:UpdateDomainNameResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: UpdateDomainNameResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> UpdateDomainNameResponse -> f UpdateDomainNameResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> UpdateDomainNameResponse
-> f UpdateDomainNameResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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 AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance Prelude.NFData UpdateDomainNameResponse