amazonka-athena-2.0: gen/Amazonka/Athena/UpdateNamedQuery.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.Athena.UpdateNamedQuery
-- 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 a NamedQuery object. The database or workgroup cannot be
-- updated.
module Amazonka.Athena.UpdateNamedQuery
( -- * Creating a Request
UpdateNamedQuery (..),
newUpdateNamedQuery,
-- * Request Lenses
updateNamedQuery_description,
updateNamedQuery_namedQueryId,
updateNamedQuery_name,
updateNamedQuery_queryString,
-- * Destructuring the Response
UpdateNamedQueryResponse (..),
newUpdateNamedQueryResponse,
-- * Response Lenses
updateNamedQueryResponse_httpStatus,
)
where
import Amazonka.Athena.Types
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
-- | /See:/ 'newUpdateNamedQuery' smart constructor.
data UpdateNamedQuery = UpdateNamedQuery'
{ -- | The query description.
description :: Prelude.Maybe Prelude.Text,
-- | The unique identifier (UUID) of the query.
namedQueryId :: Prelude.Text,
-- | The name of the query.
name :: Prelude.Text,
-- | The contents of the query with all query statements.
queryString :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateNamedQuery' 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:
--
-- 'description', 'updateNamedQuery_description' - The query description.
--
-- 'namedQueryId', 'updateNamedQuery_namedQueryId' - The unique identifier (UUID) of the query.
--
-- 'name', 'updateNamedQuery_name' - The name of the query.
--
-- 'queryString', 'updateNamedQuery_queryString' - The contents of the query with all query statements.
newUpdateNamedQuery ::
-- | 'namedQueryId'
Prelude.Text ->
-- | 'name'
Prelude.Text ->
-- | 'queryString'
Prelude.Text ->
UpdateNamedQuery
newUpdateNamedQuery
pNamedQueryId_
pName_
pQueryString_ =
UpdateNamedQuery'
{ description = Prelude.Nothing,
namedQueryId = pNamedQueryId_,
name = pName_,
queryString = pQueryString_
}
-- | The query description.
updateNamedQuery_description :: Lens.Lens' UpdateNamedQuery (Prelude.Maybe Prelude.Text)
updateNamedQuery_description = Lens.lens (\UpdateNamedQuery' {description} -> description) (\s@UpdateNamedQuery' {} a -> s {description = a} :: UpdateNamedQuery)
-- | The unique identifier (UUID) of the query.
updateNamedQuery_namedQueryId :: Lens.Lens' UpdateNamedQuery Prelude.Text
updateNamedQuery_namedQueryId = Lens.lens (\UpdateNamedQuery' {namedQueryId} -> namedQueryId) (\s@UpdateNamedQuery' {} a -> s {namedQueryId = a} :: UpdateNamedQuery)
-- | The name of the query.
updateNamedQuery_name :: Lens.Lens' UpdateNamedQuery Prelude.Text
updateNamedQuery_name = Lens.lens (\UpdateNamedQuery' {name} -> name) (\s@UpdateNamedQuery' {} a -> s {name = a} :: UpdateNamedQuery)
-- | The contents of the query with all query statements.
updateNamedQuery_queryString :: Lens.Lens' UpdateNamedQuery Prelude.Text
updateNamedQuery_queryString = Lens.lens (\UpdateNamedQuery' {queryString} -> queryString) (\s@UpdateNamedQuery' {} a -> s {queryString = a} :: UpdateNamedQuery)
instance Core.AWSRequest UpdateNamedQuery where
type
AWSResponse UpdateNamedQuery =
UpdateNamedQueryResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveEmpty
( \s h x ->
UpdateNamedQueryResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable UpdateNamedQuery where
hashWithSalt _salt UpdateNamedQuery' {..} =
_salt
`Prelude.hashWithSalt` description
`Prelude.hashWithSalt` namedQueryId
`Prelude.hashWithSalt` name
`Prelude.hashWithSalt` queryString
instance Prelude.NFData UpdateNamedQuery where
rnf UpdateNamedQuery' {..} =
Prelude.rnf description
`Prelude.seq` Prelude.rnf namedQueryId
`Prelude.seq` Prelude.rnf name
`Prelude.seq` Prelude.rnf queryString
instance Data.ToHeaders UpdateNamedQuery where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "X-Amz-Target"
Data.=# ( "AmazonAthena.UpdateNamedQuery" ::
Prelude.ByteString
),
"Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateNamedQuery where
toJSON UpdateNamedQuery' {..} =
Data.object
( Prelude.catMaybes
[ ("Description" Data..=) Prelude.<$> description,
Prelude.Just ("NamedQueryId" Data..= namedQueryId),
Prelude.Just ("Name" Data..= name),
Prelude.Just ("QueryString" Data..= queryString)
]
)
instance Data.ToPath UpdateNamedQuery where
toPath = Prelude.const "/"
instance Data.ToQuery UpdateNamedQuery where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newUpdateNamedQueryResponse' smart constructor.
data UpdateNamedQueryResponse = UpdateNamedQueryResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateNamedQueryResponse' 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:
--
-- 'httpStatus', 'updateNamedQueryResponse_httpStatus' - The response's http status code.
newUpdateNamedQueryResponse ::
-- | 'httpStatus'
Prelude.Int ->
UpdateNamedQueryResponse
newUpdateNamedQueryResponse pHttpStatus_ =
UpdateNamedQueryResponse'
{ httpStatus =
pHttpStatus_
}
-- | The response's http status code.
updateNamedQueryResponse_httpStatus :: Lens.Lens' UpdateNamedQueryResponse Prelude.Int
updateNamedQueryResponse_httpStatus = Lens.lens (\UpdateNamedQueryResponse' {httpStatus} -> httpStatus) (\s@UpdateNamedQueryResponse' {} a -> s {httpStatus = a} :: UpdateNamedQueryResponse)
instance Prelude.NFData UpdateNamedQueryResponse where
rnf UpdateNamedQueryResponse' {..} =
Prelude.rnf httpStatus