{-# 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.AutoScaling.DescribeScalingActivities
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about the scaling activities in the account and Region.
--
-- When scaling events occur, you see a record of the scaling activity in
-- the scaling activities. For more information, see
-- <https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html Verifying a scaling activity for an Auto Scaling group>
-- in the /Amazon EC2 Auto Scaling User Guide/.
--
-- If the scaling event succeeds, the value of the @StatusCode@ element in
-- the response is @Successful@. If an attempt to launch instances failed,
-- the @StatusCode@ value is @Failed@ or @Cancelled@ and the
-- @StatusMessage@ element in the response indicates the cause of the
-- failure. For help interpreting the @StatusMessage@, see
-- <https://docs.aws.amazon.com/autoscaling/ec2/userguide/CHAP_Troubleshooting.html Troubleshooting Amazon EC2 Auto Scaling>
-- in the /Amazon EC2 Auto Scaling User Guide/.
--
-- This operation returns paginated results.
module Amazonka.AutoScaling.DescribeScalingActivities
  ( -- * Creating a Request
    DescribeScalingActivities (..),
    newDescribeScalingActivities,

    -- * Request Lenses
    describeScalingActivities_activityIds,
    describeScalingActivities_autoScalingGroupName,
    describeScalingActivities_includeDeletedGroups,
    describeScalingActivities_maxRecords,
    describeScalingActivities_nextToken,

    -- * Destructuring the Response
    DescribeScalingActivitiesResponse (..),
    newDescribeScalingActivitiesResponse,

    -- * Response Lenses
    describeScalingActivitiesResponse_nextToken,
    describeScalingActivitiesResponse_httpStatus,
    describeScalingActivitiesResponse_activities,
  )
where

import Amazonka.AutoScaling.Types
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

-- | /See:/ 'newDescribeScalingActivities' smart constructor.
data DescribeScalingActivities = DescribeScalingActivities'
  { -- | The activity IDs of the desired scaling activities. If you omit this
    -- property, all activities for the past six weeks are described. If
    -- unknown activities are requested, they are ignored with no error. If you
    -- specify an Auto Scaling group, the results are limited to that group.
    --
    -- Array Members: Maximum number of 50 IDs.
    DescribeScalingActivities -> Maybe [Text]
activityIds :: Prelude.Maybe [Prelude.Text],
    -- | The name of the Auto Scaling group.
    DescribeScalingActivities -> Maybe Text
autoScalingGroupName :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether to include scaling activity from deleted Auto Scaling
    -- groups.
    DescribeScalingActivities -> Maybe Bool
includeDeletedGroups :: Prelude.Maybe Prelude.Bool,
    -- | The maximum number of items to return with this call. The default value
    -- is @100@ and the maximum value is @100@.
    DescribeScalingActivities -> Maybe Int
maxRecords :: Prelude.Maybe Prelude.Int,
    -- | The token for the next set of items to return. (You received this token
    -- from a previous call.)
    DescribeScalingActivities -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeScalingActivities -> DescribeScalingActivities -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeScalingActivities -> DescribeScalingActivities -> Bool
$c/= :: DescribeScalingActivities -> DescribeScalingActivities -> Bool
== :: DescribeScalingActivities -> DescribeScalingActivities -> Bool
$c== :: DescribeScalingActivities -> DescribeScalingActivities -> Bool
Prelude.Eq, ReadPrec [DescribeScalingActivities]
ReadPrec DescribeScalingActivities
Int -> ReadS DescribeScalingActivities
ReadS [DescribeScalingActivities]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeScalingActivities]
$creadListPrec :: ReadPrec [DescribeScalingActivities]
readPrec :: ReadPrec DescribeScalingActivities
$creadPrec :: ReadPrec DescribeScalingActivities
readList :: ReadS [DescribeScalingActivities]
$creadList :: ReadS [DescribeScalingActivities]
readsPrec :: Int -> ReadS DescribeScalingActivities
$creadsPrec :: Int -> ReadS DescribeScalingActivities
Prelude.Read, Int -> DescribeScalingActivities -> ShowS
[DescribeScalingActivities] -> ShowS
DescribeScalingActivities -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeScalingActivities] -> ShowS
$cshowList :: [DescribeScalingActivities] -> ShowS
show :: DescribeScalingActivities -> String
$cshow :: DescribeScalingActivities -> String
showsPrec :: Int -> DescribeScalingActivities -> ShowS
$cshowsPrec :: Int -> DescribeScalingActivities -> ShowS
Prelude.Show, forall x.
Rep DescribeScalingActivities x -> DescribeScalingActivities
forall x.
DescribeScalingActivities -> Rep DescribeScalingActivities x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeScalingActivities x -> DescribeScalingActivities
$cfrom :: forall x.
DescribeScalingActivities -> Rep DescribeScalingActivities x
Prelude.Generic)

-- |
-- Create a value of 'DescribeScalingActivities' 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:
--
-- 'activityIds', 'describeScalingActivities_activityIds' - The activity IDs of the desired scaling activities. If you omit this
-- property, all activities for the past six weeks are described. If
-- unknown activities are requested, they are ignored with no error. If you
-- specify an Auto Scaling group, the results are limited to that group.
--
-- Array Members: Maximum number of 50 IDs.
--
-- 'autoScalingGroupName', 'describeScalingActivities_autoScalingGroupName' - The name of the Auto Scaling group.
--
-- 'includeDeletedGroups', 'describeScalingActivities_includeDeletedGroups' - Indicates whether to include scaling activity from deleted Auto Scaling
-- groups.
--
-- 'maxRecords', 'describeScalingActivities_maxRecords' - The maximum number of items to return with this call. The default value
-- is @100@ and the maximum value is @100@.
--
-- 'nextToken', 'describeScalingActivities_nextToken' - The token for the next set of items to return. (You received this token
-- from a previous call.)
newDescribeScalingActivities ::
  DescribeScalingActivities
newDescribeScalingActivities :: DescribeScalingActivities
newDescribeScalingActivities =
  DescribeScalingActivities'
    { $sel:activityIds:DescribeScalingActivities' :: Maybe [Text]
activityIds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:autoScalingGroupName:DescribeScalingActivities' :: Maybe Text
autoScalingGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:includeDeletedGroups:DescribeScalingActivities' :: Maybe Bool
includeDeletedGroups = forall a. Maybe a
Prelude.Nothing,
      $sel:maxRecords:DescribeScalingActivities' :: Maybe Int
maxRecords = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeScalingActivities' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | The activity IDs of the desired scaling activities. If you omit this
-- property, all activities for the past six weeks are described. If
-- unknown activities are requested, they are ignored with no error. If you
-- specify an Auto Scaling group, the results are limited to that group.
--
-- Array Members: Maximum number of 50 IDs.
describeScalingActivities_activityIds :: Lens.Lens' DescribeScalingActivities (Prelude.Maybe [Prelude.Text])
describeScalingActivities_activityIds :: Lens' DescribeScalingActivities (Maybe [Text])
describeScalingActivities_activityIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivities' {Maybe [Text]
activityIds :: Maybe [Text]
$sel:activityIds:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe [Text]
activityIds} -> Maybe [Text]
activityIds) (\s :: DescribeScalingActivities
s@DescribeScalingActivities' {} Maybe [Text]
a -> DescribeScalingActivities
s {$sel:activityIds:DescribeScalingActivities' :: Maybe [Text]
activityIds = Maybe [Text]
a} :: DescribeScalingActivities) 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 name of the Auto Scaling group.
describeScalingActivities_autoScalingGroupName :: Lens.Lens' DescribeScalingActivities (Prelude.Maybe Prelude.Text)
describeScalingActivities_autoScalingGroupName :: Lens' DescribeScalingActivities (Maybe Text)
describeScalingActivities_autoScalingGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivities' {Maybe Text
autoScalingGroupName :: Maybe Text
$sel:autoScalingGroupName:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
autoScalingGroupName} -> Maybe Text
autoScalingGroupName) (\s :: DescribeScalingActivities
s@DescribeScalingActivities' {} Maybe Text
a -> DescribeScalingActivities
s {$sel:autoScalingGroupName:DescribeScalingActivities' :: Maybe Text
autoScalingGroupName = Maybe Text
a} :: DescribeScalingActivities)

-- | Indicates whether to include scaling activity from deleted Auto Scaling
-- groups.
describeScalingActivities_includeDeletedGroups :: Lens.Lens' DescribeScalingActivities (Prelude.Maybe Prelude.Bool)
describeScalingActivities_includeDeletedGroups :: Lens' DescribeScalingActivities (Maybe Bool)
describeScalingActivities_includeDeletedGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivities' {Maybe Bool
includeDeletedGroups :: Maybe Bool
$sel:includeDeletedGroups:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Bool
includeDeletedGroups} -> Maybe Bool
includeDeletedGroups) (\s :: DescribeScalingActivities
s@DescribeScalingActivities' {} Maybe Bool
a -> DescribeScalingActivities
s {$sel:includeDeletedGroups:DescribeScalingActivities' :: Maybe Bool
includeDeletedGroups = Maybe Bool
a} :: DescribeScalingActivities)

-- | The maximum number of items to return with this call. The default value
-- is @100@ and the maximum value is @100@.
describeScalingActivities_maxRecords :: Lens.Lens' DescribeScalingActivities (Prelude.Maybe Prelude.Int)
describeScalingActivities_maxRecords :: Lens' DescribeScalingActivities (Maybe Int)
describeScalingActivities_maxRecords = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivities' {Maybe Int
maxRecords :: Maybe Int
$sel:maxRecords:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Int
maxRecords} -> Maybe Int
maxRecords) (\s :: DescribeScalingActivities
s@DescribeScalingActivities' {} Maybe Int
a -> DescribeScalingActivities
s {$sel:maxRecords:DescribeScalingActivities' :: Maybe Int
maxRecords = Maybe Int
a} :: DescribeScalingActivities)

-- | The token for the next set of items to return. (You received this token
-- from a previous call.)
describeScalingActivities_nextToken :: Lens.Lens' DescribeScalingActivities (Prelude.Maybe Prelude.Text)
describeScalingActivities_nextToken :: Lens' DescribeScalingActivities (Maybe Text)
describeScalingActivities_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivities' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeScalingActivities
s@DescribeScalingActivities' {} Maybe Text
a -> DescribeScalingActivities
s {$sel:nextToken:DescribeScalingActivities' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeScalingActivities)

instance Core.AWSPager DescribeScalingActivities where
  page :: DescribeScalingActivities
-> AWSResponse DescribeScalingActivities
-> Maybe DescribeScalingActivities
page DescribeScalingActivities
rq AWSResponse DescribeScalingActivities
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeScalingActivities
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeScalingActivitiesResponse (Maybe Text)
describeScalingActivitiesResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeScalingActivities
rs
            forall s a. s -> Getting a s a -> a
Lens.^. Lens' DescribeScalingActivitiesResponse [Activity]
describeScalingActivitiesResponse_activities
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeScalingActivities
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeScalingActivities (Maybe Text)
describeScalingActivities_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeScalingActivities
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeScalingActivitiesResponse (Maybe Text)
describeScalingActivitiesResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeScalingActivities where
  type
    AWSResponse DescribeScalingActivities =
      DescribeScalingActivitiesResponse
  request :: (Service -> Service)
-> DescribeScalingActivities -> Request DescribeScalingActivities
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeScalingActivities
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeScalingActivities)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"DescribeScalingActivitiesResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe Text
-> Int -> [Activity] -> DescribeScalingActivitiesResponse
DescribeScalingActivitiesResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"NextToken")
            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.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Activities"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member"
                        )
      )

instance Prelude.Hashable DescribeScalingActivities where
  hashWithSalt :: Int -> DescribeScalingActivities -> Int
hashWithSalt Int
_salt DescribeScalingActivities' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
maxRecords :: Maybe Int
includeDeletedGroups :: Maybe Bool
autoScalingGroupName :: Maybe Text
activityIds :: Maybe [Text]
$sel:nextToken:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
$sel:maxRecords:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Int
$sel:includeDeletedGroups:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Bool
$sel:autoScalingGroupName:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
$sel:activityIds:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
activityIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
autoScalingGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
includeDeletedGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxRecords
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

instance Prelude.NFData DescribeScalingActivities where
  rnf :: DescribeScalingActivities -> ()
rnf DescribeScalingActivities' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
maxRecords :: Maybe Int
includeDeletedGroups :: Maybe Bool
autoScalingGroupName :: Maybe Text
activityIds :: Maybe [Text]
$sel:nextToken:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
$sel:maxRecords:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Int
$sel:includeDeletedGroups:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Bool
$sel:autoScalingGroupName:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
$sel:activityIds:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
activityIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
autoScalingGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
includeDeletedGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxRecords
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken

instance Data.ToHeaders DescribeScalingActivities where
  toHeaders :: DescribeScalingActivities -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath DescribeScalingActivities where
  toPath :: DescribeScalingActivities -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DescribeScalingActivities where
  toQuery :: DescribeScalingActivities -> QueryString
toQuery DescribeScalingActivities' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
nextToken :: Maybe Text
maxRecords :: Maybe Int
includeDeletedGroups :: Maybe Bool
autoScalingGroupName :: Maybe Text
activityIds :: Maybe [Text]
$sel:nextToken:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
$sel:maxRecords:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Int
$sel:includeDeletedGroups:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Bool
$sel:autoScalingGroupName:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe Text
$sel:activityIds:DescribeScalingActivities' :: DescribeScalingActivities -> Maybe [Text]
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeScalingActivities" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2011-01-01" :: Prelude.ByteString),
        ByteString
"ActivityIds"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            (forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
activityIds),
        ByteString
"AutoScalingGroupName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
autoScalingGroupName,
        ByteString
"IncludeDeletedGroups" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
includeDeletedGroups,
        ByteString
"MaxRecords" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxRecords,
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken
      ]

-- | /See:/ 'newDescribeScalingActivitiesResponse' smart constructor.
data DescribeScalingActivitiesResponse = DescribeScalingActivitiesResponse'
  { -- | A string that indicates that the response contains more items than can
    -- be returned in a single response. To receive additional items, specify
    -- this string for the @NextToken@ value when requesting the next set of
    -- items. This value is null when there are no more items to return.
    DescribeScalingActivitiesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeScalingActivitiesResponse -> Int
httpStatus :: Prelude.Int,
    -- | The scaling activities. Activities are sorted by start time. Activities
    -- still in progress are described first.
    DescribeScalingActivitiesResponse -> [Activity]
activities :: [Activity]
  }
  deriving (DescribeScalingActivitiesResponse
-> DescribeScalingActivitiesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeScalingActivitiesResponse
-> DescribeScalingActivitiesResponse -> Bool
$c/= :: DescribeScalingActivitiesResponse
-> DescribeScalingActivitiesResponse -> Bool
== :: DescribeScalingActivitiesResponse
-> DescribeScalingActivitiesResponse -> Bool
$c== :: DescribeScalingActivitiesResponse
-> DescribeScalingActivitiesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeScalingActivitiesResponse]
ReadPrec DescribeScalingActivitiesResponse
Int -> ReadS DescribeScalingActivitiesResponse
ReadS [DescribeScalingActivitiesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeScalingActivitiesResponse]
$creadListPrec :: ReadPrec [DescribeScalingActivitiesResponse]
readPrec :: ReadPrec DescribeScalingActivitiesResponse
$creadPrec :: ReadPrec DescribeScalingActivitiesResponse
readList :: ReadS [DescribeScalingActivitiesResponse]
$creadList :: ReadS [DescribeScalingActivitiesResponse]
readsPrec :: Int -> ReadS DescribeScalingActivitiesResponse
$creadsPrec :: Int -> ReadS DescribeScalingActivitiesResponse
Prelude.Read, Int -> DescribeScalingActivitiesResponse -> ShowS
[DescribeScalingActivitiesResponse] -> ShowS
DescribeScalingActivitiesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeScalingActivitiesResponse] -> ShowS
$cshowList :: [DescribeScalingActivitiesResponse] -> ShowS
show :: DescribeScalingActivitiesResponse -> String
$cshow :: DescribeScalingActivitiesResponse -> String
showsPrec :: Int -> DescribeScalingActivitiesResponse -> ShowS
$cshowsPrec :: Int -> DescribeScalingActivitiesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeScalingActivitiesResponse x
-> DescribeScalingActivitiesResponse
forall x.
DescribeScalingActivitiesResponse
-> Rep DescribeScalingActivitiesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeScalingActivitiesResponse x
-> DescribeScalingActivitiesResponse
$cfrom :: forall x.
DescribeScalingActivitiesResponse
-> Rep DescribeScalingActivitiesResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeScalingActivitiesResponse' 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:
--
-- 'nextToken', 'describeScalingActivitiesResponse_nextToken' - A string that indicates that the response contains more items than can
-- be returned in a single response. To receive additional items, specify
-- this string for the @NextToken@ value when requesting the next set of
-- items. This value is null when there are no more items to return.
--
-- 'httpStatus', 'describeScalingActivitiesResponse_httpStatus' - The response's http status code.
--
-- 'activities', 'describeScalingActivitiesResponse_activities' - The scaling activities. Activities are sorted by start time. Activities
-- still in progress are described first.
newDescribeScalingActivitiesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeScalingActivitiesResponse
newDescribeScalingActivitiesResponse :: Int -> DescribeScalingActivitiesResponse
newDescribeScalingActivitiesResponse Int
pHttpStatus_ =
  DescribeScalingActivitiesResponse'
    { $sel:nextToken:DescribeScalingActivitiesResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeScalingActivitiesResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:activities:DescribeScalingActivitiesResponse' :: [Activity]
activities = forall a. Monoid a => a
Prelude.mempty
    }

-- | A string that indicates that the response contains more items than can
-- be returned in a single response. To receive additional items, specify
-- this string for the @NextToken@ value when requesting the next set of
-- items. This value is null when there are no more items to return.
describeScalingActivitiesResponse_nextToken :: Lens.Lens' DescribeScalingActivitiesResponse (Prelude.Maybe Prelude.Text)
describeScalingActivitiesResponse_nextToken :: Lens' DescribeScalingActivitiesResponse (Maybe Text)
describeScalingActivitiesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivitiesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeScalingActivitiesResponse' :: DescribeScalingActivitiesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeScalingActivitiesResponse
s@DescribeScalingActivitiesResponse' {} Maybe Text
a -> DescribeScalingActivitiesResponse
s {$sel:nextToken:DescribeScalingActivitiesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeScalingActivitiesResponse)

-- | The response's http status code.
describeScalingActivitiesResponse_httpStatus :: Lens.Lens' DescribeScalingActivitiesResponse Prelude.Int
describeScalingActivitiesResponse_httpStatus :: Lens' DescribeScalingActivitiesResponse Int
describeScalingActivitiesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivitiesResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeScalingActivitiesResponse' :: DescribeScalingActivitiesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeScalingActivitiesResponse
s@DescribeScalingActivitiesResponse' {} Int
a -> DescribeScalingActivitiesResponse
s {$sel:httpStatus:DescribeScalingActivitiesResponse' :: Int
httpStatus = Int
a} :: DescribeScalingActivitiesResponse)

-- | The scaling activities. Activities are sorted by start time. Activities
-- still in progress are described first.
describeScalingActivitiesResponse_activities :: Lens.Lens' DescribeScalingActivitiesResponse [Activity]
describeScalingActivitiesResponse_activities :: Lens' DescribeScalingActivitiesResponse [Activity]
describeScalingActivitiesResponse_activities = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeScalingActivitiesResponse' {[Activity]
activities :: [Activity]
$sel:activities:DescribeScalingActivitiesResponse' :: DescribeScalingActivitiesResponse -> [Activity]
activities} -> [Activity]
activities) (\s :: DescribeScalingActivitiesResponse
s@DescribeScalingActivitiesResponse' {} [Activity]
a -> DescribeScalingActivitiesResponse
s {$sel:activities:DescribeScalingActivitiesResponse' :: [Activity]
activities = [Activity]
a} :: DescribeScalingActivitiesResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    DescribeScalingActivitiesResponse
  where
  rnf :: DescribeScalingActivitiesResponse -> ()
rnf DescribeScalingActivitiesResponse' {Int
[Activity]
Maybe Text
activities :: [Activity]
httpStatus :: Int
nextToken :: Maybe Text
$sel:activities:DescribeScalingActivitiesResponse' :: DescribeScalingActivitiesResponse -> [Activity]
$sel:httpStatus:DescribeScalingActivitiesResponse' :: DescribeScalingActivitiesResponse -> Int
$sel:nextToken:DescribeScalingActivitiesResponse' :: DescribeScalingActivitiesResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      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 [Activity]
activities