{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.EC2.Types.EventInformation -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.EC2.Types.EventInformation where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.EC2.Internal import qualified Amazonka.Prelude as Prelude -- | Describes an EC2 Fleet or Spot Fleet event. -- -- /See:/ 'newEventInformation' smart constructor. data EventInformation = EventInformation' { -- | The description of the event. EventInformation -> Maybe Text eventDescription :: Prelude.Maybe Prelude.Text, -- | The event. -- -- @error@ events: -- -- - @iamFleetRoleInvalid@ - The EC2 Fleet or Spot Fleet does not have -- the required permissions either to launch or terminate an instance. -- -- - @allLaunchSpecsTemporarilyBlacklisted@ - None of the configurations -- are valid, and several attempts to launch instances have failed. For -- more information, see the description of the event. -- -- - @spotInstanceCountLimitExceeded@ - You\'ve reached the limit on the -- number of Spot Instances that you can launch. -- -- - @spotFleetRequestConfigurationInvalid@ - The configuration is not -- valid. For more information, see the description of the event. -- -- @fleetRequestChange@ events: -- -- - @active@ - The EC2 Fleet or Spot Fleet request has been validated -- and Amazon EC2 is attempting to maintain the target number of -- running instances. -- -- - @deleted@ (EC2 Fleet) \/ @cancelled@ (Spot Fleet) - The EC2 Fleet is -- deleted or the Spot Fleet request is canceled and has no running -- instances. The EC2 Fleet or Spot Fleet will be deleted two days -- after its instances are terminated. -- -- - @deleted_running@ (EC2 Fleet) \/ @cancelled_running@ (Spot Fleet) - -- The EC2 Fleet is deleted or the Spot Fleet request is canceled and -- does not launch additional instances. Its existing instances -- continue to run until they are interrupted or terminated. The -- request remains in this state until all instances are interrupted or -- terminated. -- -- - @deleted_terminating@ (EC2 Fleet) \/ @cancelled_terminating@ (Spot -- Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is -- canceled and its instances are terminating. The request remains in -- this state until all instances are terminated. -- -- - @expired@ - The EC2 Fleet or Spot Fleet request has expired. If the -- request was created with @TerminateInstancesWithExpiration@ set, a -- subsequent @terminated@ event indicates that the instances are -- terminated. -- -- - @modify_in_progress@ - The EC2 Fleet or Spot Fleet request is being -- modified. The request remains in this state until the modification -- is fully processed. -- -- - @modify_succeeded@ - The EC2 Fleet or Spot Fleet request was -- modified. -- -- - @submitted@ - The EC2 Fleet or Spot Fleet request is being evaluated -- and Amazon EC2 is preparing to launch the target number of -- instances. -- -- - @progress@ - The EC2 Fleet or Spot Fleet request is in the process -- of being fulfilled. -- -- @instanceChange@ events: -- -- - @launched@ - A new instance was launched. -- -- - @terminated@ - An instance was terminated by the user. -- -- - @termination_notified@ - An instance termination notification was -- sent when a Spot Instance was terminated by Amazon EC2 during -- scale-down, when the target capacity of the fleet was modified down, -- for example, from a target capacity of 4 to a target capacity of 3. -- -- @Information@ events: -- -- - @fleetProgressHalted@ - The price in every launch specification is -- not valid because it is below the Spot price (all the launch -- specifications have produced @launchSpecUnusable@ events). A launch -- specification might become valid if the Spot price changes. -- -- - @launchSpecTemporarilyBlacklisted@ - The configuration is not valid -- and several attempts to launch instances have failed. For more -- information, see the description of the event. -- -- - @launchSpecUnusable@ - The price in a launch specification is not -- valid because it is below the Spot price. -- -- - @registerWithLoadBalancersFailed@ - An attempt to register instances -- with load balancers failed. For more information, see the -- description of the event. EventInformation -> Maybe Text eventSubType :: Prelude.Maybe Prelude.Text, -- | The ID of the instance. This information is available only for -- @instanceChange@ events. EventInformation -> Maybe Text instanceId :: Prelude.Maybe Prelude.Text } deriving (EventInformation -> EventInformation -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: EventInformation -> EventInformation -> Bool $c/= :: EventInformation -> EventInformation -> Bool == :: EventInformation -> EventInformation -> Bool $c== :: EventInformation -> EventInformation -> Bool Prelude.Eq, ReadPrec [EventInformation] ReadPrec EventInformation Int -> ReadS EventInformation ReadS [EventInformation] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [EventInformation] $creadListPrec :: ReadPrec [EventInformation] readPrec :: ReadPrec EventInformation $creadPrec :: ReadPrec EventInformation readList :: ReadS [EventInformation] $creadList :: ReadS [EventInformation] readsPrec :: Int -> ReadS EventInformation $creadsPrec :: Int -> ReadS EventInformation Prelude.Read, Int -> EventInformation -> ShowS [EventInformation] -> ShowS EventInformation -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [EventInformation] -> ShowS $cshowList :: [EventInformation] -> ShowS show :: EventInformation -> String $cshow :: EventInformation -> String showsPrec :: Int -> EventInformation -> ShowS $cshowsPrec :: Int -> EventInformation -> ShowS Prelude.Show, forall x. Rep EventInformation x -> EventInformation forall x. EventInformation -> Rep EventInformation x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep EventInformation x -> EventInformation $cfrom :: forall x. EventInformation -> Rep EventInformation x Prelude.Generic) -- | -- Create a value of 'EventInformation' 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: -- -- 'eventDescription', 'eventInformation_eventDescription' - The description of the event. -- -- 'eventSubType', 'eventInformation_eventSubType' - The event. -- -- @error@ events: -- -- - @iamFleetRoleInvalid@ - The EC2 Fleet or Spot Fleet does not have -- the required permissions either to launch or terminate an instance. -- -- - @allLaunchSpecsTemporarilyBlacklisted@ - None of the configurations -- are valid, and several attempts to launch instances have failed. For -- more information, see the description of the event. -- -- - @spotInstanceCountLimitExceeded@ - You\'ve reached the limit on the -- number of Spot Instances that you can launch. -- -- - @spotFleetRequestConfigurationInvalid@ - The configuration is not -- valid. For more information, see the description of the event. -- -- @fleetRequestChange@ events: -- -- - @active@ - The EC2 Fleet or Spot Fleet request has been validated -- and Amazon EC2 is attempting to maintain the target number of -- running instances. -- -- - @deleted@ (EC2 Fleet) \/ @cancelled@ (Spot Fleet) - The EC2 Fleet is -- deleted or the Spot Fleet request is canceled and has no running -- instances. The EC2 Fleet or Spot Fleet will be deleted two days -- after its instances are terminated. -- -- - @deleted_running@ (EC2 Fleet) \/ @cancelled_running@ (Spot Fleet) - -- The EC2 Fleet is deleted or the Spot Fleet request is canceled and -- does not launch additional instances. Its existing instances -- continue to run until they are interrupted or terminated. The -- request remains in this state until all instances are interrupted or -- terminated. -- -- - @deleted_terminating@ (EC2 Fleet) \/ @cancelled_terminating@ (Spot -- Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is -- canceled and its instances are terminating. The request remains in -- this state until all instances are terminated. -- -- - @expired@ - The EC2 Fleet or Spot Fleet request has expired. If the -- request was created with @TerminateInstancesWithExpiration@ set, a -- subsequent @terminated@ event indicates that the instances are -- terminated. -- -- - @modify_in_progress@ - The EC2 Fleet or Spot Fleet request is being -- modified. The request remains in this state until the modification -- is fully processed. -- -- - @modify_succeeded@ - The EC2 Fleet or Spot Fleet request was -- modified. -- -- - @submitted@ - The EC2 Fleet or Spot Fleet request is being evaluated -- and Amazon EC2 is preparing to launch the target number of -- instances. -- -- - @progress@ - The EC2 Fleet or Spot Fleet request is in the process -- of being fulfilled. -- -- @instanceChange@ events: -- -- - @launched@ - A new instance was launched. -- -- - @terminated@ - An instance was terminated by the user. -- -- - @termination_notified@ - An instance termination notification was -- sent when a Spot Instance was terminated by Amazon EC2 during -- scale-down, when the target capacity of the fleet was modified down, -- for example, from a target capacity of 4 to a target capacity of 3. -- -- @Information@ events: -- -- - @fleetProgressHalted@ - The price in every launch specification is -- not valid because it is below the Spot price (all the launch -- specifications have produced @launchSpecUnusable@ events). A launch -- specification might become valid if the Spot price changes. -- -- - @launchSpecTemporarilyBlacklisted@ - The configuration is not valid -- and several attempts to launch instances have failed. For more -- information, see the description of the event. -- -- - @launchSpecUnusable@ - The price in a launch specification is not -- valid because it is below the Spot price. -- -- - @registerWithLoadBalancersFailed@ - An attempt to register instances -- with load balancers failed. For more information, see the -- description of the event. -- -- 'instanceId', 'eventInformation_instanceId' - The ID of the instance. This information is available only for -- @instanceChange@ events. newEventInformation :: EventInformation newEventInformation :: EventInformation newEventInformation = EventInformation' { $sel:eventDescription:EventInformation' :: Maybe Text eventDescription = forall a. Maybe a Prelude.Nothing, $sel:eventSubType:EventInformation' :: Maybe Text eventSubType = forall a. Maybe a Prelude.Nothing, $sel:instanceId:EventInformation' :: Maybe Text instanceId = forall a. Maybe a Prelude.Nothing } -- | The description of the event. eventInformation_eventDescription :: Lens.Lens' EventInformation (Prelude.Maybe Prelude.Text) eventInformation_eventDescription :: Lens' EventInformation (Maybe Text) eventInformation_eventDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EventInformation' {Maybe Text eventDescription :: Maybe Text $sel:eventDescription:EventInformation' :: EventInformation -> Maybe Text eventDescription} -> Maybe Text eventDescription) (\s :: EventInformation s@EventInformation' {} Maybe Text a -> EventInformation s {$sel:eventDescription:EventInformation' :: Maybe Text eventDescription = Maybe Text a} :: EventInformation) -- | The event. -- -- @error@ events: -- -- - @iamFleetRoleInvalid@ - The EC2 Fleet or Spot Fleet does not have -- the required permissions either to launch or terminate an instance. -- -- - @allLaunchSpecsTemporarilyBlacklisted@ - None of the configurations -- are valid, and several attempts to launch instances have failed. For -- more information, see the description of the event. -- -- - @spotInstanceCountLimitExceeded@ - You\'ve reached the limit on the -- number of Spot Instances that you can launch. -- -- - @spotFleetRequestConfigurationInvalid@ - The configuration is not -- valid. For more information, see the description of the event. -- -- @fleetRequestChange@ events: -- -- - @active@ - The EC2 Fleet or Spot Fleet request has been validated -- and Amazon EC2 is attempting to maintain the target number of -- running instances. -- -- - @deleted@ (EC2 Fleet) \/ @cancelled@ (Spot Fleet) - The EC2 Fleet is -- deleted or the Spot Fleet request is canceled and has no running -- instances. The EC2 Fleet or Spot Fleet will be deleted two days -- after its instances are terminated. -- -- - @deleted_running@ (EC2 Fleet) \/ @cancelled_running@ (Spot Fleet) - -- The EC2 Fleet is deleted or the Spot Fleet request is canceled and -- does not launch additional instances. Its existing instances -- continue to run until they are interrupted or terminated. The -- request remains in this state until all instances are interrupted or -- terminated. -- -- - @deleted_terminating@ (EC2 Fleet) \/ @cancelled_terminating@ (Spot -- Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is -- canceled and its instances are terminating. The request remains in -- this state until all instances are terminated. -- -- - @expired@ - The EC2 Fleet or Spot Fleet request has expired. If the -- request was created with @TerminateInstancesWithExpiration@ set, a -- subsequent @terminated@ event indicates that the instances are -- terminated. -- -- - @modify_in_progress@ - The EC2 Fleet or Spot Fleet request is being -- modified. The request remains in this state until the modification -- is fully processed. -- -- - @modify_succeeded@ - The EC2 Fleet or Spot Fleet request was -- modified. -- -- - @submitted@ - The EC2 Fleet or Spot Fleet request is being evaluated -- and Amazon EC2 is preparing to launch the target number of -- instances. -- -- - @progress@ - The EC2 Fleet or Spot Fleet request is in the process -- of being fulfilled. -- -- @instanceChange@ events: -- -- - @launched@ - A new instance was launched. -- -- - @terminated@ - An instance was terminated by the user. -- -- - @termination_notified@ - An instance termination notification was -- sent when a Spot Instance was terminated by Amazon EC2 during -- scale-down, when the target capacity of the fleet was modified down, -- for example, from a target capacity of 4 to a target capacity of 3. -- -- @Information@ events: -- -- - @fleetProgressHalted@ - The price in every launch specification is -- not valid because it is below the Spot price (all the launch -- specifications have produced @launchSpecUnusable@ events). A launch -- specification might become valid if the Spot price changes. -- -- - @launchSpecTemporarilyBlacklisted@ - The configuration is not valid -- and several attempts to launch instances have failed. For more -- information, see the description of the event. -- -- - @launchSpecUnusable@ - The price in a launch specification is not -- valid because it is below the Spot price. -- -- - @registerWithLoadBalancersFailed@ - An attempt to register instances -- with load balancers failed. For more information, see the -- description of the event. eventInformation_eventSubType :: Lens.Lens' EventInformation (Prelude.Maybe Prelude.Text) eventInformation_eventSubType :: Lens' EventInformation (Maybe Text) eventInformation_eventSubType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EventInformation' {Maybe Text eventSubType :: Maybe Text $sel:eventSubType:EventInformation' :: EventInformation -> Maybe Text eventSubType} -> Maybe Text eventSubType) (\s :: EventInformation s@EventInformation' {} Maybe Text a -> EventInformation s {$sel:eventSubType:EventInformation' :: Maybe Text eventSubType = Maybe Text a} :: EventInformation) -- | The ID of the instance. This information is available only for -- @instanceChange@ events. eventInformation_instanceId :: Lens.Lens' EventInformation (Prelude.Maybe Prelude.Text) eventInformation_instanceId :: Lens' EventInformation (Maybe Text) eventInformation_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\EventInformation' {Maybe Text instanceId :: Maybe Text $sel:instanceId:EventInformation' :: EventInformation -> Maybe Text instanceId} -> Maybe Text instanceId) (\s :: EventInformation s@EventInformation' {} Maybe Text a -> EventInformation s {$sel:instanceId:EventInformation' :: Maybe Text instanceId = Maybe Text a} :: EventInformation) instance Data.FromXML EventInformation where parseXML :: [Node] -> Either String EventInformation parseXML [Node] x = Maybe Text -> Maybe Text -> Maybe Text -> EventInformation EventInformation' 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 "eventDescription") 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 "eventSubType") 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 "instanceId") instance Prelude.Hashable EventInformation where hashWithSalt :: Int -> EventInformation -> Int hashWithSalt Int _salt EventInformation' {Maybe Text instanceId :: Maybe Text eventSubType :: Maybe Text eventDescription :: Maybe Text $sel:instanceId:EventInformation' :: EventInformation -> Maybe Text $sel:eventSubType:EventInformation' :: EventInformation -> Maybe Text $sel:eventDescription:EventInformation' :: EventInformation -> Maybe Text ..} = Int _salt forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text eventDescription forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text eventSubType forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text instanceId instance Prelude.NFData EventInformation where rnf :: EventInformation -> () rnf EventInformation' {Maybe Text instanceId :: Maybe Text eventSubType :: Maybe Text eventDescription :: Maybe Text $sel:instanceId:EventInformation' :: EventInformation -> Maybe Text $sel:eventSubType:EventInformation' :: EventInformation -> Maybe Text $sel:eventDescription:EventInformation' :: EventInformation -> Maybe Text ..} = forall a. NFData a => a -> () Prelude.rnf Maybe Text eventDescription seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text eventSubType seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text instanceId