{-# 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.ElasticBeanstalk.Types.ApplicationVersionDescription
-- 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.ElasticBeanstalk.Types.ApplicationVersionDescription where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElasticBeanstalk.Types.ApplicationVersionStatus
import Amazonka.ElasticBeanstalk.Types.S3Location
import Amazonka.ElasticBeanstalk.Types.SourceBuildInformation
import qualified Amazonka.Prelude as Prelude

-- | Describes the properties of an application version.
--
-- /See:/ 'newApplicationVersionDescription' smart constructor.
data ApplicationVersionDescription = ApplicationVersionDescription'
  { -- | The name of the application to which the application version belongs.
    ApplicationVersionDescription -> Maybe Text
applicationName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the application version.
    ApplicationVersionDescription -> Maybe Text
applicationVersionArn :: Prelude.Maybe Prelude.Text,
    -- | Reference to the artifact from the AWS CodeBuild build.
    ApplicationVersionDescription -> Maybe Text
buildArn :: Prelude.Maybe Prelude.Text,
    -- | The creation date of the application version.
    ApplicationVersionDescription -> Maybe ISO8601
dateCreated :: Prelude.Maybe Data.ISO8601,
    -- | The last modified date of the application version.
    ApplicationVersionDescription -> Maybe ISO8601
dateUpdated :: Prelude.Maybe Data.ISO8601,
    -- | The description of the application version.
    ApplicationVersionDescription -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | If the version\'s source code was retrieved from AWS CodeCommit, the
    -- location of the source code for the application version.
    ApplicationVersionDescription -> Maybe SourceBuildInformation
sourceBuildInformation :: Prelude.Maybe SourceBuildInformation,
    -- | The storage location of the application version\'s source bundle in
    -- Amazon S3.
    ApplicationVersionDescription -> Maybe S3Location
sourceBundle :: Prelude.Maybe S3Location,
    -- | The processing status of the application version. Reflects the state of
    -- the application version during its creation. Many of the values are only
    -- applicable if you specified @True@ for the @Process@ parameter of the
    -- @CreateApplicationVersion@ action. The following list describes the
    -- possible values.
    --
    -- -   @Unprocessed@ – Application version wasn\'t pre-processed or
    --     validated. Elastic Beanstalk will validate configuration files
    --     during deployment of the application version to an environment.
    --
    -- -   @Processing@ – Elastic Beanstalk is currently processing the
    --     application version.
    --
    -- -   @Building@ – Application version is currently undergoing an AWS
    --     CodeBuild build.
    --
    -- -   @Processed@ – Elastic Beanstalk was successfully pre-processed and
    --     validated.
    --
    -- -   @Failed@ – Either the AWS CodeBuild build failed or configuration
    --     files didn\'t pass validation. This application version isn\'t
    --     usable.
    ApplicationVersionDescription -> Maybe ApplicationVersionStatus
status :: Prelude.Maybe ApplicationVersionStatus,
    -- | A unique identifier for the application version.
    ApplicationVersionDescription -> Maybe Text
versionLabel :: Prelude.Maybe Prelude.Text
  }
  deriving (ApplicationVersionDescription
-> ApplicationVersionDescription -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApplicationVersionDescription
-> ApplicationVersionDescription -> Bool
$c/= :: ApplicationVersionDescription
-> ApplicationVersionDescription -> Bool
== :: ApplicationVersionDescription
-> ApplicationVersionDescription -> Bool
$c== :: ApplicationVersionDescription
-> ApplicationVersionDescription -> Bool
Prelude.Eq, ReadPrec [ApplicationVersionDescription]
ReadPrec ApplicationVersionDescription
Int -> ReadS ApplicationVersionDescription
ReadS [ApplicationVersionDescription]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ApplicationVersionDescription]
$creadListPrec :: ReadPrec [ApplicationVersionDescription]
readPrec :: ReadPrec ApplicationVersionDescription
$creadPrec :: ReadPrec ApplicationVersionDescription
readList :: ReadS [ApplicationVersionDescription]
$creadList :: ReadS [ApplicationVersionDescription]
readsPrec :: Int -> ReadS ApplicationVersionDescription
$creadsPrec :: Int -> ReadS ApplicationVersionDescription
Prelude.Read, Int -> ApplicationVersionDescription -> ShowS
[ApplicationVersionDescription] -> ShowS
ApplicationVersionDescription -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApplicationVersionDescription] -> ShowS
$cshowList :: [ApplicationVersionDescription] -> ShowS
show :: ApplicationVersionDescription -> String
$cshow :: ApplicationVersionDescription -> String
showsPrec :: Int -> ApplicationVersionDescription -> ShowS
$cshowsPrec :: Int -> ApplicationVersionDescription -> ShowS
Prelude.Show, forall x.
Rep ApplicationVersionDescription x
-> ApplicationVersionDescription
forall x.
ApplicationVersionDescription
-> Rep ApplicationVersionDescription x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ApplicationVersionDescription x
-> ApplicationVersionDescription
$cfrom :: forall x.
ApplicationVersionDescription
-> Rep ApplicationVersionDescription x
Prelude.Generic)

-- |
-- Create a value of 'ApplicationVersionDescription' 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:
--
-- 'applicationName', 'applicationVersionDescription_applicationName' - The name of the application to which the application version belongs.
--
-- 'applicationVersionArn', 'applicationVersionDescription_applicationVersionArn' - The Amazon Resource Name (ARN) of the application version.
--
-- 'buildArn', 'applicationVersionDescription_buildArn' - Reference to the artifact from the AWS CodeBuild build.
--
-- 'dateCreated', 'applicationVersionDescription_dateCreated' - The creation date of the application version.
--
-- 'dateUpdated', 'applicationVersionDescription_dateUpdated' - The last modified date of the application version.
--
-- 'description', 'applicationVersionDescription_description' - The description of the application version.
--
-- 'sourceBuildInformation', 'applicationVersionDescription_sourceBuildInformation' - If the version\'s source code was retrieved from AWS CodeCommit, the
-- location of the source code for the application version.
--
-- 'sourceBundle', 'applicationVersionDescription_sourceBundle' - The storage location of the application version\'s source bundle in
-- Amazon S3.
--
-- 'status', 'applicationVersionDescription_status' - The processing status of the application version. Reflects the state of
-- the application version during its creation. Many of the values are only
-- applicable if you specified @True@ for the @Process@ parameter of the
-- @CreateApplicationVersion@ action. The following list describes the
-- possible values.
--
-- -   @Unprocessed@ – Application version wasn\'t pre-processed or
--     validated. Elastic Beanstalk will validate configuration files
--     during deployment of the application version to an environment.
--
-- -   @Processing@ – Elastic Beanstalk is currently processing the
--     application version.
--
-- -   @Building@ – Application version is currently undergoing an AWS
--     CodeBuild build.
--
-- -   @Processed@ – Elastic Beanstalk was successfully pre-processed and
--     validated.
--
-- -   @Failed@ – Either the AWS CodeBuild build failed or configuration
--     files didn\'t pass validation. This application version isn\'t
--     usable.
--
-- 'versionLabel', 'applicationVersionDescription_versionLabel' - A unique identifier for the application version.
newApplicationVersionDescription ::
  ApplicationVersionDescription
newApplicationVersionDescription :: ApplicationVersionDescription
newApplicationVersionDescription =
  ApplicationVersionDescription'
    { $sel:applicationName:ApplicationVersionDescription' :: Maybe Text
applicationName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:applicationVersionArn:ApplicationVersionDescription' :: Maybe Text
applicationVersionArn = forall a. Maybe a
Prelude.Nothing,
      $sel:buildArn:ApplicationVersionDescription' :: Maybe Text
buildArn = forall a. Maybe a
Prelude.Nothing,
      $sel:dateCreated:ApplicationVersionDescription' :: Maybe ISO8601
dateCreated = forall a. Maybe a
Prelude.Nothing,
      $sel:dateUpdated:ApplicationVersionDescription' :: Maybe ISO8601
dateUpdated = forall a. Maybe a
Prelude.Nothing,
      $sel:description:ApplicationVersionDescription' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceBuildInformation:ApplicationVersionDescription' :: Maybe SourceBuildInformation
sourceBuildInformation = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceBundle:ApplicationVersionDescription' :: Maybe S3Location
sourceBundle = forall a. Maybe a
Prelude.Nothing,
      $sel:status:ApplicationVersionDescription' :: Maybe ApplicationVersionStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:versionLabel:ApplicationVersionDescription' :: Maybe Text
versionLabel = forall a. Maybe a
Prelude.Nothing
    }

-- | The name of the application to which the application version belongs.
applicationVersionDescription_applicationName :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_applicationName :: Lens' ApplicationVersionDescription (Maybe Text)
applicationVersionDescription_applicationName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe Text
applicationName :: Maybe Text
$sel:applicationName:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
applicationName} -> Maybe Text
applicationName) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe Text
a -> ApplicationVersionDescription
s {$sel:applicationName:ApplicationVersionDescription' :: Maybe Text
applicationName = Maybe Text
a} :: ApplicationVersionDescription)

-- | The Amazon Resource Name (ARN) of the application version.
applicationVersionDescription_applicationVersionArn :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_applicationVersionArn :: Lens' ApplicationVersionDescription (Maybe Text)
applicationVersionDescription_applicationVersionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe Text
applicationVersionArn :: Maybe Text
$sel:applicationVersionArn:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
applicationVersionArn} -> Maybe Text
applicationVersionArn) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe Text
a -> ApplicationVersionDescription
s {$sel:applicationVersionArn:ApplicationVersionDescription' :: Maybe Text
applicationVersionArn = Maybe Text
a} :: ApplicationVersionDescription)

-- | Reference to the artifact from the AWS CodeBuild build.
applicationVersionDescription_buildArn :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_buildArn :: Lens' ApplicationVersionDescription (Maybe Text)
applicationVersionDescription_buildArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe Text
buildArn :: Maybe Text
$sel:buildArn:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
buildArn} -> Maybe Text
buildArn) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe Text
a -> ApplicationVersionDescription
s {$sel:buildArn:ApplicationVersionDescription' :: Maybe Text
buildArn = Maybe Text
a} :: ApplicationVersionDescription)

-- | The creation date of the application version.
applicationVersionDescription_dateCreated :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.UTCTime)
applicationVersionDescription_dateCreated :: Lens' ApplicationVersionDescription (Maybe UTCTime)
applicationVersionDescription_dateCreated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe ISO8601
dateCreated :: Maybe ISO8601
$sel:dateCreated:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ISO8601
dateCreated} -> Maybe ISO8601
dateCreated) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe ISO8601
a -> ApplicationVersionDescription
s {$sel:dateCreated:ApplicationVersionDescription' :: Maybe ISO8601
dateCreated = Maybe ISO8601
a} :: ApplicationVersionDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The last modified date of the application version.
applicationVersionDescription_dateUpdated :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.UTCTime)
applicationVersionDescription_dateUpdated :: Lens' ApplicationVersionDescription (Maybe UTCTime)
applicationVersionDescription_dateUpdated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe ISO8601
dateUpdated :: Maybe ISO8601
$sel:dateUpdated:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ISO8601
dateUpdated} -> Maybe ISO8601
dateUpdated) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe ISO8601
a -> ApplicationVersionDescription
s {$sel:dateUpdated:ApplicationVersionDescription' :: Maybe ISO8601
dateUpdated = Maybe ISO8601
a} :: ApplicationVersionDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The description of the application version.
applicationVersionDescription_description :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_description :: Lens' ApplicationVersionDescription (Maybe Text)
applicationVersionDescription_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe Text
description :: Maybe Text
$sel:description:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
description} -> Maybe Text
description) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe Text
a -> ApplicationVersionDescription
s {$sel:description:ApplicationVersionDescription' :: Maybe Text
description = Maybe Text
a} :: ApplicationVersionDescription)

-- | If the version\'s source code was retrieved from AWS CodeCommit, the
-- location of the source code for the application version.
applicationVersionDescription_sourceBuildInformation :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe SourceBuildInformation)
applicationVersionDescription_sourceBuildInformation :: Lens' ApplicationVersionDescription (Maybe SourceBuildInformation)
applicationVersionDescription_sourceBuildInformation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe SourceBuildInformation
sourceBuildInformation :: Maybe SourceBuildInformation
$sel:sourceBuildInformation:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe SourceBuildInformation
sourceBuildInformation} -> Maybe SourceBuildInformation
sourceBuildInformation) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe SourceBuildInformation
a -> ApplicationVersionDescription
s {$sel:sourceBuildInformation:ApplicationVersionDescription' :: Maybe SourceBuildInformation
sourceBuildInformation = Maybe SourceBuildInformation
a} :: ApplicationVersionDescription)

-- | The storage location of the application version\'s source bundle in
-- Amazon S3.
applicationVersionDescription_sourceBundle :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe S3Location)
applicationVersionDescription_sourceBundle :: Lens' ApplicationVersionDescription (Maybe S3Location)
applicationVersionDescription_sourceBundle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe S3Location
sourceBundle :: Maybe S3Location
$sel:sourceBundle:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe S3Location
sourceBundle} -> Maybe S3Location
sourceBundle) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe S3Location
a -> ApplicationVersionDescription
s {$sel:sourceBundle:ApplicationVersionDescription' :: Maybe S3Location
sourceBundle = Maybe S3Location
a} :: ApplicationVersionDescription)

-- | The processing status of the application version. Reflects the state of
-- the application version during its creation. Many of the values are only
-- applicable if you specified @True@ for the @Process@ parameter of the
-- @CreateApplicationVersion@ action. The following list describes the
-- possible values.
--
-- -   @Unprocessed@ – Application version wasn\'t pre-processed or
--     validated. Elastic Beanstalk will validate configuration files
--     during deployment of the application version to an environment.
--
-- -   @Processing@ – Elastic Beanstalk is currently processing the
--     application version.
--
-- -   @Building@ – Application version is currently undergoing an AWS
--     CodeBuild build.
--
-- -   @Processed@ – Elastic Beanstalk was successfully pre-processed and
--     validated.
--
-- -   @Failed@ – Either the AWS CodeBuild build failed or configuration
--     files didn\'t pass validation. This application version isn\'t
--     usable.
applicationVersionDescription_status :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe ApplicationVersionStatus)
applicationVersionDescription_status :: Lens'
  ApplicationVersionDescription (Maybe ApplicationVersionStatus)
applicationVersionDescription_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe ApplicationVersionStatus
status :: Maybe ApplicationVersionStatus
$sel:status:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ApplicationVersionStatus
status} -> Maybe ApplicationVersionStatus
status) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe ApplicationVersionStatus
a -> ApplicationVersionDescription
s {$sel:status:ApplicationVersionDescription' :: Maybe ApplicationVersionStatus
status = Maybe ApplicationVersionStatus
a} :: ApplicationVersionDescription)

-- | A unique identifier for the application version.
applicationVersionDescription_versionLabel :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_versionLabel :: Lens' ApplicationVersionDescription (Maybe Text)
applicationVersionDescription_versionLabel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationVersionDescription' {Maybe Text
versionLabel :: Maybe Text
$sel:versionLabel:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
versionLabel} -> Maybe Text
versionLabel) (\s :: ApplicationVersionDescription
s@ApplicationVersionDescription' {} Maybe Text
a -> ApplicationVersionDescription
s {$sel:versionLabel:ApplicationVersionDescription' :: Maybe Text
versionLabel = Maybe Text
a} :: ApplicationVersionDescription)

instance Data.FromXML ApplicationVersionDescription where
  parseXML :: [Node] -> Either String ApplicationVersionDescription
parseXML [Node]
x =
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe Text
-> Maybe SourceBuildInformation
-> Maybe S3Location
-> Maybe ApplicationVersionStatus
-> Maybe Text
-> ApplicationVersionDescription
ApplicationVersionDescription'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ApplicationName")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ApplicationVersionArn")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"BuildArn")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"DateCreated")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"DateUpdated")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Description")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"SourceBuildInformation")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"SourceBundle")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Status")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"VersionLabel")

instance
  Prelude.Hashable
    ApplicationVersionDescription
  where
  hashWithSalt :: Int -> ApplicationVersionDescription -> Int
hashWithSalt Int
_salt ApplicationVersionDescription' {Maybe Text
Maybe ISO8601
Maybe ApplicationVersionStatus
Maybe S3Location
Maybe SourceBuildInformation
versionLabel :: Maybe Text
status :: Maybe ApplicationVersionStatus
sourceBundle :: Maybe S3Location
sourceBuildInformation :: Maybe SourceBuildInformation
description :: Maybe Text
dateUpdated :: Maybe ISO8601
dateCreated :: Maybe ISO8601
buildArn :: Maybe Text
applicationVersionArn :: Maybe Text
applicationName :: Maybe Text
$sel:versionLabel:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:status:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ApplicationVersionStatus
$sel:sourceBundle:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe S3Location
$sel:sourceBuildInformation:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe SourceBuildInformation
$sel:description:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:dateUpdated:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ISO8601
$sel:dateCreated:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ISO8601
$sel:buildArn:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:applicationVersionArn:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:applicationName:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
applicationName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
applicationVersionArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
buildArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
dateCreated
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
dateUpdated
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SourceBuildInformation
sourceBuildInformation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3Location
sourceBundle
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ApplicationVersionStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
versionLabel

instance Prelude.NFData ApplicationVersionDescription where
  rnf :: ApplicationVersionDescription -> ()
rnf ApplicationVersionDescription' {Maybe Text
Maybe ISO8601
Maybe ApplicationVersionStatus
Maybe S3Location
Maybe SourceBuildInformation
versionLabel :: Maybe Text
status :: Maybe ApplicationVersionStatus
sourceBundle :: Maybe S3Location
sourceBuildInformation :: Maybe SourceBuildInformation
description :: Maybe Text
dateUpdated :: Maybe ISO8601
dateCreated :: Maybe ISO8601
buildArn :: Maybe Text
applicationVersionArn :: Maybe Text
applicationName :: Maybe Text
$sel:versionLabel:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:status:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ApplicationVersionStatus
$sel:sourceBundle:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe S3Location
$sel:sourceBuildInformation:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe SourceBuildInformation
$sel:description:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:dateUpdated:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ISO8601
$sel:dateCreated:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe ISO8601
$sel:buildArn:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:applicationVersionArn:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
$sel:applicationName:ApplicationVersionDescription' :: ApplicationVersionDescription -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationVersionArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
buildArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
dateCreated
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
dateUpdated
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SourceBuildInformation
sourceBuildInformation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3Location
sourceBundle
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ApplicationVersionStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
versionLabel