{-# 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.ServerlessApplicationRepository.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)
--
-- Updates the specified application.
module Amazonka.ServerlessApplicationRepository.UpdateApplication
  ( -- * Creating a Request
    UpdateApplication (..),
    newUpdateApplication,

    -- * Request Lenses
    updateApplication_author,
    updateApplication_description,
    updateApplication_homePageUrl,
    updateApplication_labels,
    updateApplication_readmeBody,
    updateApplication_readmeUrl,
    updateApplication_applicationId,

    -- * Destructuring the Response
    UpdateApplicationResponse (..),
    newUpdateApplicationResponse,

    -- * Response Lenses
    updateApplicationResponse_applicationId,
    updateApplicationResponse_author,
    updateApplicationResponse_creationTime,
    updateApplicationResponse_description,
    updateApplicationResponse_homePageUrl,
    updateApplicationResponse_isVerifiedAuthor,
    updateApplicationResponse_labels,
    updateApplicationResponse_licenseUrl,
    updateApplicationResponse_name,
    updateApplicationResponse_readmeUrl,
    updateApplicationResponse_spdxLicenseId,
    updateApplicationResponse_verifiedAuthorUrl,
    updateApplicationResponse_version,
    updateApplicationResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.ServerlessApplicationRepository.Types

-- | /See:/ 'newUpdateApplication' smart constructor.
data UpdateApplication = UpdateApplication'
  { -- | The name of the author publishing the app.
    --
    -- Minimum length=1. Maximum length=127.
    --
    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
    UpdateApplication -> Maybe Text
author :: Prelude.Maybe Prelude.Text,
    -- | The description of the application.
    --
    -- Minimum length=1. Maximum length=256
    UpdateApplication -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | A URL with more information about the application, for example the
    -- location of your GitHub repository for the application.
    UpdateApplication -> Maybe Text
homePageUrl :: Prelude.Maybe Prelude.Text,
    -- | Labels to improve discovery of apps in search results.
    --
    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
    --
    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
    UpdateApplication -> Maybe [Text]
labels :: Prelude.Maybe [Prelude.Text],
    -- | A text readme file in Markdown language that contains a more detailed
    -- description of the application and how it works.
    --
    -- Maximum size 5 MB
    UpdateApplication -> Maybe Text
readmeBody :: Prelude.Maybe Prelude.Text,
    -- | A link to the readme file in Markdown language that contains a more
    -- detailed description of the application and how it works.
    --
    -- Maximum size 5 MB
    UpdateApplication -> Maybe Text
readmeUrl :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the application.
    UpdateApplication -> Text
applicationId :: Prelude.Text
  }
  deriving (UpdateApplication -> UpdateApplication -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateApplication -> UpdateApplication -> Bool
$c/= :: UpdateApplication -> UpdateApplication -> Bool
== :: UpdateApplication -> UpdateApplication -> Bool
$c== :: UpdateApplication -> UpdateApplication -> Bool
Prelude.Eq, ReadPrec [UpdateApplication]
ReadPrec UpdateApplication
Int -> ReadS UpdateApplication
ReadS [UpdateApplication]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateApplication]
$creadListPrec :: ReadPrec [UpdateApplication]
readPrec :: ReadPrec UpdateApplication
$creadPrec :: ReadPrec UpdateApplication
readList :: ReadS [UpdateApplication]
$creadList :: ReadS [UpdateApplication]
readsPrec :: Int -> ReadS UpdateApplication
$creadsPrec :: Int -> ReadS UpdateApplication
Prelude.Read, Int -> UpdateApplication -> ShowS
[UpdateApplication] -> ShowS
UpdateApplication -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateApplication] -> ShowS
$cshowList :: [UpdateApplication] -> ShowS
show :: UpdateApplication -> String
$cshow :: UpdateApplication -> String
showsPrec :: Int -> UpdateApplication -> ShowS
$cshowsPrec :: Int -> UpdateApplication -> ShowS
Prelude.Show, forall x. Rep UpdateApplication x -> UpdateApplication
forall x. UpdateApplication -> Rep UpdateApplication x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateApplication x -> UpdateApplication
$cfrom :: forall x. UpdateApplication -> Rep UpdateApplication x
Prelude.Generic)

-- |
-- Create a value of 'UpdateApplication' 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:
--
-- 'author', 'updateApplication_author' - The name of the author publishing the app.
--
-- Minimum length=1. Maximum length=127.
--
-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
--
-- 'description', 'updateApplication_description' - The description of the application.
--
-- Minimum length=1. Maximum length=256
--
-- 'homePageUrl', 'updateApplication_homePageUrl' - A URL with more information about the application, for example the
-- location of your GitHub repository for the application.
--
-- 'labels', 'updateApplication_labels' - Labels to improve discovery of apps in search results.
--
-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
--
-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
--
-- 'readmeBody', 'updateApplication_readmeBody' - A text readme file in Markdown language that contains a more detailed
-- description of the application and how it works.
--
-- Maximum size 5 MB
--
-- 'readmeUrl', 'updateApplication_readmeUrl' - A link to the readme file in Markdown language that contains a more
-- detailed description of the application and how it works.
--
-- Maximum size 5 MB
--
-- 'applicationId', 'updateApplication_applicationId' - The Amazon Resource Name (ARN) of the application.
newUpdateApplication ::
  -- | 'applicationId'
  Prelude.Text ->
  UpdateApplication
newUpdateApplication :: Text -> UpdateApplication
newUpdateApplication Text
pApplicationId_ =
  UpdateApplication'
    { $sel:author:UpdateApplication' :: Maybe Text
author = forall a. Maybe a
Prelude.Nothing,
      $sel:description:UpdateApplication' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:homePageUrl:UpdateApplication' :: Maybe Text
homePageUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:labels:UpdateApplication' :: Maybe [Text]
labels = forall a. Maybe a
Prelude.Nothing,
      $sel:readmeBody:UpdateApplication' :: Maybe Text
readmeBody = forall a. Maybe a
Prelude.Nothing,
      $sel:readmeUrl:UpdateApplication' :: Maybe Text
readmeUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:applicationId:UpdateApplication' :: Text
applicationId = Text
pApplicationId_
    }

-- | The name of the author publishing the app.
--
-- Minimum length=1. Maximum length=127.
--
-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
updateApplication_author :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
updateApplication_author :: Lens' UpdateApplication (Maybe Text)
updateApplication_author = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplication' {Maybe Text
author :: Maybe Text
$sel:author:UpdateApplication' :: UpdateApplication -> Maybe Text
author} -> Maybe Text
author) (\s :: UpdateApplication
s@UpdateApplication' {} Maybe Text
a -> UpdateApplication
s {$sel:author:UpdateApplication' :: Maybe Text
author = Maybe Text
a} :: UpdateApplication)

-- | The description of the application.
--
-- Minimum length=1. Maximum length=256
updateApplication_description :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
updateApplication_description :: Lens' UpdateApplication (Maybe Text)
updateApplication_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplication' {Maybe Text
description :: Maybe Text
$sel:description:UpdateApplication' :: UpdateApplication -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateApplication
s@UpdateApplication' {} Maybe Text
a -> UpdateApplication
s {$sel:description:UpdateApplication' :: Maybe Text
description = Maybe Text
a} :: UpdateApplication)

-- | A URL with more information about the application, for example the
-- location of your GitHub repository for the application.
updateApplication_homePageUrl :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
updateApplication_homePageUrl :: Lens' UpdateApplication (Maybe Text)
updateApplication_homePageUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplication' {Maybe Text
homePageUrl :: Maybe Text
$sel:homePageUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
homePageUrl} -> Maybe Text
homePageUrl) (\s :: UpdateApplication
s@UpdateApplication' {} Maybe Text
a -> UpdateApplication
s {$sel:homePageUrl:UpdateApplication' :: Maybe Text
homePageUrl = Maybe Text
a} :: UpdateApplication)

-- | Labels to improve discovery of apps in search results.
--
-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
--
-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
updateApplication_labels :: Lens.Lens' UpdateApplication (Prelude.Maybe [Prelude.Text])
updateApplication_labels :: Lens' UpdateApplication (Maybe [Text])
updateApplication_labels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplication' {Maybe [Text]
labels :: Maybe [Text]
$sel:labels:UpdateApplication' :: UpdateApplication -> Maybe [Text]
labels} -> Maybe [Text]
labels) (\s :: UpdateApplication
s@UpdateApplication' {} Maybe [Text]
a -> UpdateApplication
s {$sel:labels:UpdateApplication' :: Maybe [Text]
labels = Maybe [Text]
a} :: UpdateApplication) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A text readme file in Markdown language that contains a more detailed
-- description of the application and how it works.
--
-- Maximum size 5 MB
updateApplication_readmeBody :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
updateApplication_readmeBody :: Lens' UpdateApplication (Maybe Text)
updateApplication_readmeBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplication' {Maybe Text
readmeBody :: Maybe Text
$sel:readmeBody:UpdateApplication' :: UpdateApplication -> Maybe Text
readmeBody} -> Maybe Text
readmeBody) (\s :: UpdateApplication
s@UpdateApplication' {} Maybe Text
a -> UpdateApplication
s {$sel:readmeBody:UpdateApplication' :: Maybe Text
readmeBody = Maybe Text
a} :: UpdateApplication)

-- | A link to the readme file in Markdown language that contains a more
-- detailed description of the application and how it works.
--
-- Maximum size 5 MB
updateApplication_readmeUrl :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
updateApplication_readmeUrl :: Lens' UpdateApplication (Maybe Text)
updateApplication_readmeUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplication' {Maybe Text
readmeUrl :: Maybe Text
$sel:readmeUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
readmeUrl} -> Maybe Text
readmeUrl) (\s :: UpdateApplication
s@UpdateApplication' {} Maybe Text
a -> UpdateApplication
s {$sel:readmeUrl:UpdateApplication' :: Maybe Text
readmeUrl = Maybe Text
a} :: UpdateApplication)

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

instance Core.AWSRequest UpdateApplication where
  type
    AWSResponse UpdateApplication =
      UpdateApplicationResponse
  request :: (Service -> Service)
-> UpdateApplication -> Request UpdateApplication
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateApplication
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateApplication)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Version
-> Int
-> UpdateApplicationResponse
UpdateApplicationResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"applicationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"author")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"creationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"homePageUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"isVerifiedAuthor")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"labels" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"licenseUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"readmeUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"spdxLicenseId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"verifiedAuthorUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"version")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateApplication where
  hashWithSalt :: Int -> UpdateApplication -> Int
hashWithSalt Int
_salt UpdateApplication' {Maybe [Text]
Maybe Text
Text
applicationId :: Text
readmeUrl :: Maybe Text
readmeBody :: Maybe Text
labels :: Maybe [Text]
homePageUrl :: Maybe Text
description :: Maybe Text
author :: Maybe Text
$sel:applicationId:UpdateApplication' :: UpdateApplication -> Text
$sel:readmeUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:readmeBody:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:labels:UpdateApplication' :: UpdateApplication -> Maybe [Text]
$sel:homePageUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:description:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:author:UpdateApplication' :: UpdateApplication -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
author
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
homePageUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
labels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
readmeBody
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
readmeUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationId

instance Prelude.NFData UpdateApplication where
  rnf :: UpdateApplication -> ()
rnf UpdateApplication' {Maybe [Text]
Maybe Text
Text
applicationId :: Text
readmeUrl :: Maybe Text
readmeBody :: Maybe Text
labels :: Maybe [Text]
homePageUrl :: Maybe Text
description :: Maybe Text
author :: Maybe Text
$sel:applicationId:UpdateApplication' :: UpdateApplication -> Text
$sel:readmeUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:readmeBody:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:labels:UpdateApplication' :: UpdateApplication -> Maybe [Text]
$sel:homePageUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:description:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:author:UpdateApplication' :: UpdateApplication -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
author
      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 Text
homePageUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
labels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
readmeBody
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
readmeUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
applicationId

instance Data.ToHeaders UpdateApplication where
  toHeaders :: UpdateApplication -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateApplication where
  toJSON :: UpdateApplication -> Value
toJSON UpdateApplication' {Maybe [Text]
Maybe Text
Text
applicationId :: Text
readmeUrl :: Maybe Text
readmeBody :: Maybe Text
labels :: Maybe [Text]
homePageUrl :: Maybe Text
description :: Maybe Text
author :: Maybe Text
$sel:applicationId:UpdateApplication' :: UpdateApplication -> Text
$sel:readmeUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:readmeBody:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:labels:UpdateApplication' :: UpdateApplication -> Maybe [Text]
$sel:homePageUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:description:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:author:UpdateApplication' :: UpdateApplication -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"author" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
author,
            (Key
"description" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
description,
            (Key
"homePageUrl" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
homePageUrl,
            (Key
"labels" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
labels,
            (Key
"readmeBody" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
readmeBody,
            (Key
"readmeUrl" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
readmeUrl
          ]
      )

instance Data.ToPath UpdateApplication where
  toPath :: UpdateApplication -> ByteString
toPath UpdateApplication' {Maybe [Text]
Maybe Text
Text
applicationId :: Text
readmeUrl :: Maybe Text
readmeBody :: Maybe Text
labels :: Maybe [Text]
homePageUrl :: Maybe Text
description :: Maybe Text
author :: Maybe Text
$sel:applicationId:UpdateApplication' :: UpdateApplication -> Text
$sel:readmeUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:readmeBody:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:labels:UpdateApplication' :: UpdateApplication -> Maybe [Text]
$sel:homePageUrl:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:description:UpdateApplication' :: UpdateApplication -> Maybe Text
$sel:author:UpdateApplication' :: UpdateApplication -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/applications/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
applicationId]

instance Data.ToQuery UpdateApplication where
  toQuery :: UpdateApplication -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newUpdateApplicationResponse' smart constructor.
data UpdateApplicationResponse = UpdateApplicationResponse'
  { -- | The application Amazon Resource Name (ARN).
    UpdateApplicationResponse -> Maybe Text
applicationId :: Prelude.Maybe Prelude.Text,
    -- | The name of the author publishing the app.
    --
    -- Minimum length=1. Maximum length=127.
    --
    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
    UpdateApplicationResponse -> Maybe Text
author :: Prelude.Maybe Prelude.Text,
    -- | The date and time this resource was created.
    UpdateApplicationResponse -> Maybe Text
creationTime :: Prelude.Maybe Prelude.Text,
    -- | The description of the application.
    --
    -- Minimum length=1. Maximum length=256
    UpdateApplicationResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | A URL with more information about the application, for example the
    -- location of your GitHub repository for the application.
    UpdateApplicationResponse -> Maybe Text
homePageUrl :: Prelude.Maybe Prelude.Text,
    -- | Whether the author of this application has been verified. This means
    -- means that AWS has made a good faith review, as a reasonable and prudent
    -- service provider, of the information provided by the requester and has
    -- confirmed that the requester\'s identity is as claimed.
    UpdateApplicationResponse -> Maybe Bool
isVerifiedAuthor :: Prelude.Maybe Prelude.Bool,
    -- | Labels to improve discovery of apps in search results.
    --
    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
    --
    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
    UpdateApplicationResponse -> Maybe [Text]
labels :: Prelude.Maybe [Prelude.Text],
    -- | A link to a license file of the app that matches the spdxLicenseID value
    -- of your application.
    --
    -- Maximum size 5 MB
    UpdateApplicationResponse -> Maybe Text
licenseUrl :: Prelude.Maybe Prelude.Text,
    -- | The name of the application.
    --
    -- Minimum length=1. Maximum length=140
    --
    -- Pattern: \"[a-zA-Z0-9\\\\-]+\";
    UpdateApplicationResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | A link to the readme file in Markdown language that contains a more
    -- detailed description of the application and how it works.
    --
    -- Maximum size 5 MB
    UpdateApplicationResponse -> Maybe Text
readmeUrl :: Prelude.Maybe Prelude.Text,
    -- | A valid identifier from https:\/\/spdx.org\/licenses\/.
    UpdateApplicationResponse -> Maybe Text
spdxLicenseId :: Prelude.Maybe Prelude.Text,
    -- | The URL to the public profile of a verified author. This URL is
    -- submitted by the author.
    UpdateApplicationResponse -> Maybe Text
verifiedAuthorUrl :: Prelude.Maybe Prelude.Text,
    -- | Version information about the application.
    UpdateApplicationResponse -> Maybe Version
version :: Prelude.Maybe Version,
    -- | The response's http status code.
    UpdateApplicationResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateApplicationResponse -> UpdateApplicationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateApplicationResponse -> UpdateApplicationResponse -> Bool
$c/= :: UpdateApplicationResponse -> UpdateApplicationResponse -> Bool
== :: UpdateApplicationResponse -> UpdateApplicationResponse -> Bool
$c== :: UpdateApplicationResponse -> UpdateApplicationResponse -> Bool
Prelude.Eq, ReadPrec [UpdateApplicationResponse]
ReadPrec UpdateApplicationResponse
Int -> ReadS UpdateApplicationResponse
ReadS [UpdateApplicationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateApplicationResponse]
$creadListPrec :: ReadPrec [UpdateApplicationResponse]
readPrec :: ReadPrec UpdateApplicationResponse
$creadPrec :: ReadPrec UpdateApplicationResponse
readList :: ReadS [UpdateApplicationResponse]
$creadList :: ReadS [UpdateApplicationResponse]
readsPrec :: Int -> ReadS UpdateApplicationResponse
$creadsPrec :: Int -> ReadS UpdateApplicationResponse
Prelude.Read, Int -> UpdateApplicationResponse -> ShowS
[UpdateApplicationResponse] -> ShowS
UpdateApplicationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateApplicationResponse] -> ShowS
$cshowList :: [UpdateApplicationResponse] -> ShowS
show :: UpdateApplicationResponse -> String
$cshow :: UpdateApplicationResponse -> String
showsPrec :: Int -> UpdateApplicationResponse -> ShowS
$cshowsPrec :: Int -> UpdateApplicationResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateApplicationResponse x -> UpdateApplicationResponse
forall x.
UpdateApplicationResponse -> Rep UpdateApplicationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateApplicationResponse x -> UpdateApplicationResponse
$cfrom :: forall x.
UpdateApplicationResponse -> Rep UpdateApplicationResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateApplicationResponse' 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:
--
-- 'applicationId', 'updateApplicationResponse_applicationId' - The application Amazon Resource Name (ARN).
--
-- 'author', 'updateApplicationResponse_author' - The name of the author publishing the app.
--
-- Minimum length=1. Maximum length=127.
--
-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
--
-- 'creationTime', 'updateApplicationResponse_creationTime' - The date and time this resource was created.
--
-- 'description', 'updateApplicationResponse_description' - The description of the application.
--
-- Minimum length=1. Maximum length=256
--
-- 'homePageUrl', 'updateApplicationResponse_homePageUrl' - A URL with more information about the application, for example the
-- location of your GitHub repository for the application.
--
-- 'isVerifiedAuthor', 'updateApplicationResponse_isVerifiedAuthor' - Whether the author of this application has been verified. This means
-- means that AWS has made a good faith review, as a reasonable and prudent
-- service provider, of the information provided by the requester and has
-- confirmed that the requester\'s identity is as claimed.
--
-- 'labels', 'updateApplicationResponse_labels' - Labels to improve discovery of apps in search results.
--
-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
--
-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
--
-- 'licenseUrl', 'updateApplicationResponse_licenseUrl' - A link to a license file of the app that matches the spdxLicenseID value
-- of your application.
--
-- Maximum size 5 MB
--
-- 'name', 'updateApplicationResponse_name' - The name of the application.
--
-- Minimum length=1. Maximum length=140
--
-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
--
-- 'readmeUrl', 'updateApplicationResponse_readmeUrl' - A link to the readme file in Markdown language that contains a more
-- detailed description of the application and how it works.
--
-- Maximum size 5 MB
--
-- 'spdxLicenseId', 'updateApplicationResponse_spdxLicenseId' - A valid identifier from https:\/\/spdx.org\/licenses\/.
--
-- 'verifiedAuthorUrl', 'updateApplicationResponse_verifiedAuthorUrl' - The URL to the public profile of a verified author. This URL is
-- submitted by the author.
--
-- 'version', 'updateApplicationResponse_version' - Version information about the application.
--
-- 'httpStatus', 'updateApplicationResponse_httpStatus' - The response's http status code.
newUpdateApplicationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateApplicationResponse
newUpdateApplicationResponse :: Int -> UpdateApplicationResponse
newUpdateApplicationResponse Int
pHttpStatus_ =
  UpdateApplicationResponse'
    { $sel:applicationId:UpdateApplicationResponse' :: Maybe Text
applicationId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:author:UpdateApplicationResponse' :: Maybe Text
author = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:UpdateApplicationResponse' :: Maybe Text
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:UpdateApplicationResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:homePageUrl:UpdateApplicationResponse' :: Maybe Text
homePageUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:isVerifiedAuthor:UpdateApplicationResponse' :: Maybe Bool
isVerifiedAuthor = forall a. Maybe a
Prelude.Nothing,
      $sel:labels:UpdateApplicationResponse' :: Maybe [Text]
labels = forall a. Maybe a
Prelude.Nothing,
      $sel:licenseUrl:UpdateApplicationResponse' :: Maybe Text
licenseUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateApplicationResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:readmeUrl:UpdateApplicationResponse' :: Maybe Text
readmeUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:spdxLicenseId:UpdateApplicationResponse' :: Maybe Text
spdxLicenseId = forall a. Maybe a
Prelude.Nothing,
      $sel:verifiedAuthorUrl:UpdateApplicationResponse' :: Maybe Text
verifiedAuthorUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:version:UpdateApplicationResponse' :: Maybe Version
version = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateApplicationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The application Amazon Resource Name (ARN).
updateApplicationResponse_applicationId :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_applicationId :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
applicationId :: Maybe Text
$sel:applicationId:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
applicationId} -> Maybe Text
applicationId) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:applicationId:UpdateApplicationResponse' :: Maybe Text
applicationId = Maybe Text
a} :: UpdateApplicationResponse)

-- | The name of the author publishing the app.
--
-- Minimum length=1. Maximum length=127.
--
-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
updateApplicationResponse_author :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_author :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_author = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
author :: Maybe Text
$sel:author:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
author} -> Maybe Text
author) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:author:UpdateApplicationResponse' :: Maybe Text
author = Maybe Text
a} :: UpdateApplicationResponse)

-- | The date and time this resource was created.
updateApplicationResponse_creationTime :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_creationTime :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
creationTime :: Maybe Text
$sel:creationTime:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
creationTime} -> Maybe Text
creationTime) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:creationTime:UpdateApplicationResponse' :: Maybe Text
creationTime = Maybe Text
a} :: UpdateApplicationResponse)

-- | The description of the application.
--
-- Minimum length=1. Maximum length=256
updateApplicationResponse_description :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_description :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
description :: Maybe Text
$sel:description:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:description:UpdateApplicationResponse' :: Maybe Text
description = Maybe Text
a} :: UpdateApplicationResponse)

-- | A URL with more information about the application, for example the
-- location of your GitHub repository for the application.
updateApplicationResponse_homePageUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_homePageUrl :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_homePageUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
homePageUrl :: Maybe Text
$sel:homePageUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
homePageUrl} -> Maybe Text
homePageUrl) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:homePageUrl:UpdateApplicationResponse' :: Maybe Text
homePageUrl = Maybe Text
a} :: UpdateApplicationResponse)

-- | Whether the author of this application has been verified. This means
-- means that AWS has made a good faith review, as a reasonable and prudent
-- service provider, of the information provided by the requester and has
-- confirmed that the requester\'s identity is as claimed.
updateApplicationResponse_isVerifiedAuthor :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Bool)
updateApplicationResponse_isVerifiedAuthor :: Lens' UpdateApplicationResponse (Maybe Bool)
updateApplicationResponse_isVerifiedAuthor = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Bool
isVerifiedAuthor :: Maybe Bool
$sel:isVerifiedAuthor:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Bool
isVerifiedAuthor} -> Maybe Bool
isVerifiedAuthor) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Bool
a -> UpdateApplicationResponse
s {$sel:isVerifiedAuthor:UpdateApplicationResponse' :: Maybe Bool
isVerifiedAuthor = Maybe Bool
a} :: UpdateApplicationResponse)

-- | Labels to improve discovery of apps in search results.
--
-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
--
-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
updateApplicationResponse_labels :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe [Prelude.Text])
updateApplicationResponse_labels :: Lens' UpdateApplicationResponse (Maybe [Text])
updateApplicationResponse_labels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe [Text]
labels :: Maybe [Text]
$sel:labels:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe [Text]
labels} -> Maybe [Text]
labels) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe [Text]
a -> UpdateApplicationResponse
s {$sel:labels:UpdateApplicationResponse' :: Maybe [Text]
labels = Maybe [Text]
a} :: UpdateApplicationResponse) 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 s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A link to a license file of the app that matches the spdxLicenseID value
-- of your application.
--
-- Maximum size 5 MB
updateApplicationResponse_licenseUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_licenseUrl :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_licenseUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
licenseUrl :: Maybe Text
$sel:licenseUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
licenseUrl} -> Maybe Text
licenseUrl) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:licenseUrl:UpdateApplicationResponse' :: Maybe Text
licenseUrl = Maybe Text
a} :: UpdateApplicationResponse)

-- | The name of the application.
--
-- Minimum length=1. Maximum length=140
--
-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
updateApplicationResponse_name :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_name :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
name :: Maybe Text
$sel:name:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:name:UpdateApplicationResponse' :: Maybe Text
name = Maybe Text
a} :: UpdateApplicationResponse)

-- | A link to the readme file in Markdown language that contains a more
-- detailed description of the application and how it works.
--
-- Maximum size 5 MB
updateApplicationResponse_readmeUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_readmeUrl :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_readmeUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
readmeUrl :: Maybe Text
$sel:readmeUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
readmeUrl} -> Maybe Text
readmeUrl) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:readmeUrl:UpdateApplicationResponse' :: Maybe Text
readmeUrl = Maybe Text
a} :: UpdateApplicationResponse)

-- | A valid identifier from https:\/\/spdx.org\/licenses\/.
updateApplicationResponse_spdxLicenseId :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_spdxLicenseId :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_spdxLicenseId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
spdxLicenseId :: Maybe Text
$sel:spdxLicenseId:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
spdxLicenseId} -> Maybe Text
spdxLicenseId) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:spdxLicenseId:UpdateApplicationResponse' :: Maybe Text
spdxLicenseId = Maybe Text
a} :: UpdateApplicationResponse)

-- | The URL to the public profile of a verified author. This URL is
-- submitted by the author.
updateApplicationResponse_verifiedAuthorUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
updateApplicationResponse_verifiedAuthorUrl :: Lens' UpdateApplicationResponse (Maybe Text)
updateApplicationResponse_verifiedAuthorUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Text
verifiedAuthorUrl :: Maybe Text
$sel:verifiedAuthorUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
verifiedAuthorUrl} -> Maybe Text
verifiedAuthorUrl) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Text
a -> UpdateApplicationResponse
s {$sel:verifiedAuthorUrl:UpdateApplicationResponse' :: Maybe Text
verifiedAuthorUrl = Maybe Text
a} :: UpdateApplicationResponse)

-- | Version information about the application.
updateApplicationResponse_version :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Version)
updateApplicationResponse_version :: Lens' UpdateApplicationResponse (Maybe Version)
updateApplicationResponse_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Maybe Version
version :: Maybe Version
$sel:version:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Version
version} -> Maybe Version
version) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Maybe Version
a -> UpdateApplicationResponse
s {$sel:version:UpdateApplicationResponse' :: Maybe Version
version = Maybe Version
a} :: UpdateApplicationResponse)

-- | The response's http status code.
updateApplicationResponse_httpStatus :: Lens.Lens' UpdateApplicationResponse Prelude.Int
updateApplicationResponse_httpStatus :: Lens' UpdateApplicationResponse Int
updateApplicationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateApplicationResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateApplicationResponse' :: UpdateApplicationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateApplicationResponse
s@UpdateApplicationResponse' {} Int
a -> UpdateApplicationResponse
s {$sel:httpStatus:UpdateApplicationResponse' :: Int
httpStatus = Int
a} :: UpdateApplicationResponse)

instance Prelude.NFData UpdateApplicationResponse where
  rnf :: UpdateApplicationResponse -> ()
rnf UpdateApplicationResponse' {Int
Maybe Bool
Maybe [Text]
Maybe Text
Maybe Version
httpStatus :: Int
version :: Maybe Version
verifiedAuthorUrl :: Maybe Text
spdxLicenseId :: Maybe Text
readmeUrl :: Maybe Text
name :: Maybe Text
licenseUrl :: Maybe Text
labels :: Maybe [Text]
isVerifiedAuthor :: Maybe Bool
homePageUrl :: Maybe Text
description :: Maybe Text
creationTime :: Maybe Text
author :: Maybe Text
applicationId :: Maybe Text
$sel:httpStatus:UpdateApplicationResponse' :: UpdateApplicationResponse -> Int
$sel:version:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Version
$sel:verifiedAuthorUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:spdxLicenseId:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:readmeUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:name:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:licenseUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:labels:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe [Text]
$sel:isVerifiedAuthor:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Bool
$sel:homePageUrl:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:description:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:creationTime:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:author:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
$sel:applicationId:UpdateApplicationResponse' :: UpdateApplicationResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
author
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
creationTime
      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 Text
homePageUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isVerifiedAuthor
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
labels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
licenseUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
readmeUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
spdxLicenseId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
verifiedAuthorUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Version
version
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus