amazonka-kinesisanalyticsv2-2.0: gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationDetail.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.KinesisAnalyticsV2.Types.ApplicationDetail
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.KinesisAnalyticsV2.Types.ApplicationDetail where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription
import Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription
import Amazonka.KinesisAnalyticsV2.Types.ApplicationMode
import Amazonka.KinesisAnalyticsV2.Types.ApplicationStatus
import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription
import Amazonka.KinesisAnalyticsV2.Types.RuntimeEnvironment
import qualified Amazonka.Prelude as Prelude
-- | Describes the application, including the application Amazon Resource
-- Name (ARN), status, latest version, and input and output configurations.
--
-- /See:/ 'newApplicationDetail' smart constructor.
data ApplicationDetail = ApplicationDetail'
{ -- | Describes details about the application code and starting parameters for
-- a Kinesis Data Analytics application.
applicationConfigurationDescription :: Prelude.Maybe ApplicationConfigurationDescription,
-- | The description of the application.
applicationDescription :: Prelude.Maybe Prelude.Text,
-- | The details of the maintenance configuration for the application.
applicationMaintenanceConfigurationDescription :: Prelude.Maybe ApplicationMaintenanceConfigurationDescription,
-- | To create a Kinesis Data Analytics Studio notebook, you must set the
-- mode to @INTERACTIVE@. However, for a Kinesis Data Analytics for Apache
-- Flink application, the mode is optional.
applicationMode :: Prelude.Maybe ApplicationMode,
-- | If you reverted the application using RollbackApplication, the
-- application version when @RollbackApplication@ was called.
applicationVersionRolledBackFrom :: Prelude.Maybe Prelude.Natural,
-- | The version to which you want to roll back the application.
applicationVersionRolledBackTo :: Prelude.Maybe Prelude.Natural,
-- | The previous application version before the latest application update.
-- RollbackApplication reverts the application to this version.
applicationVersionUpdatedFrom :: Prelude.Maybe Prelude.Natural,
-- | Describes the application Amazon CloudWatch logging options.
cloudWatchLoggingOptionDescriptions :: Prelude.Maybe [CloudWatchLoggingOptionDescription],
-- | A value you use to implement strong concurrency for application updates.
conditionalToken :: Prelude.Maybe Prelude.Text,
-- | The current timestamp when the application was created.
createTimestamp :: Prelude.Maybe Data.POSIX,
-- | The current timestamp when the application was last updated.
lastUpdateTimestamp :: Prelude.Maybe Data.POSIX,
-- | Specifies the IAM role that the application uses to access external
-- resources.
serviceExecutionRole :: Prelude.Maybe Prelude.Text,
-- | The ARN of the application.
applicationARN :: Prelude.Text,
-- | The name of the application.
applicationName :: Prelude.Text,
-- | The runtime environment for the application.
runtimeEnvironment :: RuntimeEnvironment,
-- | The status of the application.
applicationStatus :: ApplicationStatus,
-- | Provides the current application version. Kinesis Data Analytics updates
-- the @ApplicationVersionId@ each time you update the application.
applicationVersionId :: Prelude.Natural
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ApplicationDetail' 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:
--
-- 'applicationConfigurationDescription', 'applicationDetail_applicationConfigurationDescription' - Describes details about the application code and starting parameters for
-- a Kinesis Data Analytics application.
--
-- 'applicationDescription', 'applicationDetail_applicationDescription' - The description of the application.
--
-- 'applicationMaintenanceConfigurationDescription', 'applicationDetail_applicationMaintenanceConfigurationDescription' - The details of the maintenance configuration for the application.
--
-- 'applicationMode', 'applicationDetail_applicationMode' - To create a Kinesis Data Analytics Studio notebook, you must set the
-- mode to @INTERACTIVE@. However, for a Kinesis Data Analytics for Apache
-- Flink application, the mode is optional.
--
-- 'applicationVersionRolledBackFrom', 'applicationDetail_applicationVersionRolledBackFrom' - If you reverted the application using RollbackApplication, the
-- application version when @RollbackApplication@ was called.
--
-- 'applicationVersionRolledBackTo', 'applicationDetail_applicationVersionRolledBackTo' - The version to which you want to roll back the application.
--
-- 'applicationVersionUpdatedFrom', 'applicationDetail_applicationVersionUpdatedFrom' - The previous application version before the latest application update.
-- RollbackApplication reverts the application to this version.
--
-- 'cloudWatchLoggingOptionDescriptions', 'applicationDetail_cloudWatchLoggingOptionDescriptions' - Describes the application Amazon CloudWatch logging options.
--
-- 'conditionalToken', 'applicationDetail_conditionalToken' - A value you use to implement strong concurrency for application updates.
--
-- 'createTimestamp', 'applicationDetail_createTimestamp' - The current timestamp when the application was created.
--
-- 'lastUpdateTimestamp', 'applicationDetail_lastUpdateTimestamp' - The current timestamp when the application was last updated.
--
-- 'serviceExecutionRole', 'applicationDetail_serviceExecutionRole' - Specifies the IAM role that the application uses to access external
-- resources.
--
-- 'applicationARN', 'applicationDetail_applicationARN' - The ARN of the application.
--
-- 'applicationName', 'applicationDetail_applicationName' - The name of the application.
--
-- 'runtimeEnvironment', 'applicationDetail_runtimeEnvironment' - The runtime environment for the application.
--
-- 'applicationStatus', 'applicationDetail_applicationStatus' - The status of the application.
--
-- 'applicationVersionId', 'applicationDetail_applicationVersionId' - Provides the current application version. Kinesis Data Analytics updates
-- the @ApplicationVersionId@ each time you update the application.
newApplicationDetail ::
-- | 'applicationARN'
Prelude.Text ->
-- | 'applicationName'
Prelude.Text ->
-- | 'runtimeEnvironment'
RuntimeEnvironment ->
-- | 'applicationStatus'
ApplicationStatus ->
-- | 'applicationVersionId'
Prelude.Natural ->
ApplicationDetail
newApplicationDetail
pApplicationARN_
pApplicationName_
pRuntimeEnvironment_
pApplicationStatus_
pApplicationVersionId_ =
ApplicationDetail'
{ applicationConfigurationDescription =
Prelude.Nothing,
applicationDescription = Prelude.Nothing,
applicationMaintenanceConfigurationDescription =
Prelude.Nothing,
applicationMode = Prelude.Nothing,
applicationVersionRolledBackFrom = Prelude.Nothing,
applicationVersionRolledBackTo = Prelude.Nothing,
applicationVersionUpdatedFrom = Prelude.Nothing,
cloudWatchLoggingOptionDescriptions =
Prelude.Nothing,
conditionalToken = Prelude.Nothing,
createTimestamp = Prelude.Nothing,
lastUpdateTimestamp = Prelude.Nothing,
serviceExecutionRole = Prelude.Nothing,
applicationARN = pApplicationARN_,
applicationName = pApplicationName_,
runtimeEnvironment = pRuntimeEnvironment_,
applicationStatus = pApplicationStatus_,
applicationVersionId = pApplicationVersionId_
}
-- | Describes details about the application code and starting parameters for
-- a Kinesis Data Analytics application.
applicationDetail_applicationConfigurationDescription :: Lens.Lens' ApplicationDetail (Prelude.Maybe ApplicationConfigurationDescription)
applicationDetail_applicationConfigurationDescription = Lens.lens (\ApplicationDetail' {applicationConfigurationDescription} -> applicationConfigurationDescription) (\s@ApplicationDetail' {} a -> s {applicationConfigurationDescription = a} :: ApplicationDetail)
-- | The description of the application.
applicationDetail_applicationDescription :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text)
applicationDetail_applicationDescription = Lens.lens (\ApplicationDetail' {applicationDescription} -> applicationDescription) (\s@ApplicationDetail' {} a -> s {applicationDescription = a} :: ApplicationDetail)
-- | The details of the maintenance configuration for the application.
applicationDetail_applicationMaintenanceConfigurationDescription :: Lens.Lens' ApplicationDetail (Prelude.Maybe ApplicationMaintenanceConfigurationDescription)
applicationDetail_applicationMaintenanceConfigurationDescription = Lens.lens (\ApplicationDetail' {applicationMaintenanceConfigurationDescription} -> applicationMaintenanceConfigurationDescription) (\s@ApplicationDetail' {} a -> s {applicationMaintenanceConfigurationDescription = a} :: ApplicationDetail)
-- | To create a Kinesis Data Analytics Studio notebook, you must set the
-- mode to @INTERACTIVE@. However, for a Kinesis Data Analytics for Apache
-- Flink application, the mode is optional.
applicationDetail_applicationMode :: Lens.Lens' ApplicationDetail (Prelude.Maybe ApplicationMode)
applicationDetail_applicationMode = Lens.lens (\ApplicationDetail' {applicationMode} -> applicationMode) (\s@ApplicationDetail' {} a -> s {applicationMode = a} :: ApplicationDetail)
-- | If you reverted the application using RollbackApplication, the
-- application version when @RollbackApplication@ was called.
applicationDetail_applicationVersionRolledBackFrom :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Natural)
applicationDetail_applicationVersionRolledBackFrom = Lens.lens (\ApplicationDetail' {applicationVersionRolledBackFrom} -> applicationVersionRolledBackFrom) (\s@ApplicationDetail' {} a -> s {applicationVersionRolledBackFrom = a} :: ApplicationDetail)
-- | The version to which you want to roll back the application.
applicationDetail_applicationVersionRolledBackTo :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Natural)
applicationDetail_applicationVersionRolledBackTo = Lens.lens (\ApplicationDetail' {applicationVersionRolledBackTo} -> applicationVersionRolledBackTo) (\s@ApplicationDetail' {} a -> s {applicationVersionRolledBackTo = a} :: ApplicationDetail)
-- | The previous application version before the latest application update.
-- RollbackApplication reverts the application to this version.
applicationDetail_applicationVersionUpdatedFrom :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Natural)
applicationDetail_applicationVersionUpdatedFrom = Lens.lens (\ApplicationDetail' {applicationVersionUpdatedFrom} -> applicationVersionUpdatedFrom) (\s@ApplicationDetail' {} a -> s {applicationVersionUpdatedFrom = a} :: ApplicationDetail)
-- | Describes the application Amazon CloudWatch logging options.
applicationDetail_cloudWatchLoggingOptionDescriptions :: Lens.Lens' ApplicationDetail (Prelude.Maybe [CloudWatchLoggingOptionDescription])
applicationDetail_cloudWatchLoggingOptionDescriptions = Lens.lens (\ApplicationDetail' {cloudWatchLoggingOptionDescriptions} -> cloudWatchLoggingOptionDescriptions) (\s@ApplicationDetail' {} a -> s {cloudWatchLoggingOptionDescriptions = a} :: ApplicationDetail) Prelude.. Lens.mapping Lens.coerced
-- | A value you use to implement strong concurrency for application updates.
applicationDetail_conditionalToken :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text)
applicationDetail_conditionalToken = Lens.lens (\ApplicationDetail' {conditionalToken} -> conditionalToken) (\s@ApplicationDetail' {} a -> s {conditionalToken = a} :: ApplicationDetail)
-- | The current timestamp when the application was created.
applicationDetail_createTimestamp :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.UTCTime)
applicationDetail_createTimestamp = Lens.lens (\ApplicationDetail' {createTimestamp} -> createTimestamp) (\s@ApplicationDetail' {} a -> s {createTimestamp = a} :: ApplicationDetail) Prelude.. Lens.mapping Data._Time
-- | The current timestamp when the application was last updated.
applicationDetail_lastUpdateTimestamp :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.UTCTime)
applicationDetail_lastUpdateTimestamp = Lens.lens (\ApplicationDetail' {lastUpdateTimestamp} -> lastUpdateTimestamp) (\s@ApplicationDetail' {} a -> s {lastUpdateTimestamp = a} :: ApplicationDetail) Prelude.. Lens.mapping Data._Time
-- | Specifies the IAM role that the application uses to access external
-- resources.
applicationDetail_serviceExecutionRole :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text)
applicationDetail_serviceExecutionRole = Lens.lens (\ApplicationDetail' {serviceExecutionRole} -> serviceExecutionRole) (\s@ApplicationDetail' {} a -> s {serviceExecutionRole = a} :: ApplicationDetail)
-- | The ARN of the application.
applicationDetail_applicationARN :: Lens.Lens' ApplicationDetail Prelude.Text
applicationDetail_applicationARN = Lens.lens (\ApplicationDetail' {applicationARN} -> applicationARN) (\s@ApplicationDetail' {} a -> s {applicationARN = a} :: ApplicationDetail)
-- | The name of the application.
applicationDetail_applicationName :: Lens.Lens' ApplicationDetail Prelude.Text
applicationDetail_applicationName = Lens.lens (\ApplicationDetail' {applicationName} -> applicationName) (\s@ApplicationDetail' {} a -> s {applicationName = a} :: ApplicationDetail)
-- | The runtime environment for the application.
applicationDetail_runtimeEnvironment :: Lens.Lens' ApplicationDetail RuntimeEnvironment
applicationDetail_runtimeEnvironment = Lens.lens (\ApplicationDetail' {runtimeEnvironment} -> runtimeEnvironment) (\s@ApplicationDetail' {} a -> s {runtimeEnvironment = a} :: ApplicationDetail)
-- | The status of the application.
applicationDetail_applicationStatus :: Lens.Lens' ApplicationDetail ApplicationStatus
applicationDetail_applicationStatus = Lens.lens (\ApplicationDetail' {applicationStatus} -> applicationStatus) (\s@ApplicationDetail' {} a -> s {applicationStatus = a} :: ApplicationDetail)
-- | Provides the current application version. Kinesis Data Analytics updates
-- the @ApplicationVersionId@ each time you update the application.
applicationDetail_applicationVersionId :: Lens.Lens' ApplicationDetail Prelude.Natural
applicationDetail_applicationVersionId = Lens.lens (\ApplicationDetail' {applicationVersionId} -> applicationVersionId) (\s@ApplicationDetail' {} a -> s {applicationVersionId = a} :: ApplicationDetail)
instance Data.FromJSON ApplicationDetail where
parseJSON =
Data.withObject
"ApplicationDetail"
( \x ->
ApplicationDetail'
Prelude.<$> (x Data..:? "ApplicationConfigurationDescription")
Prelude.<*> (x Data..:? "ApplicationDescription")
Prelude.<*> ( x
Data..:? "ApplicationMaintenanceConfigurationDescription"
)
Prelude.<*> (x Data..:? "ApplicationMode")
Prelude.<*> (x Data..:? "ApplicationVersionRolledBackFrom")
Prelude.<*> (x Data..:? "ApplicationVersionRolledBackTo")
Prelude.<*> (x Data..:? "ApplicationVersionUpdatedFrom")
Prelude.<*> ( x
Data..:? "CloudWatchLoggingOptionDescriptions"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "ConditionalToken")
Prelude.<*> (x Data..:? "CreateTimestamp")
Prelude.<*> (x Data..:? "LastUpdateTimestamp")
Prelude.<*> (x Data..:? "ServiceExecutionRole")
Prelude.<*> (x Data..: "ApplicationARN")
Prelude.<*> (x Data..: "ApplicationName")
Prelude.<*> (x Data..: "RuntimeEnvironment")
Prelude.<*> (x Data..: "ApplicationStatus")
Prelude.<*> (x Data..: "ApplicationVersionId")
)
instance Prelude.Hashable ApplicationDetail where
hashWithSalt _salt ApplicationDetail' {..} =
_salt
`Prelude.hashWithSalt` applicationConfigurationDescription
`Prelude.hashWithSalt` applicationDescription
`Prelude.hashWithSalt` applicationMaintenanceConfigurationDescription
`Prelude.hashWithSalt` applicationMode
`Prelude.hashWithSalt` applicationVersionRolledBackFrom
`Prelude.hashWithSalt` applicationVersionRolledBackTo
`Prelude.hashWithSalt` applicationVersionUpdatedFrom
`Prelude.hashWithSalt` cloudWatchLoggingOptionDescriptions
`Prelude.hashWithSalt` conditionalToken
`Prelude.hashWithSalt` createTimestamp
`Prelude.hashWithSalt` lastUpdateTimestamp
`Prelude.hashWithSalt` serviceExecutionRole
`Prelude.hashWithSalt` applicationARN
`Prelude.hashWithSalt` applicationName
`Prelude.hashWithSalt` runtimeEnvironment
`Prelude.hashWithSalt` applicationStatus
`Prelude.hashWithSalt` applicationVersionId
instance Prelude.NFData ApplicationDetail where
rnf ApplicationDetail' {..} =
Prelude.rnf applicationConfigurationDescription
`Prelude.seq` Prelude.rnf applicationDescription
`Prelude.seq` Prelude.rnf
applicationMaintenanceConfigurationDescription
`Prelude.seq` Prelude.rnf applicationMode
`Prelude.seq` Prelude.rnf applicationVersionRolledBackFrom
`Prelude.seq` Prelude.rnf applicationVersionRolledBackTo
`Prelude.seq` Prelude.rnf applicationVersionUpdatedFrom
`Prelude.seq` Prelude.rnf cloudWatchLoggingOptionDescriptions
`Prelude.seq` Prelude.rnf conditionalToken
`Prelude.seq` Prelude.rnf createTimestamp
`Prelude.seq` Prelude.rnf lastUpdateTimestamp
`Prelude.seq` Prelude.rnf serviceExecutionRole
`Prelude.seq` Prelude.rnf applicationARN
`Prelude.seq` Prelude.rnf applicationName
`Prelude.seq` Prelude.rnf runtimeEnvironment
`Prelude.seq` Prelude.rnf applicationStatus
`Prelude.seq` Prelude.rnf applicationVersionId