{-# 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. sourceArns :: Prelude.Maybe [Prelude.Text], -- | A list of terraform file s3 URLs you need to import. 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 -- -- in the /AWS General Reference/. appArn :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ImportResourcesToDraftAppVersion' with all optional fields omitted. -- -- Use or 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 -- -- in the /AWS General Reference/. newImportResourcesToDraftAppVersion :: -- | 'appArn' Prelude.Text -> ImportResourcesToDraftAppVersion newImportResourcesToDraftAppVersion pAppArn_ = ImportResourcesToDraftAppVersion' { sourceArns = Prelude.Nothing, terraformSources = Prelude.Nothing, appArn = 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.lens (\ImportResourcesToDraftAppVersion' {sourceArns} -> sourceArns) (\s@ImportResourcesToDraftAppVersion' {} a -> s {sourceArns = a} :: ImportResourcesToDraftAppVersion) Prelude.. Lens.mapping Lens.coerced -- | A list of terraform file s3 URLs you need to import. importResourcesToDraftAppVersion_terraformSources :: Lens.Lens' ImportResourcesToDraftAppVersion (Prelude.Maybe [TerraformSource]) importResourcesToDraftAppVersion_terraformSources = Lens.lens (\ImportResourcesToDraftAppVersion' {terraformSources} -> terraformSources) (\s@ImportResourcesToDraftAppVersion' {} a -> s {terraformSources = a} :: ImportResourcesToDraftAppVersion) Prelude.. Lens.mapping 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 -- -- in the /AWS General Reference/. importResourcesToDraftAppVersion_appArn :: Lens.Lens' ImportResourcesToDraftAppVersion Prelude.Text importResourcesToDraftAppVersion_appArn = Lens.lens (\ImportResourcesToDraftAppVersion' {appArn} -> appArn) (\s@ImportResourcesToDraftAppVersion' {} a -> s {appArn = a} :: ImportResourcesToDraftAppVersion) instance Core.AWSRequest ImportResourcesToDraftAppVersion where type AWSResponse ImportResourcesToDraftAppVersion = ImportResourcesToDraftAppVersionResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ImportResourcesToDraftAppVersionResponse' Prelude.<$> (x Data..?> "sourceArns" Core..!@ Prelude.mempty) Prelude.<*> ( x Data..?> "terraformSources" Core..!@ Prelude.mempty ) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..:> "appArn") Prelude.<*> (x Data..:> "appVersion") Prelude.<*> (x Data..:> "status") ) instance Prelude.Hashable ImportResourcesToDraftAppVersion where hashWithSalt _salt ImportResourcesToDraftAppVersion' {..} = _salt `Prelude.hashWithSalt` sourceArns `Prelude.hashWithSalt` terraformSources `Prelude.hashWithSalt` appArn instance Prelude.NFData ImportResourcesToDraftAppVersion where rnf ImportResourcesToDraftAppVersion' {..} = Prelude.rnf sourceArns `Prelude.seq` Prelude.rnf terraformSources `Prelude.seq` Prelude.rnf appArn instance Data.ToHeaders ImportResourcesToDraftAppVersion where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ImportResourcesToDraftAppVersion where toJSON ImportResourcesToDraftAppVersion' {..} = Data.object ( Prelude.catMaybes [ ("sourceArns" Data..=) Prelude.<$> sourceArns, ("terraformSources" Data..=) Prelude.<$> terraformSources, Prelude.Just ("appArn" Data..= appArn) ] ) instance Data.ToPath ImportResourcesToDraftAppVersion where toPath = Prelude.const "/import-resources-to-draft-app-version" instance Data.ToQuery ImportResourcesToDraftAppVersion where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newImportResourcesToDraftAppVersionResponse' smart constructor. data ImportResourcesToDraftAppVersionResponse = ImportResourcesToDraftAppVersionResponse' { -- | The Amazon Resource Names (ARNs) for the resources that you imported. sourceArns :: Prelude.Maybe [Prelude.Text], -- | A list of terraform file s3 URLs you need to import. terraformSources :: Prelude.Maybe [TerraformSource], -- | The response's http status code. 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 -- -- in the /AWS General Reference/. appArn :: Prelude.Text, -- | The version of the application. appVersion :: Prelude.Text, -- | The status of the action. status :: ResourceImportStatusType } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ImportResourcesToDraftAppVersionResponse' with all optional fields omitted. -- -- Use or 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 -- -- 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 pHttpStatus_ pAppArn_ pAppVersion_ pStatus_ = ImportResourcesToDraftAppVersionResponse' { sourceArns = Prelude.Nothing, terraformSources = Prelude.Nothing, httpStatus = pHttpStatus_, appArn = pAppArn_, appVersion = pAppVersion_, status = pStatus_ } -- | The Amazon Resource Names (ARNs) for the resources that you imported. importResourcesToDraftAppVersionResponse_sourceArns :: Lens.Lens' ImportResourcesToDraftAppVersionResponse (Prelude.Maybe [Prelude.Text]) importResourcesToDraftAppVersionResponse_sourceArns = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {sourceArns} -> sourceArns) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {sourceArns = a} :: ImportResourcesToDraftAppVersionResponse) Prelude.. Lens.mapping Lens.coerced -- | A list of terraform file s3 URLs you need to import. importResourcesToDraftAppVersionResponse_terraformSources :: Lens.Lens' ImportResourcesToDraftAppVersionResponse (Prelude.Maybe [TerraformSource]) importResourcesToDraftAppVersionResponse_terraformSources = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {terraformSources} -> terraformSources) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {terraformSources = a} :: ImportResourcesToDraftAppVersionResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. importResourcesToDraftAppVersionResponse_httpStatus :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Int importResourcesToDraftAppVersionResponse_httpStatus = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {httpStatus} -> httpStatus) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {httpStatus = 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 -- -- in the /AWS General Reference/. importResourcesToDraftAppVersionResponse_appArn :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Text importResourcesToDraftAppVersionResponse_appArn = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {appArn} -> appArn) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {appArn = a} :: ImportResourcesToDraftAppVersionResponse) -- | The version of the application. importResourcesToDraftAppVersionResponse_appVersion :: Lens.Lens' ImportResourcesToDraftAppVersionResponse Prelude.Text importResourcesToDraftAppVersionResponse_appVersion = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {appVersion} -> appVersion) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {appVersion = a} :: ImportResourcesToDraftAppVersionResponse) -- | The status of the action. importResourcesToDraftAppVersionResponse_status :: Lens.Lens' ImportResourcesToDraftAppVersionResponse ResourceImportStatusType importResourcesToDraftAppVersionResponse_status = Lens.lens (\ImportResourcesToDraftAppVersionResponse' {status} -> status) (\s@ImportResourcesToDraftAppVersionResponse' {} a -> s {status = a} :: ImportResourcesToDraftAppVersionResponse) instance Prelude.NFData ImportResourcesToDraftAppVersionResponse where rnf ImportResourcesToDraftAppVersionResponse' {..} = Prelude.rnf sourceArns `Prelude.seq` Prelude.rnf terraformSources `Prelude.seq` Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf appArn `Prelude.seq` Prelude.rnf appVersion `Prelude.seq` Prelude.rnf status