packages feed

amazonka-resiliencehub-2.0: gen/Amazonka/ResilienceHub/DescribeAppVersionTemplate.hs

{-# 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.DescribeAppVersionTemplate
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes details about an AWS Resilience Hub
module Amazonka.ResilienceHub.DescribeAppVersionTemplate
  ( -- * Creating a Request
    DescribeAppVersionTemplate (..),
    newDescribeAppVersionTemplate,

    -- * Request Lenses
    describeAppVersionTemplate_appArn,
    describeAppVersionTemplate_appVersion,

    -- * Destructuring the Response
    DescribeAppVersionTemplateResponse (..),
    newDescribeAppVersionTemplateResponse,

    -- * Response Lenses
    describeAppVersionTemplateResponse_httpStatus,
    describeAppVersionTemplateResponse_appArn,
    describeAppVersionTemplateResponse_appTemplateBody,
    describeAppVersionTemplateResponse_appVersion,
  )
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:/ 'newDescribeAppVersionTemplate' smart constructor.
data DescribeAppVersionTemplate = DescribeAppVersionTemplate'
  { -- | 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/.
    appArn :: Prelude.Text,
    -- | The version of the application.
    appVersion :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DescribeAppVersionTemplate' 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:
--
-- 'appArn', 'describeAppVersionTemplate_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', 'describeAppVersionTemplate_appVersion' - The version of the application.
newDescribeAppVersionTemplate ::
  -- | 'appArn'
  Prelude.Text ->
  -- | 'appVersion'
  Prelude.Text ->
  DescribeAppVersionTemplate
newDescribeAppVersionTemplate pAppArn_ pAppVersion_ =
  DescribeAppVersionTemplate'
    { appArn = pAppArn_,
      appVersion = pAppVersion_
    }

-- | 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/.
describeAppVersionTemplate_appArn :: Lens.Lens' DescribeAppVersionTemplate Prelude.Text
describeAppVersionTemplate_appArn = Lens.lens (\DescribeAppVersionTemplate' {appArn} -> appArn) (\s@DescribeAppVersionTemplate' {} a -> s {appArn = a} :: DescribeAppVersionTemplate)

-- | The version of the application.
describeAppVersionTemplate_appVersion :: Lens.Lens' DescribeAppVersionTemplate Prelude.Text
describeAppVersionTemplate_appVersion = Lens.lens (\DescribeAppVersionTemplate' {appVersion} -> appVersion) (\s@DescribeAppVersionTemplate' {} a -> s {appVersion = a} :: DescribeAppVersionTemplate)

instance Core.AWSRequest DescribeAppVersionTemplate where
  type
    AWSResponse DescribeAppVersionTemplate =
      DescribeAppVersionTemplateResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveJSON
      ( \s h x ->
          DescribeAppVersionTemplateResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
            Prelude.<*> (x Data..:> "appArn")
            Prelude.<*> (x Data..:> "appTemplateBody")
            Prelude.<*> (x Data..:> "appVersion")
      )

instance Prelude.Hashable DescribeAppVersionTemplate where
  hashWithSalt _salt DescribeAppVersionTemplate' {..} =
    _salt
      `Prelude.hashWithSalt` appArn
      `Prelude.hashWithSalt` appVersion

instance Prelude.NFData DescribeAppVersionTemplate where
  rnf DescribeAppVersionTemplate' {..} =
    Prelude.rnf appArn
      `Prelude.seq` Prelude.rnf appVersion

instance Data.ToHeaders DescribeAppVersionTemplate where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "Content-Type"
              Data.=# ( "application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribeAppVersionTemplate where
  toJSON DescribeAppVersionTemplate' {..} =
    Data.object
      ( Prelude.catMaybes
          [ Prelude.Just ("appArn" Data..= appArn),
            Prelude.Just ("appVersion" Data..= appVersion)
          ]
      )

instance Data.ToPath DescribeAppVersionTemplate where
  toPath =
    Prelude.const "/describe-app-version-template"

instance Data.ToQuery DescribeAppVersionTemplate where
  toQuery = Prelude.const Prelude.mempty

-- | /See:/ 'newDescribeAppVersionTemplateResponse' smart constructor.
data DescribeAppVersionTemplateResponse = DescribeAppVersionTemplateResponse'
  { -- | 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
    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names (ARNs)>
    -- in the /AWS General Reference/.
    appArn :: Prelude.Text,
    -- | The body of the template.
    appTemplateBody :: Prelude.Text,
    -- | The version of the application.
    appVersion :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DescribeAppVersionTemplateResponse' 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:
--
-- 'httpStatus', 'describeAppVersionTemplateResponse_httpStatus' - The response's http status code.
--
-- 'appArn', 'describeAppVersionTemplateResponse_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/.
--
-- 'appTemplateBody', 'describeAppVersionTemplateResponse_appTemplateBody' - The body of the template.
--
-- 'appVersion', 'describeAppVersionTemplateResponse_appVersion' - The version of the application.
newDescribeAppVersionTemplateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'appArn'
  Prelude.Text ->
  -- | 'appTemplateBody'
  Prelude.Text ->
  -- | 'appVersion'
  Prelude.Text ->
  DescribeAppVersionTemplateResponse
newDescribeAppVersionTemplateResponse
  pHttpStatus_
  pAppArn_
  pAppTemplateBody_
  pAppVersion_ =
    DescribeAppVersionTemplateResponse'
      { httpStatus =
          pHttpStatus_,
        appArn = pAppArn_,
        appTemplateBody = pAppTemplateBody_,
        appVersion = pAppVersion_
      }

-- | The response's http status code.
describeAppVersionTemplateResponse_httpStatus :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Int
describeAppVersionTemplateResponse_httpStatus = Lens.lens (\DescribeAppVersionTemplateResponse' {httpStatus} -> httpStatus) (\s@DescribeAppVersionTemplateResponse' {} a -> s {httpStatus = a} :: DescribeAppVersionTemplateResponse)

-- | 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/.
describeAppVersionTemplateResponse_appArn :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Text
describeAppVersionTemplateResponse_appArn = Lens.lens (\DescribeAppVersionTemplateResponse' {appArn} -> appArn) (\s@DescribeAppVersionTemplateResponse' {} a -> s {appArn = a} :: DescribeAppVersionTemplateResponse)

-- | The body of the template.
describeAppVersionTemplateResponse_appTemplateBody :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Text
describeAppVersionTemplateResponse_appTemplateBody = Lens.lens (\DescribeAppVersionTemplateResponse' {appTemplateBody} -> appTemplateBody) (\s@DescribeAppVersionTemplateResponse' {} a -> s {appTemplateBody = a} :: DescribeAppVersionTemplateResponse)

-- | The version of the application.
describeAppVersionTemplateResponse_appVersion :: Lens.Lens' DescribeAppVersionTemplateResponse Prelude.Text
describeAppVersionTemplateResponse_appVersion = Lens.lens (\DescribeAppVersionTemplateResponse' {appVersion} -> appVersion) (\s@DescribeAppVersionTemplateResponse' {} a -> s {appVersion = a} :: DescribeAppVersionTemplateResponse)

instance
  Prelude.NFData
    DescribeAppVersionTemplateResponse
  where
  rnf DescribeAppVersionTemplateResponse' {..} =
    Prelude.rnf httpStatus
      `Prelude.seq` Prelude.rnf appArn
      `Prelude.seq` Prelude.rnf appTemplateBody
      `Prelude.seq` Prelude.rnf appVersion