{-# 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.ServiceCatalogAppRegistry.GetAttributeGroup
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves an attribute group, either by its name or its ID. The
-- attribute group can be specified either by its unique ID or by its name.
module Amazonka.ServiceCatalogAppRegistry.GetAttributeGroup
  ( -- * Creating a Request
    GetAttributeGroup (..),
    newGetAttributeGroup,

    -- * Request Lenses
    getAttributeGroup_attributeGroup,

    -- * Destructuring the Response
    GetAttributeGroupResponse (..),
    newGetAttributeGroupResponse,

    -- * Response Lenses
    getAttributeGroupResponse_arn,
    getAttributeGroupResponse_attributes,
    getAttributeGroupResponse_creationTime,
    getAttributeGroupResponse_description,
    getAttributeGroupResponse_id,
    getAttributeGroupResponse_lastUpdateTime,
    getAttributeGroupResponse_name,
    getAttributeGroupResponse_tags,
    getAttributeGroupResponse_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.ServiceCatalogAppRegistry.Types

-- | /See:/ 'newGetAttributeGroup' smart constructor.
data GetAttributeGroup = GetAttributeGroup'
  { -- | The name or ID of the attribute group that holds the attributes to
    -- describe the application.
    GetAttributeGroup -> Text
attributeGroup :: Prelude.Text
  }
  deriving (GetAttributeGroup -> GetAttributeGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAttributeGroup -> GetAttributeGroup -> Bool
$c/= :: GetAttributeGroup -> GetAttributeGroup -> Bool
== :: GetAttributeGroup -> GetAttributeGroup -> Bool
$c== :: GetAttributeGroup -> GetAttributeGroup -> Bool
Prelude.Eq, ReadPrec [GetAttributeGroup]
ReadPrec GetAttributeGroup
Int -> ReadS GetAttributeGroup
ReadS [GetAttributeGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAttributeGroup]
$creadListPrec :: ReadPrec [GetAttributeGroup]
readPrec :: ReadPrec GetAttributeGroup
$creadPrec :: ReadPrec GetAttributeGroup
readList :: ReadS [GetAttributeGroup]
$creadList :: ReadS [GetAttributeGroup]
readsPrec :: Int -> ReadS GetAttributeGroup
$creadsPrec :: Int -> ReadS GetAttributeGroup
Prelude.Read, Int -> GetAttributeGroup -> ShowS
[GetAttributeGroup] -> ShowS
GetAttributeGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAttributeGroup] -> ShowS
$cshowList :: [GetAttributeGroup] -> ShowS
show :: GetAttributeGroup -> String
$cshow :: GetAttributeGroup -> String
showsPrec :: Int -> GetAttributeGroup -> ShowS
$cshowsPrec :: Int -> GetAttributeGroup -> ShowS
Prelude.Show, forall x. Rep GetAttributeGroup x -> GetAttributeGroup
forall x. GetAttributeGroup -> Rep GetAttributeGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAttributeGroup x -> GetAttributeGroup
$cfrom :: forall x. GetAttributeGroup -> Rep GetAttributeGroup x
Prelude.Generic)

-- |
-- Create a value of 'GetAttributeGroup' 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:
--
-- 'attributeGroup', 'getAttributeGroup_attributeGroup' - The name or ID of the attribute group that holds the attributes to
-- describe the application.
newGetAttributeGroup ::
  -- | 'attributeGroup'
  Prelude.Text ->
  GetAttributeGroup
newGetAttributeGroup :: Text -> GetAttributeGroup
newGetAttributeGroup Text
pAttributeGroup_ =
  GetAttributeGroup'
    { $sel:attributeGroup:GetAttributeGroup' :: Text
attributeGroup =
        Text
pAttributeGroup_
    }

-- | The name or ID of the attribute group that holds the attributes to
-- describe the application.
getAttributeGroup_attributeGroup :: Lens.Lens' GetAttributeGroup Prelude.Text
getAttributeGroup_attributeGroup :: Lens' GetAttributeGroup Text
getAttributeGroup_attributeGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroup' {Text
attributeGroup :: Text
$sel:attributeGroup:GetAttributeGroup' :: GetAttributeGroup -> Text
attributeGroup} -> Text
attributeGroup) (\s :: GetAttributeGroup
s@GetAttributeGroup' {} Text
a -> GetAttributeGroup
s {$sel:attributeGroup:GetAttributeGroup' :: Text
attributeGroup = Text
a} :: GetAttributeGroup)

instance Core.AWSRequest GetAttributeGroup where
  type
    AWSResponse GetAttributeGroup =
      GetAttributeGroupResponse
  request :: (Service -> Service)
-> GetAttributeGroup -> Request GetAttributeGroup
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetAttributeGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetAttributeGroup)))
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 ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> GetAttributeGroupResponse
GetAttributeGroupResponse'
            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
"arn")
            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
"attributes")
            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
"id")
            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
"lastUpdateTime")
            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
"tags" 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))
      )

instance Prelude.Hashable GetAttributeGroup where
  hashWithSalt :: Int -> GetAttributeGroup -> Int
hashWithSalt Int
_salt GetAttributeGroup' {Text
attributeGroup :: Text
$sel:attributeGroup:GetAttributeGroup' :: GetAttributeGroup -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
attributeGroup

instance Prelude.NFData GetAttributeGroup where
  rnf :: GetAttributeGroup -> ()
rnf GetAttributeGroup' {Text
attributeGroup :: Text
$sel:attributeGroup:GetAttributeGroup' :: GetAttributeGroup -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
attributeGroup

instance Data.ToHeaders GetAttributeGroup where
  toHeaders :: GetAttributeGroup -> 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.ToPath GetAttributeGroup where
  toPath :: GetAttributeGroup -> ByteString
toPath GetAttributeGroup' {Text
attributeGroup :: Text
$sel:attributeGroup:GetAttributeGroup' :: GetAttributeGroup -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/attribute-groups/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
attributeGroup]

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

-- | /See:/ 'newGetAttributeGroupResponse' smart constructor.
data GetAttributeGroupResponse = GetAttributeGroupResponse'
  { -- | The Amazon resource name (ARN) that specifies the attribute group across
    -- services.
    GetAttributeGroupResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | A JSON string in the form of nested key-value pairs that represent the
    -- attributes in the group and describes an application and its components.
    GetAttributeGroupResponse -> Maybe Text
attributes :: Prelude.Maybe Prelude.Text,
    -- | The ISO-8601 formatted timestamp of the moment the attribute group was
    -- created.
    GetAttributeGroupResponse -> Maybe ISO8601
creationTime :: Prelude.Maybe Data.ISO8601,
    -- | The description of the attribute group that the user provides.
    GetAttributeGroupResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the attribute group.
    GetAttributeGroupResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The ISO-8601 formatted timestamp of the moment the attribute group was
    -- last updated. This time is the same as the creationTime for a newly
    -- created attribute group.
    GetAttributeGroupResponse -> Maybe ISO8601
lastUpdateTime :: Prelude.Maybe Data.ISO8601,
    -- | The name of the attribute group.
    GetAttributeGroupResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Key-value pairs associated with the attribute group.
    GetAttributeGroupResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    GetAttributeGroupResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetAttributeGroupResponse -> GetAttributeGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAttributeGroupResponse -> GetAttributeGroupResponse -> Bool
$c/= :: GetAttributeGroupResponse -> GetAttributeGroupResponse -> Bool
== :: GetAttributeGroupResponse -> GetAttributeGroupResponse -> Bool
$c== :: GetAttributeGroupResponse -> GetAttributeGroupResponse -> Bool
Prelude.Eq, ReadPrec [GetAttributeGroupResponse]
ReadPrec GetAttributeGroupResponse
Int -> ReadS GetAttributeGroupResponse
ReadS [GetAttributeGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAttributeGroupResponse]
$creadListPrec :: ReadPrec [GetAttributeGroupResponse]
readPrec :: ReadPrec GetAttributeGroupResponse
$creadPrec :: ReadPrec GetAttributeGroupResponse
readList :: ReadS [GetAttributeGroupResponse]
$creadList :: ReadS [GetAttributeGroupResponse]
readsPrec :: Int -> ReadS GetAttributeGroupResponse
$creadsPrec :: Int -> ReadS GetAttributeGroupResponse
Prelude.Read, Int -> GetAttributeGroupResponse -> ShowS
[GetAttributeGroupResponse] -> ShowS
GetAttributeGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAttributeGroupResponse] -> ShowS
$cshowList :: [GetAttributeGroupResponse] -> ShowS
show :: GetAttributeGroupResponse -> String
$cshow :: GetAttributeGroupResponse -> String
showsPrec :: Int -> GetAttributeGroupResponse -> ShowS
$cshowsPrec :: Int -> GetAttributeGroupResponse -> ShowS
Prelude.Show, forall x.
Rep GetAttributeGroupResponse x -> GetAttributeGroupResponse
forall x.
GetAttributeGroupResponse -> Rep GetAttributeGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetAttributeGroupResponse x -> GetAttributeGroupResponse
$cfrom :: forall x.
GetAttributeGroupResponse -> Rep GetAttributeGroupResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetAttributeGroupResponse' 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:
--
-- 'arn', 'getAttributeGroupResponse_arn' - The Amazon resource name (ARN) that specifies the attribute group across
-- services.
--
-- 'attributes', 'getAttributeGroupResponse_attributes' - A JSON string in the form of nested key-value pairs that represent the
-- attributes in the group and describes an application and its components.
--
-- 'creationTime', 'getAttributeGroupResponse_creationTime' - The ISO-8601 formatted timestamp of the moment the attribute group was
-- created.
--
-- 'description', 'getAttributeGroupResponse_description' - The description of the attribute group that the user provides.
--
-- 'id', 'getAttributeGroupResponse_id' - The identifier of the attribute group.
--
-- 'lastUpdateTime', 'getAttributeGroupResponse_lastUpdateTime' - The ISO-8601 formatted timestamp of the moment the attribute group was
-- last updated. This time is the same as the creationTime for a newly
-- created attribute group.
--
-- 'name', 'getAttributeGroupResponse_name' - The name of the attribute group.
--
-- 'tags', 'getAttributeGroupResponse_tags' - Key-value pairs associated with the attribute group.
--
-- 'httpStatus', 'getAttributeGroupResponse_httpStatus' - The response's http status code.
newGetAttributeGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetAttributeGroupResponse
newGetAttributeGroupResponse :: Int -> GetAttributeGroupResponse
newGetAttributeGroupResponse Int
pHttpStatus_ =
  GetAttributeGroupResponse'
    { $sel:arn:GetAttributeGroupResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:attributes:GetAttributeGroupResponse' :: Maybe Text
attributes = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:GetAttributeGroupResponse' :: Maybe ISO8601
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetAttributeGroupResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:id:GetAttributeGroupResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdateTime:GetAttributeGroupResponse' :: Maybe ISO8601
lastUpdateTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetAttributeGroupResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetAttributeGroupResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetAttributeGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon resource name (ARN) that specifies the attribute group across
-- services.
getAttributeGroupResponse_arn :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.Text)
getAttributeGroupResponse_arn :: Lens' GetAttributeGroupResponse (Maybe Text)
getAttributeGroupResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe Text
a -> GetAttributeGroupResponse
s {$sel:arn:GetAttributeGroupResponse' :: Maybe Text
arn = Maybe Text
a} :: GetAttributeGroupResponse)

-- | A JSON string in the form of nested key-value pairs that represent the
-- attributes in the group and describes an application and its components.
getAttributeGroupResponse_attributes :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.Text)
getAttributeGroupResponse_attributes :: Lens' GetAttributeGroupResponse (Maybe Text)
getAttributeGroupResponse_attributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe Text
attributes :: Maybe Text
$sel:attributes:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
attributes} -> Maybe Text
attributes) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe Text
a -> GetAttributeGroupResponse
s {$sel:attributes:GetAttributeGroupResponse' :: Maybe Text
attributes = Maybe Text
a} :: GetAttributeGroupResponse)

-- | The ISO-8601 formatted timestamp of the moment the attribute group was
-- created.
getAttributeGroupResponse_creationTime :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.UTCTime)
getAttributeGroupResponse_creationTime :: Lens' GetAttributeGroupResponse (Maybe UTCTime)
getAttributeGroupResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe ISO8601
creationTime :: Maybe ISO8601
$sel:creationTime:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe ISO8601
creationTime} -> Maybe ISO8601
creationTime) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe ISO8601
a -> GetAttributeGroupResponse
s {$sel:creationTime:GetAttributeGroupResponse' :: Maybe ISO8601
creationTime = Maybe ISO8601
a} :: GetAttributeGroupResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The description of the attribute group that the user provides.
getAttributeGroupResponse_description :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.Text)
getAttributeGroupResponse_description :: Lens' GetAttributeGroupResponse (Maybe Text)
getAttributeGroupResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe Text
description :: Maybe Text
$sel:description:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe Text
a -> GetAttributeGroupResponse
s {$sel:description:GetAttributeGroupResponse' :: Maybe Text
description = Maybe Text
a} :: GetAttributeGroupResponse)

-- | The identifier of the attribute group.
getAttributeGroupResponse_id :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.Text)
getAttributeGroupResponse_id :: Lens' GetAttributeGroupResponse (Maybe Text)
getAttributeGroupResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe Text
id :: Maybe Text
$sel:id:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe Text
a -> GetAttributeGroupResponse
s {$sel:id:GetAttributeGroupResponse' :: Maybe Text
id = Maybe Text
a} :: GetAttributeGroupResponse)

-- | The ISO-8601 formatted timestamp of the moment the attribute group was
-- last updated. This time is the same as the creationTime for a newly
-- created attribute group.
getAttributeGroupResponse_lastUpdateTime :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.UTCTime)
getAttributeGroupResponse_lastUpdateTime :: Lens' GetAttributeGroupResponse (Maybe UTCTime)
getAttributeGroupResponse_lastUpdateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe ISO8601
lastUpdateTime :: Maybe ISO8601
$sel:lastUpdateTime:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe ISO8601
lastUpdateTime} -> Maybe ISO8601
lastUpdateTime) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe ISO8601
a -> GetAttributeGroupResponse
s {$sel:lastUpdateTime:GetAttributeGroupResponse' :: Maybe ISO8601
lastUpdateTime = Maybe ISO8601
a} :: GetAttributeGroupResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The name of the attribute group.
getAttributeGroupResponse_name :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe Prelude.Text)
getAttributeGroupResponse_name :: Lens' GetAttributeGroupResponse (Maybe Text)
getAttributeGroupResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe Text
name :: Maybe Text
$sel:name:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe Text
a -> GetAttributeGroupResponse
s {$sel:name:GetAttributeGroupResponse' :: Maybe Text
name = Maybe Text
a} :: GetAttributeGroupResponse)

-- | Key-value pairs associated with the attribute group.
getAttributeGroupResponse_tags :: Lens.Lens' GetAttributeGroupResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getAttributeGroupResponse_tags :: Lens' GetAttributeGroupResponse (Maybe (HashMap Text Text))
getAttributeGroupResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Maybe (HashMap Text Text)
a -> GetAttributeGroupResponse
s {$sel:tags:GetAttributeGroupResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetAttributeGroupResponse) 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.
getAttributeGroupResponse_httpStatus :: Lens.Lens' GetAttributeGroupResponse Prelude.Int
getAttributeGroupResponse_httpStatus :: Lens' GetAttributeGroupResponse Int
getAttributeGroupResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAttributeGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetAttributeGroupResponse
s@GetAttributeGroupResponse' {} Int
a -> GetAttributeGroupResponse
s {$sel:httpStatus:GetAttributeGroupResponse' :: Int
httpStatus = Int
a} :: GetAttributeGroupResponse)

instance Prelude.NFData GetAttributeGroupResponse where
  rnf :: GetAttributeGroupResponse -> ()
rnf GetAttributeGroupResponse' {Int
Maybe Text
Maybe (HashMap Text Text)
Maybe ISO8601
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
name :: Maybe Text
lastUpdateTime :: Maybe ISO8601
id :: Maybe Text
description :: Maybe Text
creationTime :: Maybe ISO8601
attributes :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Int
$sel:tags:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe (HashMap Text Text)
$sel:name:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
$sel:lastUpdateTime:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe ISO8601
$sel:id:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
$sel:description:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
$sel:creationTime:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe ISO8601
$sel:attributes:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
$sel:arn:GetAttributeGroupResponse' :: GetAttributeGroupResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
attributes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
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
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
lastUpdateTime
      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 (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus