{-# 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.OpsWorks.Types.App
-- 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.OpsWorks.Types.App where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.OpsWorks.Types.AppAttributesKeys
import Amazonka.OpsWorks.Types.AppType
import Amazonka.OpsWorks.Types.DataSource
import Amazonka.OpsWorks.Types.EnvironmentVariable
import Amazonka.OpsWorks.Types.Source
import Amazonka.OpsWorks.Types.SslConfiguration
import qualified Amazonka.Prelude as Prelude

-- | A description of the app.
--
-- /See:/ 'newApp' smart constructor.
data App = App'
  { -- | The app ID.
    App -> Maybe Text
appId :: Prelude.Maybe Prelude.Text,
    -- | A @Source@ object that describes the app repository.
    App -> Maybe Source
appSource :: Prelude.Maybe Source,
    -- | The stack attributes.
    App -> Maybe (HashMap AppAttributesKeys Text)
attributes :: Prelude.Maybe (Prelude.HashMap AppAttributesKeys Prelude.Text),
    -- | When the app was created.
    App -> Maybe Text
createdAt :: Prelude.Maybe Prelude.Text,
    -- | The app\'s data sources.
    App -> Maybe [DataSource]
dataSources :: Prelude.Maybe [DataSource],
    -- | A description of the app.
    App -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The app vhost settings with multiple domains separated by commas. For
    -- example: @\'www.example.com, example.com\'@
    App -> Maybe [Text]
domains :: Prelude.Maybe [Prelude.Text],
    -- | Whether to enable SSL for the app.
    App -> Maybe Bool
enableSsl :: Prelude.Maybe Prelude.Bool,
    -- | An array of @EnvironmentVariable@ objects that specify environment
    -- variables to be associated with the app. After you deploy the app, these
    -- variables are defined on the associated app server instances. For more
    -- information, see
    -- <https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment Environment Variables>.
    --
    -- There is no specific limit on the number of environment variables.
    -- However, the size of the associated data structure - which includes the
    -- variable names, values, and protected flag values - cannot exceed 20 KB.
    -- This limit should accommodate most if not all use cases, but if you do
    -- exceed it, you will cause an exception (API) with an \"Environment: is
    -- too large (maximum is 20 KB)\" message.
    App -> Maybe [EnvironmentVariable]
environment :: Prelude.Maybe [EnvironmentVariable],
    -- | The app name.
    App -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The app\'s short name.
    App -> Maybe Text
shortname :: Prelude.Maybe Prelude.Text,
    -- | An @SslConfiguration@ object with the SSL configuration.
    App -> Maybe SslConfiguration
sslConfiguration :: Prelude.Maybe SslConfiguration,
    -- | The app stack ID.
    App -> Maybe Text
stackId :: Prelude.Maybe Prelude.Text,
    -- | The app type.
    App -> Maybe AppType
type' :: Prelude.Maybe AppType
  }
  deriving (App -> App -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: App -> App -> Bool
$c/= :: App -> App -> Bool
== :: App -> App -> Bool
$c== :: App -> App -> Bool
Prelude.Eq, ReadPrec [App]
ReadPrec App
Int -> ReadS App
ReadS [App]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [App]
$creadListPrec :: ReadPrec [App]
readPrec :: ReadPrec App
$creadPrec :: ReadPrec App
readList :: ReadS [App]
$creadList :: ReadS [App]
readsPrec :: Int -> ReadS App
$creadsPrec :: Int -> ReadS App
Prelude.Read, Int -> App -> ShowS
[App] -> ShowS
App -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [App] -> ShowS
$cshowList :: [App] -> ShowS
show :: App -> String
$cshow :: App -> String
showsPrec :: Int -> App -> ShowS
$cshowsPrec :: Int -> App -> ShowS
Prelude.Show, forall x. Rep App x -> App
forall x. App -> Rep App x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep App x -> App
$cfrom :: forall x. App -> Rep App x
Prelude.Generic)

-- |
-- Create a value of 'App' 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:
--
-- 'appId', 'app_appId' - The app ID.
--
-- 'appSource', 'app_appSource' - A @Source@ object that describes the app repository.
--
-- 'attributes', 'app_attributes' - The stack attributes.
--
-- 'createdAt', 'app_createdAt' - When the app was created.
--
-- 'dataSources', 'app_dataSources' - The app\'s data sources.
--
-- 'description', 'app_description' - A description of the app.
--
-- 'domains', 'app_domains' - The app vhost settings with multiple domains separated by commas. For
-- example: @\'www.example.com, example.com\'@
--
-- 'enableSsl', 'app_enableSsl' - Whether to enable SSL for the app.
--
-- 'environment', 'app_environment' - An array of @EnvironmentVariable@ objects that specify environment
-- variables to be associated with the app. After you deploy the app, these
-- variables are defined on the associated app server instances. For more
-- information, see
-- <https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment Environment Variables>.
--
-- There is no specific limit on the number of environment variables.
-- However, the size of the associated data structure - which includes the
-- variable names, values, and protected flag values - cannot exceed 20 KB.
-- This limit should accommodate most if not all use cases, but if you do
-- exceed it, you will cause an exception (API) with an \"Environment: is
-- too large (maximum is 20 KB)\" message.
--
-- 'name', 'app_name' - The app name.
--
-- 'shortname', 'app_shortname' - The app\'s short name.
--
-- 'sslConfiguration', 'app_sslConfiguration' - An @SslConfiguration@ object with the SSL configuration.
--
-- 'stackId', 'app_stackId' - The app stack ID.
--
-- 'type'', 'app_type' - The app type.
newApp ::
  App
newApp :: App
newApp =
  App'
    { $sel:appId:App' :: Maybe Text
appId = forall a. Maybe a
Prelude.Nothing,
      $sel:appSource:App' :: Maybe Source
appSource = forall a. Maybe a
Prelude.Nothing,
      $sel:attributes:App' :: Maybe (HashMap AppAttributesKeys Text)
attributes = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:App' :: Maybe Text
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:dataSources:App' :: Maybe [DataSource]
dataSources = forall a. Maybe a
Prelude.Nothing,
      $sel:description:App' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:domains:App' :: Maybe [Text]
domains = forall a. Maybe a
Prelude.Nothing,
      $sel:enableSsl:App' :: Maybe Bool
enableSsl = forall a. Maybe a
Prelude.Nothing,
      $sel:environment:App' :: Maybe [EnvironmentVariable]
environment = forall a. Maybe a
Prelude.Nothing,
      $sel:name:App' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:shortname:App' :: Maybe Text
shortname = forall a. Maybe a
Prelude.Nothing,
      $sel:sslConfiguration:App' :: Maybe SslConfiguration
sslConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:stackId:App' :: Maybe Text
stackId = forall a. Maybe a
Prelude.Nothing,
      $sel:type':App' :: Maybe AppType
type' = forall a. Maybe a
Prelude.Nothing
    }

-- | The app ID.
app_appId :: Lens.Lens' App (Prelude.Maybe Prelude.Text)
app_appId :: Lens' App (Maybe Text)
app_appId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Text
appId :: Maybe Text
$sel:appId:App' :: App -> Maybe Text
appId} -> Maybe Text
appId) (\s :: App
s@App' {} Maybe Text
a -> App
s {$sel:appId:App' :: Maybe Text
appId = Maybe Text
a} :: App)

-- | A @Source@ object that describes the app repository.
app_appSource :: Lens.Lens' App (Prelude.Maybe Source)
app_appSource :: Lens' App (Maybe Source)
app_appSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Source
appSource :: Maybe Source
$sel:appSource:App' :: App -> Maybe Source
appSource} -> Maybe Source
appSource) (\s :: App
s@App' {} Maybe Source
a -> App
s {$sel:appSource:App' :: Maybe Source
appSource = Maybe Source
a} :: App)

-- | The stack attributes.
app_attributes :: Lens.Lens' App (Prelude.Maybe (Prelude.HashMap AppAttributesKeys Prelude.Text))
app_attributes :: Lens' App (Maybe (HashMap AppAttributesKeys Text))
app_attributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe (HashMap AppAttributesKeys Text)
attributes :: Maybe (HashMap AppAttributesKeys Text)
$sel:attributes:App' :: App -> Maybe (HashMap AppAttributesKeys Text)
attributes} -> Maybe (HashMap AppAttributesKeys Text)
attributes) (\s :: App
s@App' {} Maybe (HashMap AppAttributesKeys Text)
a -> App
s {$sel:attributes:App' :: Maybe (HashMap AppAttributesKeys Text)
attributes = Maybe (HashMap AppAttributesKeys Text)
a} :: App) 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

-- | When the app was created.
app_createdAt :: Lens.Lens' App (Prelude.Maybe Prelude.Text)
app_createdAt :: Lens' App (Maybe Text)
app_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Text
createdAt :: Maybe Text
$sel:createdAt:App' :: App -> Maybe Text
createdAt} -> Maybe Text
createdAt) (\s :: App
s@App' {} Maybe Text
a -> App
s {$sel:createdAt:App' :: Maybe Text
createdAt = Maybe Text
a} :: App)

-- | The app\'s data sources.
app_dataSources :: Lens.Lens' App (Prelude.Maybe [DataSource])
app_dataSources :: Lens' App (Maybe [DataSource])
app_dataSources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe [DataSource]
dataSources :: Maybe [DataSource]
$sel:dataSources:App' :: App -> Maybe [DataSource]
dataSources} -> Maybe [DataSource]
dataSources) (\s :: App
s@App' {} Maybe [DataSource]
a -> App
s {$sel:dataSources:App' :: Maybe [DataSource]
dataSources = Maybe [DataSource]
a} :: App) 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 description of the app.
app_description :: Lens.Lens' App (Prelude.Maybe Prelude.Text)
app_description :: Lens' App (Maybe Text)
app_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Text
description :: Maybe Text
$sel:description:App' :: App -> Maybe Text
description} -> Maybe Text
description) (\s :: App
s@App' {} Maybe Text
a -> App
s {$sel:description:App' :: Maybe Text
description = Maybe Text
a} :: App)

-- | The app vhost settings with multiple domains separated by commas. For
-- example: @\'www.example.com, example.com\'@
app_domains :: Lens.Lens' App (Prelude.Maybe [Prelude.Text])
app_domains :: Lens' App (Maybe [Text])
app_domains = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe [Text]
domains :: Maybe [Text]
$sel:domains:App' :: App -> Maybe [Text]
domains} -> Maybe [Text]
domains) (\s :: App
s@App' {} Maybe [Text]
a -> App
s {$sel:domains:App' :: Maybe [Text]
domains = Maybe [Text]
a} :: App) 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

-- | Whether to enable SSL for the app.
app_enableSsl :: Lens.Lens' App (Prelude.Maybe Prelude.Bool)
app_enableSsl :: Lens' App (Maybe Bool)
app_enableSsl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Bool
enableSsl :: Maybe Bool
$sel:enableSsl:App' :: App -> Maybe Bool
enableSsl} -> Maybe Bool
enableSsl) (\s :: App
s@App' {} Maybe Bool
a -> App
s {$sel:enableSsl:App' :: Maybe Bool
enableSsl = Maybe Bool
a} :: App)

-- | An array of @EnvironmentVariable@ objects that specify environment
-- variables to be associated with the app. After you deploy the app, these
-- variables are defined on the associated app server instances. For more
-- information, see
-- <https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment Environment Variables>.
--
-- There is no specific limit on the number of environment variables.
-- However, the size of the associated data structure - which includes the
-- variable names, values, and protected flag values - cannot exceed 20 KB.
-- This limit should accommodate most if not all use cases, but if you do
-- exceed it, you will cause an exception (API) with an \"Environment: is
-- too large (maximum is 20 KB)\" message.
app_environment :: Lens.Lens' App (Prelude.Maybe [EnvironmentVariable])
app_environment :: Lens' App (Maybe [EnvironmentVariable])
app_environment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe [EnvironmentVariable]
environment :: Maybe [EnvironmentVariable]
$sel:environment:App' :: App -> Maybe [EnvironmentVariable]
environment} -> Maybe [EnvironmentVariable]
environment) (\s :: App
s@App' {} Maybe [EnvironmentVariable]
a -> App
s {$sel:environment:App' :: Maybe [EnvironmentVariable]
environment = Maybe [EnvironmentVariable]
a} :: App) 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

-- | The app name.
app_name :: Lens.Lens' App (Prelude.Maybe Prelude.Text)
app_name :: Lens' App (Maybe Text)
app_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Text
name :: Maybe Text
$sel:name:App' :: App -> Maybe Text
name} -> Maybe Text
name) (\s :: App
s@App' {} Maybe Text
a -> App
s {$sel:name:App' :: Maybe Text
name = Maybe Text
a} :: App)

-- | The app\'s short name.
app_shortname :: Lens.Lens' App (Prelude.Maybe Prelude.Text)
app_shortname :: Lens' App (Maybe Text)
app_shortname = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Text
shortname :: Maybe Text
$sel:shortname:App' :: App -> Maybe Text
shortname} -> Maybe Text
shortname) (\s :: App
s@App' {} Maybe Text
a -> App
s {$sel:shortname:App' :: Maybe Text
shortname = Maybe Text
a} :: App)

-- | An @SslConfiguration@ object with the SSL configuration.
app_sslConfiguration :: Lens.Lens' App (Prelude.Maybe SslConfiguration)
app_sslConfiguration :: Lens' App (Maybe SslConfiguration)
app_sslConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe SslConfiguration
sslConfiguration :: Maybe SslConfiguration
$sel:sslConfiguration:App' :: App -> Maybe SslConfiguration
sslConfiguration} -> Maybe SslConfiguration
sslConfiguration) (\s :: App
s@App' {} Maybe SslConfiguration
a -> App
s {$sel:sslConfiguration:App' :: Maybe SslConfiguration
sslConfiguration = Maybe SslConfiguration
a} :: App)

-- | The app stack ID.
app_stackId :: Lens.Lens' App (Prelude.Maybe Prelude.Text)
app_stackId :: Lens' App (Maybe Text)
app_stackId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe Text
stackId :: Maybe Text
$sel:stackId:App' :: App -> Maybe Text
stackId} -> Maybe Text
stackId) (\s :: App
s@App' {} Maybe Text
a -> App
s {$sel:stackId:App' :: Maybe Text
stackId = Maybe Text
a} :: App)

-- | The app type.
app_type :: Lens.Lens' App (Prelude.Maybe AppType)
app_type :: Lens' App (Maybe AppType)
app_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\App' {Maybe AppType
type' :: Maybe AppType
$sel:type':App' :: App -> Maybe AppType
type'} -> Maybe AppType
type') (\s :: App
s@App' {} Maybe AppType
a -> App
s {$sel:type':App' :: Maybe AppType
type' = Maybe AppType
a} :: App)

instance Data.FromJSON App where
  parseJSON :: Value -> Parser App
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"App"
      ( \Object
x ->
          Maybe Text
-> Maybe Source
-> Maybe (HashMap AppAttributesKeys Text)
-> Maybe Text
-> Maybe [DataSource]
-> Maybe Text
-> Maybe [Text]
-> Maybe Bool
-> Maybe [EnvironmentVariable]
-> Maybe Text
-> Maybe Text
-> Maybe SslConfiguration
-> Maybe Text
-> Maybe AppType
-> App
App'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AppId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AppSource")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Attributes" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"CreatedAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataSources" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (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 -> Parser (Maybe a)
Data..:? Key
"Domains" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"EnableSsl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Environment" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (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 -> Parser (Maybe a)
Data..:? Key
"Shortname")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SslConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StackId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Type")
      )

instance Prelude.Hashable App where
  hashWithSalt :: Int -> App -> Int
hashWithSalt Int
_salt App' {Maybe Bool
Maybe [Text]
Maybe [DataSource]
Maybe [EnvironmentVariable]
Maybe Text
Maybe (HashMap AppAttributesKeys Text)
Maybe AppType
Maybe Source
Maybe SslConfiguration
type' :: Maybe AppType
stackId :: Maybe Text
sslConfiguration :: Maybe SslConfiguration
shortname :: Maybe Text
name :: Maybe Text
environment :: Maybe [EnvironmentVariable]
enableSsl :: Maybe Bool
domains :: Maybe [Text]
description :: Maybe Text
dataSources :: Maybe [DataSource]
createdAt :: Maybe Text
attributes :: Maybe (HashMap AppAttributesKeys Text)
appSource :: Maybe Source
appId :: Maybe Text
$sel:type':App' :: App -> Maybe AppType
$sel:stackId:App' :: App -> Maybe Text
$sel:sslConfiguration:App' :: App -> Maybe SslConfiguration
$sel:shortname:App' :: App -> Maybe Text
$sel:name:App' :: App -> Maybe Text
$sel:environment:App' :: App -> Maybe [EnvironmentVariable]
$sel:enableSsl:App' :: App -> Maybe Bool
$sel:domains:App' :: App -> Maybe [Text]
$sel:description:App' :: App -> Maybe Text
$sel:dataSources:App' :: App -> Maybe [DataSource]
$sel:createdAt:App' :: App -> Maybe Text
$sel:attributes:App' :: App -> Maybe (HashMap AppAttributesKeys Text)
$sel:appSource:App' :: App -> Maybe Source
$sel:appId:App' :: App -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
appId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Source
appSource
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap AppAttributesKeys Text)
attributes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [DataSource]
dataSources
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
domains
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableSsl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [EnvironmentVariable]
environment
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
shortname
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SslConfiguration
sslConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
stackId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AppType
type'

instance Prelude.NFData App where
  rnf :: App -> ()
rnf App' {Maybe Bool
Maybe [Text]
Maybe [DataSource]
Maybe [EnvironmentVariable]
Maybe Text
Maybe (HashMap AppAttributesKeys Text)
Maybe AppType
Maybe Source
Maybe SslConfiguration
type' :: Maybe AppType
stackId :: Maybe Text
sslConfiguration :: Maybe SslConfiguration
shortname :: Maybe Text
name :: Maybe Text
environment :: Maybe [EnvironmentVariable]
enableSsl :: Maybe Bool
domains :: Maybe [Text]
description :: Maybe Text
dataSources :: Maybe [DataSource]
createdAt :: Maybe Text
attributes :: Maybe (HashMap AppAttributesKeys Text)
appSource :: Maybe Source
appId :: Maybe Text
$sel:type':App' :: App -> Maybe AppType
$sel:stackId:App' :: App -> Maybe Text
$sel:sslConfiguration:App' :: App -> Maybe SslConfiguration
$sel:shortname:App' :: App -> Maybe Text
$sel:name:App' :: App -> Maybe Text
$sel:environment:App' :: App -> Maybe [EnvironmentVariable]
$sel:enableSsl:App' :: App -> Maybe Bool
$sel:domains:App' :: App -> Maybe [Text]
$sel:description:App' :: App -> Maybe Text
$sel:dataSources:App' :: App -> Maybe [DataSource]
$sel:createdAt:App' :: App -> Maybe Text
$sel:attributes:App' :: App -> Maybe (HashMap AppAttributesKeys Text)
$sel:appSource:App' :: App -> Maybe Source
$sel:appId:App' :: App -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Source
appSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap AppAttributesKeys Text)
attributes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [DataSource]
dataSources
      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]
domains
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enableSsl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [EnvironmentVariable]
environment
      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
shortname
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SslConfiguration
sslConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stackId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AppType
type'