{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ElasticBeanstalk.Types.ApplicationVersionDescription where

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

-- | Describes the properties of an application version.
--
-- /See:/ 'newApplicationVersionDescription' smart constructor.
data ApplicationVersionDescription = 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 -> Maybe ApplicationVersionStatus
status :: Prelude.Maybe ApplicationVersionStatus,
    -- | The storage location of the application version\'s source bundle in
    -- Amazon S3.
    ApplicationVersionDescription -> Maybe S3Location
sourceBundle :: Prelude.Maybe S3Location,
    -- | The last modified date of the application version.
    ApplicationVersionDescription -> Maybe ISO8601
dateUpdated :: Prelude.Maybe Core.ISO8601,
    -- | The creation date of the application version.
    ApplicationVersionDescription -> Maybe ISO8601
dateCreated :: Prelude.Maybe Core.ISO8601,
    -- | A unique identifier for the application version.
    ApplicationVersionDescription -> Maybe Text
versionLabel :: 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 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 description of the application version.
    ApplicationVersionDescription -> Maybe Text
description :: Prelude.Maybe Prelude.Text
  }
  deriving (ApplicationVersionDescription
-> ApplicationVersionDescription -> Bool
(ApplicationVersionDescription
 -> ApplicationVersionDescription -> Bool)
-> (ApplicationVersionDescription
    -> ApplicationVersionDescription -> Bool)
-> Eq ApplicationVersionDescription
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]
(Int -> ReadS ApplicationVersionDescription)
-> ReadS [ApplicationVersionDescription]
-> ReadPrec ApplicationVersionDescription
-> ReadPrec [ApplicationVersionDescription]
-> Read 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
(Int -> ApplicationVersionDescription -> ShowS)
-> (ApplicationVersionDescription -> String)
-> ([ApplicationVersionDescription] -> ShowS)
-> Show ApplicationVersionDescription
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.
 ApplicationVersionDescription
 -> Rep ApplicationVersionDescription x)
-> (forall x.
    Rep ApplicationVersionDescription x
    -> ApplicationVersionDescription)
-> Generic ApplicationVersionDescription
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:
--
-- '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.
--
-- 'sourceBundle', 'applicationVersionDescription_sourceBundle' - The storage location of the application version\'s source bundle in
-- Amazon S3.
--
-- 'dateUpdated', 'applicationVersionDescription_dateUpdated' - The last modified date of the application version.
--
-- 'dateCreated', 'applicationVersionDescription_dateCreated' - The creation date of the application version.
--
-- 'versionLabel', 'applicationVersionDescription_versionLabel' - A unique identifier for 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.
--
-- '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.
--
-- 'description', 'applicationVersionDescription_description' - The description of the application version.
newApplicationVersionDescription ::
  ApplicationVersionDescription
newApplicationVersionDescription :: ApplicationVersionDescription
newApplicationVersionDescription =
  ApplicationVersionDescription' :: Maybe ApplicationVersionStatus
-> Maybe S3Location
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe Text
-> Maybe SourceBuildInformation
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> ApplicationVersionDescription
ApplicationVersionDescription'
    { $sel:status:ApplicationVersionDescription' :: Maybe ApplicationVersionStatus
status =
        Maybe ApplicationVersionStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceBundle:ApplicationVersionDescription' :: Maybe S3Location
sourceBundle = Maybe S3Location
forall a. Maybe a
Prelude.Nothing,
      $sel:dateUpdated:ApplicationVersionDescription' :: Maybe ISO8601
dateUpdated = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:dateCreated:ApplicationVersionDescription' :: Maybe ISO8601
dateCreated = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:versionLabel:ApplicationVersionDescription' :: Maybe Text
versionLabel = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceBuildInformation:ApplicationVersionDescription' :: Maybe SourceBuildInformation
sourceBuildInformation = Maybe SourceBuildInformation
forall a. Maybe a
Prelude.Nothing,
      $sel:applicationName:ApplicationVersionDescription' :: Maybe Text
applicationName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:applicationVersionArn:ApplicationVersionDescription' :: Maybe Text
applicationVersionArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:buildArn:ApplicationVersionDescription' :: Maybe Text
buildArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:description:ApplicationVersionDescription' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | 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 :: (Maybe ApplicationVersionStatus
 -> f (Maybe ApplicationVersionStatus))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_status = (ApplicationVersionDescription -> Maybe ApplicationVersionStatus)
-> (ApplicationVersionDescription
    -> Maybe ApplicationVersionStatus -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe ApplicationVersionStatus)
     (Maybe ApplicationVersionStatus)
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)

-- | The storage location of the application version\'s source bundle in
-- Amazon S3.
applicationVersionDescription_sourceBundle :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe S3Location)
applicationVersionDescription_sourceBundle :: (Maybe S3Location -> f (Maybe S3Location))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_sourceBundle = (ApplicationVersionDescription -> Maybe S3Location)
-> (ApplicationVersionDescription
    -> Maybe S3Location -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe S3Location)
     (Maybe S3Location)
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 last modified date of the application version.
applicationVersionDescription_dateUpdated :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.UTCTime)
applicationVersionDescription_dateUpdated :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_dateUpdated = (ApplicationVersionDescription -> Maybe ISO8601)
-> (ApplicationVersionDescription
    -> Maybe ISO8601 -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe ISO8601)
     (Maybe ISO8601)
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) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> ApplicationVersionDescription
 -> f ApplicationVersionDescription)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ApplicationVersionDescription
-> f ApplicationVersionDescription
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The creation date of the application version.
applicationVersionDescription_dateCreated :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.UTCTime)
applicationVersionDescription_dateCreated :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_dateCreated = (ApplicationVersionDescription -> Maybe ISO8601)
-> (ApplicationVersionDescription
    -> Maybe ISO8601 -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe ISO8601)
     (Maybe ISO8601)
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) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> ApplicationVersionDescription
 -> f ApplicationVersionDescription)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ApplicationVersionDescription
-> f ApplicationVersionDescription
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A unique identifier for the application version.
applicationVersionDescription_versionLabel :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_versionLabel :: (Maybe Text -> f (Maybe Text))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_versionLabel = (ApplicationVersionDescription -> Maybe Text)
-> (ApplicationVersionDescription
    -> Maybe Text -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe Text)
     (Maybe Text)
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)

-- | 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 :: (Maybe SourceBuildInformation -> f (Maybe SourceBuildInformation))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_sourceBuildInformation = (ApplicationVersionDescription -> Maybe SourceBuildInformation)
-> (ApplicationVersionDescription
    -> Maybe SourceBuildInformation -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe SourceBuildInformation)
     (Maybe 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 name of the application to which the application version belongs.
applicationVersionDescription_applicationName :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_applicationName :: (Maybe Text -> f (Maybe Text))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_applicationName = (ApplicationVersionDescription -> Maybe Text)
-> (ApplicationVersionDescription
    -> Maybe Text -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe Text)
     (Maybe Text)
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 :: (Maybe Text -> f (Maybe Text))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_applicationVersionArn = (ApplicationVersionDescription -> Maybe Text)
-> (ApplicationVersionDescription
    -> Maybe Text -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe Text)
     (Maybe Text)
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 :: (Maybe Text -> f (Maybe Text))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_buildArn = (ApplicationVersionDescription -> Maybe Text)
-> (ApplicationVersionDescription
    -> Maybe Text -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe Text)
     (Maybe Text)
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 description of the application version.
applicationVersionDescription_description :: Lens.Lens' ApplicationVersionDescription (Prelude.Maybe Prelude.Text)
applicationVersionDescription_description :: (Maybe Text -> f (Maybe Text))
-> ApplicationVersionDescription -> f ApplicationVersionDescription
applicationVersionDescription_description = (ApplicationVersionDescription -> Maybe Text)
-> (ApplicationVersionDescription
    -> Maybe Text -> ApplicationVersionDescription)
-> Lens
     ApplicationVersionDescription
     ApplicationVersionDescription
     (Maybe Text)
     (Maybe Text)
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)

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

instance
  Prelude.Hashable
    ApplicationVersionDescription

instance Prelude.NFData ApplicationVersionDescription