{-# 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.KinesisAnalytics.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.KinesisAnalytics.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.KinesisAnalytics.Types.ApplicationStatus import Amazonka.KinesisAnalytics.Types.CloudWatchLoggingOptionDescription import Amazonka.KinesisAnalytics.Types.InputDescription import Amazonka.KinesisAnalytics.Types.OutputDescription import Amazonka.KinesisAnalytics.Types.ReferenceDataSourceDescription import qualified Amazonka.Prelude as Prelude -- | 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 -- . -- -- Provides a description of the application, including the application -- Amazon Resource Name (ARN), status, latest version, and input and output -- configuration. -- -- /See:/ 'newApplicationDetail' smart constructor. data ApplicationDetail = ApplicationDetail' { -- | Returns the application code that you provided to perform data analysis -- on any of the in-application streams in your application. applicationCode :: Prelude.Maybe Prelude.Text, -- | Description of the application. applicationDescription :: Prelude.Maybe Prelude.Text, -- | Describes the CloudWatch log streams that are configured to receive -- application messages. For more information about using CloudWatch log -- streams with Amazon Kinesis Analytics applications, see -- . cloudWatchLoggingOptionDescriptions :: Prelude.Maybe [CloudWatchLoggingOptionDescription], -- | Time stamp when the application version was created. createTimestamp :: Prelude.Maybe Data.POSIX, -- | Describes the application input configuration. For more information, see -- . inputDescriptions :: Prelude.Maybe [InputDescription], -- | Time stamp when the application was last updated. lastUpdateTimestamp :: Prelude.Maybe Data.POSIX, -- | Describes the application output configuration. For more information, -- see -- . outputDescriptions :: Prelude.Maybe [OutputDescription], -- | Describes reference data sources configured for the application. For -- more information, see -- . referenceDataSourceDescriptions :: Prelude.Maybe [ReferenceDataSourceDescription], -- | Name of the application. applicationName :: Prelude.Text, -- | ARN of the application. applicationARN :: Prelude.Text, -- | Status of the application. applicationStatus :: ApplicationStatus, -- | Provides the current application version. applicationVersionId :: Prelude.Natural } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ApplicationDetail' 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: -- -- 'applicationCode', 'applicationDetail_applicationCode' - Returns the application code that you provided to perform data analysis -- on any of the in-application streams in your application. -- -- 'applicationDescription', 'applicationDetail_applicationDescription' - Description of the application. -- -- 'cloudWatchLoggingOptionDescriptions', 'applicationDetail_cloudWatchLoggingOptionDescriptions' - Describes the CloudWatch log streams that are configured to receive -- application messages. For more information about using CloudWatch log -- streams with Amazon Kinesis Analytics applications, see -- . -- -- 'createTimestamp', 'applicationDetail_createTimestamp' - Time stamp when the application version was created. -- -- 'inputDescriptions', 'applicationDetail_inputDescriptions' - Describes the application input configuration. For more information, see -- . -- -- 'lastUpdateTimestamp', 'applicationDetail_lastUpdateTimestamp' - Time stamp when the application was last updated. -- -- 'outputDescriptions', 'applicationDetail_outputDescriptions' - Describes the application output configuration. For more information, -- see -- . -- -- 'referenceDataSourceDescriptions', 'applicationDetail_referenceDataSourceDescriptions' - Describes reference data sources configured for the application. For -- more information, see -- . -- -- 'applicationName', 'applicationDetail_applicationName' - Name of the application. -- -- 'applicationARN', 'applicationDetail_applicationARN' - ARN of the application. -- -- 'applicationStatus', 'applicationDetail_applicationStatus' - Status of the application. -- -- 'applicationVersionId', 'applicationDetail_applicationVersionId' - Provides the current application version. newApplicationDetail :: -- | 'applicationName' Prelude.Text -> -- | 'applicationARN' Prelude.Text -> -- | 'applicationStatus' ApplicationStatus -> -- | 'applicationVersionId' Prelude.Natural -> ApplicationDetail newApplicationDetail pApplicationName_ pApplicationARN_ pApplicationStatus_ pApplicationVersionId_ = ApplicationDetail' { applicationCode = Prelude.Nothing, applicationDescription = Prelude.Nothing, cloudWatchLoggingOptionDescriptions = Prelude.Nothing, createTimestamp = Prelude.Nothing, inputDescriptions = Prelude.Nothing, lastUpdateTimestamp = Prelude.Nothing, outputDescriptions = Prelude.Nothing, referenceDataSourceDescriptions = Prelude.Nothing, applicationName = pApplicationName_, applicationARN = pApplicationARN_, applicationStatus = pApplicationStatus_, applicationVersionId = pApplicationVersionId_ } -- | Returns the application code that you provided to perform data analysis -- on any of the in-application streams in your application. applicationDetail_applicationCode :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text) applicationDetail_applicationCode = Lens.lens (\ApplicationDetail' {applicationCode} -> applicationCode) (\s@ApplicationDetail' {} a -> s {applicationCode = a} :: ApplicationDetail) -- | 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) -- | Describes the CloudWatch log streams that are configured to receive -- application messages. For more information about using CloudWatch log -- streams with Amazon Kinesis Analytics applications, see -- . 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 -- | Time stamp when the application version 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 -- | Describes the application input configuration. For more information, see -- . applicationDetail_inputDescriptions :: Lens.Lens' ApplicationDetail (Prelude.Maybe [InputDescription]) applicationDetail_inputDescriptions = Lens.lens (\ApplicationDetail' {inputDescriptions} -> inputDescriptions) (\s@ApplicationDetail' {} a -> s {inputDescriptions = a} :: ApplicationDetail) Prelude.. Lens.mapping Lens.coerced -- | Time stamp 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 -- | Describes the application output configuration. For more information, -- see -- . applicationDetail_outputDescriptions :: Lens.Lens' ApplicationDetail (Prelude.Maybe [OutputDescription]) applicationDetail_outputDescriptions = Lens.lens (\ApplicationDetail' {outputDescriptions} -> outputDescriptions) (\s@ApplicationDetail' {} a -> s {outputDescriptions = a} :: ApplicationDetail) Prelude.. Lens.mapping Lens.coerced -- | Describes reference data sources configured for the application. For -- more information, see -- . applicationDetail_referenceDataSourceDescriptions :: Lens.Lens' ApplicationDetail (Prelude.Maybe [ReferenceDataSourceDescription]) applicationDetail_referenceDataSourceDescriptions = Lens.lens (\ApplicationDetail' {referenceDataSourceDescriptions} -> referenceDataSourceDescriptions) (\s@ApplicationDetail' {} a -> s {referenceDataSourceDescriptions = a} :: ApplicationDetail) Prelude.. Lens.mapping Lens.coerced -- | 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) -- | 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) -- | 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. 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..:? "ApplicationCode") Prelude.<*> (x Data..:? "ApplicationDescription") Prelude.<*> ( x Data..:? "CloudWatchLoggingOptionDescriptions" Data..!= Prelude.mempty ) Prelude.<*> (x Data..:? "CreateTimestamp") Prelude.<*> ( x Data..:? "InputDescriptions" Data..!= Prelude.mempty ) Prelude.<*> (x Data..:? "LastUpdateTimestamp") Prelude.<*> ( x Data..:? "OutputDescriptions" Data..!= Prelude.mempty ) Prelude.<*> ( x Data..:? "ReferenceDataSourceDescriptions" Data..!= Prelude.mempty ) Prelude.<*> (x Data..: "ApplicationName") Prelude.<*> (x Data..: "ApplicationARN") Prelude.<*> (x Data..: "ApplicationStatus") Prelude.<*> (x Data..: "ApplicationVersionId") ) instance Prelude.Hashable ApplicationDetail where hashWithSalt _salt ApplicationDetail' {..} = _salt `Prelude.hashWithSalt` applicationCode `Prelude.hashWithSalt` applicationDescription `Prelude.hashWithSalt` cloudWatchLoggingOptionDescriptions `Prelude.hashWithSalt` createTimestamp `Prelude.hashWithSalt` inputDescriptions `Prelude.hashWithSalt` lastUpdateTimestamp `Prelude.hashWithSalt` outputDescriptions `Prelude.hashWithSalt` referenceDataSourceDescriptions `Prelude.hashWithSalt` applicationName `Prelude.hashWithSalt` applicationARN `Prelude.hashWithSalt` applicationStatus `Prelude.hashWithSalt` applicationVersionId instance Prelude.NFData ApplicationDetail where rnf ApplicationDetail' {..} = Prelude.rnf applicationCode `Prelude.seq` Prelude.rnf applicationDescription `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionDescriptions `Prelude.seq` Prelude.rnf createTimestamp `Prelude.seq` Prelude.rnf inputDescriptions `Prelude.seq` Prelude.rnf lastUpdateTimestamp `Prelude.seq` Prelude.rnf outputDescriptions `Prelude.seq` Prelude.rnf referenceDataSourceDescriptions `Prelude.seq` Prelude.rnf applicationName `Prelude.seq` Prelude.rnf applicationARN `Prelude.seq` Prelude.rnf applicationStatus `Prelude.seq` Prelude.rnf applicationVersionId