{-# 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.ResilienceHub.ImportResourcesToDraftAppVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Imports resources from sources such as a CloudFormation stack,
-- resource-groups, or application registry app to a draft application
-- version.
module Amazonka.ResilienceHub.ImportResourcesToDraftAppVersion
  ( -- * Creating a Request
    ImportResourcesToDraftAppVersion (..),
    newImportResourcesToDraftAppVersion,

    -- * Request Lenses
    importResourcesToDraftAppVersion_sourceArns,
    importResourcesToDraftAppVersion_terraformSources,
    importResourcesToDraftAppVersion_appArn,

    -- * Destructuring the Response
    ImportResourcesToDraftAppVersionResponse (..),
    newImportResourcesToDraftAppVersionResponse,

    -- * Response Lenses
    importResourcesToDraftAppVersionResponse_sourceArns,
    importResourcesToDraftAppVersionResponse_terraformSources,
    importResourcesToDraftAppVersionResponse_httpStatus,
    importResourcesToDraftAppVersionResponse_appArn,
    importResourcesToDraftAppVersionResponse_appVersion,
    importResourcesToDraftAppVersionResponse_status,
  )
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 Amazonka.ResilienceHub.Types
import qualified Amazonka.Response as Response

-- | /See:/ 'newImportResourcesToDraftAppVersion' smart constructor.
data ImportResourcesToDraftAppVersion = ImportResourcesToDraftAppVersion'
  { -- | The Amazon Resource Names (ARNs) for the resources that you want to
    -- import.
    ImportResourcesToDraftAppVersion -> Maybe [Text]
sourceArns :: Prelude.Maybe [Prelude.Text],
    -- | A list of terraform file s3 URLs you need to import.
    ImportResourcesToDraftAppVersion -> Maybe [TerraformSource]
terraformSources :: Prelude.Maybe [TerraformSource],
    -- | The Amazon Resource Name (ARN) of the application. The format for this
    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /AWS General Reference/.
    ImportResourcesToDraftAppVersion -> Text
appArn :: Prelude.Text
  }
  deriving (ImportResourcesToDraftAppVersion
-> ImportResourcesToDraftAppVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImportResourcesToDraftAppVersion
-> ImportResourcesToDraftAppVersion -> Bool
$c/= :: ImportResourcesToDraftAppVersion
-> ImportResourcesToDraftAppVersion -> Bool
== :: ImportResourcesToDraftAppVersion
-> ImportResourcesToDraftAppVersion -> Bool
$c== :: ImportResourcesToDraftAppVersion
-> ImportResourcesToDraftAppVersion -> Bool
Prelude.Eq, ReadPrec [ImportResourcesToDraftAppVersion]
ReadPrec ImportResourcesToDraftAppVersion
Int -> ReadS ImportResourcesToDraftAppVersion
ReadS [ImportResourcesToDraftAppVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImportResourcesToDraftAppVersion]
$creadListPrec :: ReadPrec [ImportResourcesToDraftAppVersion]
readPrec :: ReadPrec ImportResourcesToDraftAppVersion
$creadPrec :: ReadPrec ImportResourcesToDraftAppVersion
readList :: ReadS [ImportResourcesToDraftAppVersion]
$creadList :: ReadS [ImportResourcesToDraftAppVersion]
readsPrec :: Int -> ReadS ImportResourcesToDraftAppVersion
$creadsPrec :: Int -> ReadS ImportResourcesToDraftAppVersion
Prelude.Read, Int -> ImportResourcesToDraftAppVersion -> ShowS
[ImportResourcesToDraftAppVersion] -> ShowS
ImportResourcesToDraftAppVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImportResourcesToDraftAppVersion] -> ShowS
$cshowList :: [ImportResourcesToDraftAppVersion] -> ShowS
show :: ImportResourcesToDraftAppVersion -> String
$cshow :: ImportResourcesToDraftAppVersion -> String
showsPrec :: Int -> ImportResourcesToDraftAppVersion -> ShowS
$cshowsPrec :: Int -> ImportResourcesToDraftAppVersion -> ShowS
Prelude.Show, forall x.
Rep ImportResourcesToDraftAppVersion x
-> ImportResourcesToDraftAppVersion
forall x.
ImportResourcesToDraftAppVersion
-> Rep ImportResourcesToDraftAppVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ImportResourcesToDraftAppVersion x
-> ImportResourcesToDraftAppVersion
$cfrom :: forall x.
ImportResourcesToDraftAppVersion
-> Rep ImportResourcesToDraftAppVersion x
Prelude.Generic)

-- |
-- Create a value of 'ImportResourcesToDraftAppVersion' 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:
--
-- 'sourceArns', 'importResourcesToDraftAppVersion_sourceArns' - The Amazon Resource Names (ARNs) for the resources that you want to
-- import.
--
-- 'terraformSources', 'importResourcesToDraftAppVersion_terraformSources' - A list of terraform file s3 URLs you need to import.
--
-- 'appArn', 'importResourcesToDraftAppVersion_appArn' - The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
newImportResourcesToDraftAppVersion ::
  -- | 'appArn'
  Prelude.Text ->
  ImportResourcesToDraftAppVersion
newImportResourcesToDraftAppVersion :: Text -> ImportResourcesToDraftAppVersion
newImportResourcesToDraftAppVersion Text
pAppArn_ =
  ImportResourcesToDraftAppVersion'
    { $sel:sourceArns:ImportResourcesToDraftAppVersion' :: Maybe [Text]
sourceArns =
        forall a. Maybe a
Prelude.Nothing,
      $sel:terraformSources:ImportResourcesToDraftAppVersion' :: Maybe [TerraformSource]
terraformSources = forall a. Maybe a
Prelude.Nothing,
      $sel:appArn:ImportResourcesToDraftAppVersion' :: Text
appArn = Text
pAppArn_
    }

-- | The Amazon Resource Names (ARNs) for the resources that you want to
-- import.
importResourcesToDraftAppVersion_sourceArns :: Lens.Lens' ImportResourcesToDraftAppVersion (Prelude.Maybe [Prelude.Text])
importResourcesToDraftAppVersion_sourceArns :: Lens' ImportResourcesToDraftAppVersion (Maybe [Text])
importResourcesToDraftAppVersion_sourceArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersion' {Maybe [Text]
sourceArns :: Maybe [Text]
$sel:sourceArns:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [Text]
sourceArns} -> Maybe [Text]
sourceArns) (\s :: ImportResourcesToDraftAppVersion
s@ImportResourcesToDraftAppVersion' {} Maybe [Text]
a -> ImportResourcesToDraftAppVersion
s {$sel:sourceArns:ImportResourcesToDraftAppVersion' :: Maybe [Text]
sourceArns = Maybe [Text]
a} :: ImportResourcesToDraftAppVersion) 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 list of terraform file s3 URLs you need to import.
importResourcesToDraftAppVersion_terraformSources :: Lens.Lens' ImportResourcesToDraftAppVersion (Prelude.Maybe [TerraformSource])
importResourcesToDraftAppVersion_terraformSources :: Lens' ImportResourcesToDraftAppVersion (Maybe [TerraformSource])
importResourcesToDraftAppVersion_terraformSources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersion' {Maybe [TerraformSource]
terraformSources :: Maybe [TerraformSource]
$sel:terraformSources:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [TerraformSource]
terraformSources} -> Maybe [TerraformSource]
terraformSources) (\s :: ImportResourcesToDraftAppVersion
s@ImportResourcesToDraftAppVersion' {} Maybe [TerraformSource]
a -> ImportResourcesToDraftAppVersion
s {$sel:terraformSources:ImportResourcesToDraftAppVersion' :: Maybe [TerraformSource]
terraformSources = Maybe [TerraformSource]
a} :: ImportResourcesToDraftAppVersion) 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 Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
importResourcesToDraftAppVersion_appArn :: Lens.Lens' ImportResourcesToDraftAppVersion Prelude.Text
importResourcesToDraftAppVersion_appArn :: Lens' ImportResourcesToDraftAppVersion Text
importResourcesToDraftAppVersion_appArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersion' {Text
appArn :: Text
$sel:appArn:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Text
appArn} -> Text
appArn) (\s :: ImportResourcesToDraftAppVersion
s@ImportResourcesToDraftAppVersion' {} Text
a -> ImportResourcesToDraftAppVersion
s {$sel:appArn:ImportResourcesToDraftAppVersion' :: Text
appArn = Text
a} :: ImportResourcesToDraftAppVersion)

instance
  Core.AWSRequest
    ImportResourcesToDraftAppVersion
  where
  type
    AWSResponse ImportResourcesToDraftAppVersion =
      ImportResourcesToDraftAppVersionResponse
  request :: (Service -> Service)
-> ImportResourcesToDraftAppVersion
-> Request ImportResourcesToDraftAppVersion
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ImportResourcesToDraftAppVersion
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ImportResourcesToDraftAppVersion)))
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 [TerraformSource]
-> Int
-> Text
-> Text
-> ResourceImportStatusType
-> ImportResourcesToDraftAppVersionResponse
ImportResourcesToDraftAppVersionResponse'
            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
"sourceArns" 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
"terraformSources"
                            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"appArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"appVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"status")
      )

instance
  Prelude.Hashable
    ImportResourcesToDraftAppVersion
  where
  hashWithSalt :: Int -> ImportResourcesToDraftAppVersion -> Int
hashWithSalt
    Int
_salt
    ImportResourcesToDraftAppVersion' {Maybe [Text]
Maybe [TerraformSource]
Text
appArn :: Text
terraformSources :: Maybe [TerraformSource]
sourceArns :: Maybe [Text]
$sel:appArn:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Text
$sel:terraformSources:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [TerraformSource]
$sel:sourceArns:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [Text]
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
sourceArns
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TerraformSource]
terraformSources
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
appArn

instance
  Prelude.NFData
    ImportResourcesToDraftAppVersion
  where
  rnf :: ImportResourcesToDraftAppVersion -> ()
rnf ImportResourcesToDraftAppVersion' {Maybe [Text]
Maybe [TerraformSource]
Text
appArn :: Text
terraformSources :: Maybe [TerraformSource]
sourceArns :: Maybe [Text]
$sel:appArn:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Text
$sel:terraformSources:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [TerraformSource]
$sel:sourceArns:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
sourceArns
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TerraformSource]
terraformSources
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appArn

instance
  Data.ToHeaders
    ImportResourcesToDraftAppVersion
  where
  toHeaders :: ImportResourcesToDraftAppVersion -> 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 ImportResourcesToDraftAppVersion where
  toJSON :: ImportResourcesToDraftAppVersion -> Value
toJSON ImportResourcesToDraftAppVersion' {Maybe [Text]
Maybe [TerraformSource]
Text
appArn :: Text
terraformSources :: Maybe [TerraformSource]
sourceArns :: Maybe [Text]
$sel:appArn:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Text
$sel:terraformSources:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [TerraformSource]
$sel:sourceArns:ImportResourcesToDraftAppVersion' :: ImportResourcesToDraftAppVersion -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"sourceArns" 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]
sourceArns,
            (Key
"terraformSources" 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 [TerraformSource]
terraformSources,
            forall a. a -> Maybe a
Prelude.Just (Key
"appArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
appArn)
          ]
      )

instance Data.ToPath ImportResourcesToDraftAppVersion where
  toPath :: ImportResourcesToDraftAppVersion -> ByteString
toPath =
    forall a b. a -> b -> a
Prelude.const
      ByteString
"/import-resources-to-draft-app-version"

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

-- | /See:/ 'newImportResourcesToDraftAppVersionResponse' smart constructor.
data ImportResourcesToDraftAppVersionResponse = ImportResourcesToDraftAppVersionResponse'
  { -- | The Amazon Resource Names (ARNs) for the resources that you imported.
    ImportResourcesToDraftAppVersionResponse -> Maybe [Text]
sourceArns :: Prelude.Maybe [Prelude.Text],
    -- | A list of terraform file s3 URLs you need to import.
    ImportResourcesToDraftAppVersionResponse -> Maybe [TerraformSource]
terraformSources :: Prelude.Maybe [TerraformSource],
    -- | The response's http status code.
    ImportResourcesToDraftAppVersionResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the application. The format for this
    -- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
    -- For more information about ARNs, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /AWS General Reference/.
    ImportResourcesToDraftAppVersionResponse -> Text
appArn :: Prelude.Text,
    -- | The version of the application.
    ImportResourcesToDraftAppVersionResponse -> Text
appVersion :: Prelude.Text,
    -- | The status of the action.
    ImportResourcesToDraftAppVersionResponse
-> ResourceImportStatusType
status :: ResourceImportStatusType
  }
  deriving (ImportResourcesToDraftAppVersionResponse
-> ImportResourcesToDraftAppVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImportResourcesToDraftAppVersionResponse
-> ImportResourcesToDraftAppVersionResponse -> Bool
$c/= :: ImportResourcesToDraftAppVersionResponse
-> ImportResourcesToDraftAppVersionResponse -> Bool
== :: ImportResourcesToDraftAppVersionResponse
-> ImportResourcesToDraftAppVersionResponse -> Bool
$c== :: ImportResourcesToDraftAppVersionResponse
-> ImportResourcesToDraftAppVersionResponse -> Bool
Prelude.Eq, ReadPrec [ImportResourcesToDraftAppVersionResponse]
ReadPrec ImportResourcesToDraftAppVersionResponse
Int -> ReadS ImportResourcesToDraftAppVersionResponse
ReadS [ImportResourcesToDraftAppVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImportResourcesToDraftAppVersionResponse]
$creadListPrec :: ReadPrec [ImportResourcesToDraftAppVersionResponse]
readPrec :: ReadPrec ImportResourcesToDraftAppVersionResponse
$creadPrec :: ReadPrec ImportResourcesToDraftAppVersionResponse
readList :: ReadS [ImportResourcesToDraftAppVersionResponse]
$creadList :: ReadS [ImportResourcesToDraftAppVersionResponse]
readsPrec :: Int -> ReadS ImportResourcesToDraftAppVersionResponse
$creadsPrec :: Int -> ReadS ImportResourcesToDraftAppVersionResponse
Prelude.Read, Int -> ImportResourcesToDraftAppVersionResponse -> ShowS
[ImportResourcesToDraftAppVersionResponse] -> ShowS
ImportResourcesToDraftAppVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImportResourcesToDraftAppVersionResponse] -> ShowS
$cshowList :: [ImportResourcesToDraftAppVersionResponse] -> ShowS
show :: ImportResourcesToDraftAppVersionResponse -> String
$cshow :: ImportResourcesToDraftAppVersionResponse -> String
showsPrec :: Int -> ImportResourcesToDraftAppVersionResponse -> ShowS
$cshowsPrec :: Int -> ImportResourcesToDraftAppVersionResponse -> ShowS
Prelude.Show, forall x.
Rep ImportResourcesToDraftAppVersionResponse x
-> ImportResourcesToDraftAppVersionResponse
forall x.
ImportResourcesToDraftAppVersionResponse
-> Rep ImportResourcesToDraftAppVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ImportResourcesToDraftAppVersionResponse x
-> ImportResourcesToDraftAppVersionResponse
$cfrom :: forall x.
ImportResourcesToDraftAppVersionResponse
-> Rep ImportResourcesToDraftAppVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'ImportResourcesToDraftAppVersionResponse' 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:
--
-- 'sourceArns', 'importResourcesToDraftAppVersionResponse_sourceArns' - The Amazon Resource Names (ARNs) for the resources that you imported.
--
-- 'terraformSources', 'importResourcesToDraftAppVersionResponse_terraformSources' - A list of terraform file s3 URLs you need to import.
--
-- 'httpStatus', 'importResourcesToDraftAppVersionResponse_httpStatus' - The response's http status code.
--
-- 'appArn', 'importResourcesToDraftAppVersionResponse_appArn' - The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
--
-- 'appVersion', 'importResourcesToDraftAppVersionResponse_appVersion' - The version of the application.
--
-- 'status', 'importResourcesToDraftAppVersionResponse_status' - The status of the action.
newImportResourcesToDraftAppVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'appArn'
  Prelude.Text ->
  -- | 'appVersion'
  Prelude.Text ->
  -- | 'status'
  ResourceImportStatusType ->
  ImportResourcesToDraftAppVersionResponse
newImportResourcesToDraftAppVersionResponse :: Int
-> Text
-> Text
-> ResourceImportStatusType
-> ImportResourcesToDraftAppVersionResponse
newImportResourcesToDraftAppVersionResponse
  Int
pHttpStatus_
  Text
pAppArn_
  Text
pAppVersion_
  ResourceImportStatusType
pStatus_ =
    ImportResourcesToDraftAppVersionResponse'
      { $sel:sourceArns:ImportResourcesToDraftAppVersionResponse' :: Maybe [Text]
sourceArns =
          forall a. Maybe a
Prelude.Nothing,
        $sel:terraformSources:ImportResourcesToDraftAppVersionResponse' :: Maybe [TerraformSource]
terraformSources =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ImportResourcesToDraftAppVersionResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:appArn:ImportResourcesToDraftAppVersionResponse' :: Text
appArn = Text
pAppArn_,
        $sel:appVersion:ImportResourcesToDraftAppVersionResponse' :: Text
appVersion = Text
pAppVersion_,
        $sel:status:ImportResourcesToDraftAppVersionResponse' :: ResourceImportStatusType
status = ResourceImportStatusType
pStatus_
      }

-- | The Amazon Resource Names (ARNs) for the resources that you imported.
importResourcesToDraftAppVersionResponse_sourceArns :: Lens.Lens' ImportResourcesToDraftAppVersionResponse (Prelude.Maybe [Prelude.Text])
importResourcesToDraftAppVersionResponse_sourceArns :: Lens' ImportResourcesToDraftAppVersionResponse (Maybe [Text])
importResourcesToDraftAppVersionResponse_sourceArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersionResponse' {Maybe [Text]
sourceArns :: Maybe [Text]
$sel:sourceArns:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Maybe [Text]
sourceArns} -> Maybe [Text]
sourceArns) (\s :: ImportResourcesToDraftAppVersionResponse
s@ImportResourcesToDraftAppVersionResponse' {} Maybe [Text]
a -> ImportResourcesToDraftAppVersionResponse
s {$sel:sourceArns:ImportResourcesToDraftAppVersionResponse' :: Maybe [Text]
sourceArns = Maybe [Text]
a} :: ImportResourcesToDraftAppVersionResponse) 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 list of terraform file s3 URLs you need to import.
importResourcesToDraftAppVersionResponse_terraformSources :: Lens.Lens' ImportResourcesToDraftAppVersionResponse (Prelude.Maybe [TerraformSource])
importResourcesToDraftAppVersionResponse_terraformSources :: Lens'
  ImportResourcesToDraftAppVersionResponse (Maybe [TerraformSource])
importResourcesToDraftAppVersionResponse_terraformSources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersionResponse' {Maybe [TerraformSource]
terraformSources :: Maybe [TerraformSource]
$sel:terraformSources:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Maybe [TerraformSource]
terraformSources} -> Maybe [TerraformSource]
terraformSources) (\s :: ImportResourcesToDraftAppVersionResponse
s@ImportResourcesToDraftAppVersionResponse' {} Maybe [TerraformSource]
a -> ImportResourcesToDraftAppVersionResponse
s {$sel:terraformSources:ImportResourcesToDraftAppVersionResponse' :: Maybe [TerraformSource]
terraformSources = Maybe [TerraformSource]
a} :: ImportResourcesToDraftAppVersionResponse) 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 response's http status code.
importResourcesToDraftAppVersionResponse_httpStatus :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Int
importResourcesToDraftAppVersionResponse_httpStatus :: Lens' ImportResourcesToDraftAppVersionResponse Int
importResourcesToDraftAppVersionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersionResponse' {Int
httpStatus :: Int
$sel:httpStatus:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ImportResourcesToDraftAppVersionResponse
s@ImportResourcesToDraftAppVersionResponse' {} Int
a -> ImportResourcesToDraftAppVersionResponse
s {$sel:httpStatus:ImportResourcesToDraftAppVersionResponse' :: Int
httpStatus = Int
a} :: ImportResourcesToDraftAppVersionResponse)

-- | The Amazon Resource Name (ARN) of the application. The format for this
-- ARN is: arn:@partition@:resiliencehub:@region@:@account@:app\/@app-id@.
-- For more information about ARNs, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
-- in the /AWS General Reference/.
importResourcesToDraftAppVersionResponse_appArn :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Text
importResourcesToDraftAppVersionResponse_appArn :: Lens' ImportResourcesToDraftAppVersionResponse Text
importResourcesToDraftAppVersionResponse_appArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersionResponse' {Text
appArn :: Text
$sel:appArn:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Text
appArn} -> Text
appArn) (\s :: ImportResourcesToDraftAppVersionResponse
s@ImportResourcesToDraftAppVersionResponse' {} Text
a -> ImportResourcesToDraftAppVersionResponse
s {$sel:appArn:ImportResourcesToDraftAppVersionResponse' :: Text
appArn = Text
a} :: ImportResourcesToDraftAppVersionResponse)

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

-- | The status of the action.
importResourcesToDraftAppVersionResponse_status :: Lens.Lens' ImportResourcesToDraftAppVersionResponse ResourceImportStatusType
importResourcesToDraftAppVersionResponse_status :: Lens'
  ImportResourcesToDraftAppVersionResponse ResourceImportStatusType
importResourcesToDraftAppVersionResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImportResourcesToDraftAppVersionResponse' {ResourceImportStatusType
status :: ResourceImportStatusType
$sel:status:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse
-> ResourceImportStatusType
status} -> ResourceImportStatusType
status) (\s :: ImportResourcesToDraftAppVersionResponse
s@ImportResourcesToDraftAppVersionResponse' {} ResourceImportStatusType
a -> ImportResourcesToDraftAppVersionResponse
s {$sel:status:ImportResourcesToDraftAppVersionResponse' :: ResourceImportStatusType
status = ResourceImportStatusType
a} :: ImportResourcesToDraftAppVersionResponse)

instance
  Prelude.NFData
    ImportResourcesToDraftAppVersionResponse
  where
  rnf :: ImportResourcesToDraftAppVersionResponse -> ()
rnf ImportResourcesToDraftAppVersionResponse' {Int
Maybe [Text]
Maybe [TerraformSource]
Text
ResourceImportStatusType
status :: ResourceImportStatusType
appVersion :: Text
appArn :: Text
httpStatus :: Int
terraformSources :: Maybe [TerraformSource]
sourceArns :: Maybe [Text]
$sel:status:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse
-> ResourceImportStatusType
$sel:appVersion:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Text
$sel:appArn:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Text
$sel:httpStatus:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Int
$sel:terraformSources:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Maybe [TerraformSource]
$sel:sourceArns:ImportResourcesToDraftAppVersionResponse' :: ImportResourcesToDraftAppVersionResponse -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
sourceArns
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TerraformSource]
terraformSources
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ResourceImportStatusType
status