{-# 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.KinesisAnalytics.UpdateApplication -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- This documentation is for version 1 of the Amazon Kinesis Data Analytics -- API, which only supports SQL applications. Version 2 of the API supports -- SQL and Java applications. For more information about version 2, see -- . -- -- Updates an existing Amazon Kinesis Analytics application. Using this -- API, you can update application code, input configuration, and output -- configuration. -- -- Note that Amazon Kinesis Analytics updates the -- @CurrentApplicationVersionId@ each time you update your application. -- -- This operation requires permission for the -- @kinesisanalytics:UpdateApplication@ action. module Amazonka.KinesisAnalytics.UpdateApplication ( -- * Creating a Request UpdateApplication (..), newUpdateApplication, -- * Request Lenses updateApplication_applicationName, updateApplication_currentApplicationVersionId, updateApplication_applicationUpdate, -- * Destructuring the Response UpdateApplicationResponse (..), newUpdateApplicationResponse, -- * Response Lenses updateApplicationResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.KinesisAnalytics.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newUpdateApplication' smart constructor. data UpdateApplication = UpdateApplication' { -- | Name of the Amazon Kinesis Analytics application to update. applicationName :: Prelude.Text, -- | The current application version ID. You can use the -- -- operation to get this value. currentApplicationVersionId :: Prelude.Natural, -- | Describes application updates. applicationUpdate :: ApplicationUpdate } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateApplication' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'applicationName', 'updateApplication_applicationName' - Name of the Amazon Kinesis Analytics application to update. -- -- 'currentApplicationVersionId', 'updateApplication_currentApplicationVersionId' - The current application version ID. You can use the -- -- operation to get this value. -- -- 'applicationUpdate', 'updateApplication_applicationUpdate' - Describes application updates. newUpdateApplication :: -- | 'applicationName' Prelude.Text -> -- | 'currentApplicationVersionId' Prelude.Natural -> -- | 'applicationUpdate' ApplicationUpdate -> UpdateApplication newUpdateApplication pApplicationName_ pCurrentApplicationVersionId_ pApplicationUpdate_ = UpdateApplication' { applicationName = pApplicationName_, currentApplicationVersionId = pCurrentApplicationVersionId_, applicationUpdate = pApplicationUpdate_ } -- | Name of the Amazon Kinesis Analytics application to update. updateApplication_applicationName :: Lens.Lens' UpdateApplication Prelude.Text updateApplication_applicationName = Lens.lens (\UpdateApplication' {applicationName} -> applicationName) (\s@UpdateApplication' {} a -> s {applicationName = a} :: UpdateApplication) -- | The current application version ID. You can use the -- -- operation to get this value. updateApplication_currentApplicationVersionId :: Lens.Lens' UpdateApplication Prelude.Natural updateApplication_currentApplicationVersionId = Lens.lens (\UpdateApplication' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@UpdateApplication' {} a -> s {currentApplicationVersionId = a} :: UpdateApplication) -- | Describes application updates. updateApplication_applicationUpdate :: Lens.Lens' UpdateApplication ApplicationUpdate updateApplication_applicationUpdate = Lens.lens (\UpdateApplication' {applicationUpdate} -> applicationUpdate) (\s@UpdateApplication' {} a -> s {applicationUpdate = a} :: UpdateApplication) instance Core.AWSRequest UpdateApplication where type AWSResponse UpdateApplication = UpdateApplicationResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveEmpty ( \s h x -> UpdateApplicationResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable UpdateApplication where hashWithSalt _salt UpdateApplication' {..} = _salt `Prelude.hashWithSalt` applicationName `Prelude.hashWithSalt` currentApplicationVersionId `Prelude.hashWithSalt` applicationUpdate instance Prelude.NFData UpdateApplication where rnf UpdateApplication' {..} = Prelude.rnf applicationName `Prelude.seq` Prelude.rnf currentApplicationVersionId `Prelude.seq` Prelude.rnf applicationUpdate instance Data.ToHeaders UpdateApplication where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "KinesisAnalytics_20150814.UpdateApplication" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON UpdateApplication where toJSON UpdateApplication' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("ApplicationName" Data..= applicationName), Prelude.Just ( "CurrentApplicationVersionId" Data..= currentApplicationVersionId ), Prelude.Just ("ApplicationUpdate" Data..= applicationUpdate) ] ) instance Data.ToPath UpdateApplication where toPath = Prelude.const "/" instance Data.ToQuery UpdateApplication where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newUpdateApplicationResponse' smart constructor. data UpdateApplicationResponse = UpdateApplicationResponse' { -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateApplicationResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'httpStatus', 'updateApplicationResponse_httpStatus' - The response's http status code. newUpdateApplicationResponse :: -- | 'httpStatus' Prelude.Int -> UpdateApplicationResponse newUpdateApplicationResponse pHttpStatus_ = UpdateApplicationResponse' { httpStatus = pHttpStatus_ } -- | The response's http status code. updateApplicationResponse_httpStatus :: Lens.Lens' UpdateApplicationResponse Prelude.Int updateApplicationResponse_httpStatus = Lens.lens (\UpdateApplicationResponse' {httpStatus} -> httpStatus) (\s@UpdateApplicationResponse' {} a -> s {httpStatus = a} :: UpdateApplicationResponse) instance Prelude.NFData UpdateApplicationResponse where rnf UpdateApplicationResponse' {..} = Prelude.rnf httpStatus