-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Health APIs and Notifications SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.AWSHealth</a> or <a>the AWS documentation</a> to
--   get started.
@package amazonka-health
@version 1.6.0


module Network.AWS.AWSHealth.Types

-- | API version <tt>2016-08-04</tt> of the Amazon Health APIs and
--   Notifications SDK configuration.
awsHealth :: Service

-- | The specified pagination token (<tt>nextToken</tt> ) is not valid.
_InvalidPaginationToken :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified locale is not supported.
_UnsupportedLocale :: AsError a => Getting (First ServiceError) a ServiceError
data EntityStatusCode
Impaired :: EntityStatusCode
Unimpaired :: EntityStatusCode
Unknown :: EntityStatusCode
data EventAggregateField
EventTypeCategory :: EventAggregateField
data EventStatusCode
Closed :: EventStatusCode
Open :: EventStatusCode
Upcoming :: EventStatusCode
data EventTypeCategory
AccountNotification :: EventTypeCategory
Issue :: EventTypeCategory
ScheduledChange :: EventTypeCategory

-- | Information about an entity that is affected by a Health event.
--   
--   <i>See:</i> <a>affectedEntity</a> smart constructor.
data AffectedEntity

-- | Creates a value of <a>AffectedEntity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aeLastUpdatedTime</a> - The most recent time that the entity
--   was updated.</li>
--   <li><a>aeEntityValue</a> - The ID of the affected entity.</li>
--   <li><a>aeAwsAccountId</a> - The 12-digit AWS account number that
--   contains the affected entity.</li>
--   <li><a>aeEventARN</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   <li><a>aeEntityARN</a> - The unique identifier for the entity. Format:
--   <tt>arn:aws:health:<i>entity-region</i> :<i>aws-account</i>
--   :entity/<i>entity-id</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1:111222333444:entity/AVh5GGT7ul1arKr1sE1K</tt></li>
--   <li><a>aeTags</a> - A map of entity tags attached to the affected
--   entity.</li>
--   <li><a>aeStatusCode</a> - The most recent status of the entity
--   affected by the event. The possible values are <tt>IMPAIRED</tt> ,
--   <tt>UNIMPAIRED</tt> , and <tt>UNKNOWN</tt> .</li>
--   </ul>
affectedEntity :: AffectedEntity

-- | The most recent time that the entity was updated.
aeLastUpdatedTime :: Lens' AffectedEntity (Maybe UTCTime)

-- | The ID of the affected entity.
aeEntityValue :: Lens' AffectedEntity (Maybe Text)

-- | The 12-digit AWS account number that contains the affected entity.
aeAwsAccountId :: Lens' AffectedEntity (Maybe Text)

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
aeEventARN :: Lens' AffectedEntity (Maybe Text)

-- | The unique identifier for the entity. Format:
--   <tt>arn:aws:health:<i>entity-region</i> :<i>aws-account</i>
--   :entity/<i>entity-id</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1:111222333444:entity/AVh5GGT7ul1arKr1sE1K</tt>
aeEntityARN :: Lens' AffectedEntity (Maybe Text)

-- | A map of entity tags attached to the affected entity.
aeTags :: Lens' AffectedEntity (HashMap Text Text)

-- | The most recent status of the entity affected by the event. The
--   possible values are <tt>IMPAIRED</tt> , <tt>UNIMPAIRED</tt> , and
--   <tt>UNKNOWN</tt> .
aeStatusCode :: Lens' AffectedEntity (Maybe EntityStatusCode)

-- | A range of dates and times that is used by the <a>EventFilter</a> and
--   <a>EntityFilter</a> objects. If <tt>from</tt> is set and <tt>to</tt>
--   is set: match items where the timestamp (<tt>startTime</tt> ,
--   <tt>endTime</tt> , or <tt>lastUpdatedTime</tt> ) is between
--   <tt>from</tt> and <tt>to</tt> inclusive. If <tt>from</tt> is set and
--   <tt>to</tt> is not set: match items where the timestamp value is equal
--   to or after <tt>from</tt> . If <tt>from</tt> is not set and
--   <tt>to</tt> is set: match items where the timestamp value is equal to
--   or before <tt>to</tt> .
--   
--   <i>See:</i> <a>dateTimeRange</a> smart constructor.
data DateTimeRange

-- | Creates a value of <a>DateTimeRange</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtrTo</a> - The ending date and time of a time range.</li>
--   <li><a>dtrFrom</a> - The starting date and time of a time range.</li>
--   </ul>
dateTimeRange :: DateTimeRange

-- | The ending date and time of a time range.
dtrTo :: Lens' DateTimeRange (Maybe UTCTime)

-- | The starting date and time of a time range.
dtrFrom :: Lens' DateTimeRange (Maybe UTCTime)

-- | The number of entities that are affected by one or more events.
--   Returned by the <tt>DescribeEntityAggregates</tt> operation.
--   
--   <i>See:</i> <a>entityAggregate</a> smart constructor.
data EntityAggregate

-- | Creates a value of <a>EntityAggregate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eCount</a> - The number entities that match the criteria for
--   the specified events.</li>
--   <li><a>eEventARN</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   </ul>
entityAggregate :: EntityAggregate

-- | The number entities that match the criteria for the specified events.
eCount :: Lens' EntityAggregate (Maybe Int)

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
eEventARN :: Lens' EntityAggregate (Maybe Text)

-- | The values to use to filter results from the
--   <tt>DescribeAffectedEntities</tt> operation.
--   
--   <i>See:</i> <a>entityFilter</a> smart constructor.
data EntityFilter

-- | Creates a value of <a>EntityFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eStatusCodes</a> - A list of entity status codes
--   (<tt>IMPAIRED</tt> , <tt>UNIMPAIRED</tt> , or <tt>UNKNOWN</tt> ).</li>
--   <li><a>eEntityARNs</a> - A list of entity ARNs (unique
--   identifiers).</li>
--   <li><a>eEntityValues</a> - A list of IDs for affected entities.</li>
--   <li><a>eTags</a> - A map of entity tags attached to the affected
--   entity.</li>
--   <li><a>eLastUpdatedTimes</a> - A list of the most recent dates and
--   times that the entity was updated.</li>
--   <li><a>eEventARNs</a> - A list of event ARNs (unique identifiers). For
--   example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt></li>
--   </ul>
entityFilter :: NonEmpty Text -> EntityFilter

-- | A list of entity status codes (<tt>IMPAIRED</tt> , <tt>UNIMPAIRED</tt>
--   , or <tt>UNKNOWN</tt> ).
eStatusCodes :: Lens' EntityFilter (Maybe (NonEmpty EntityStatusCode))

-- | A list of entity ARNs (unique identifiers).
eEntityARNs :: Lens' EntityFilter (Maybe (NonEmpty Text))

-- | A list of IDs for affected entities.
eEntityValues :: Lens' EntityFilter (Maybe (NonEmpty Text))

-- | A map of entity tags attached to the affected entity.
eTags :: Lens' EntityFilter [HashMap Text Text]

-- | A list of the most recent dates and times that the entity was updated.
eLastUpdatedTimes :: Lens' EntityFilter (Maybe (NonEmpty DateTimeRange))

-- | A list of event ARNs (unique identifiers). For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt>
eEventARNs :: Lens' EntityFilter (NonEmpty Text)

-- | Summary information about an event, returned by the
--   <tt>DescribeEvents</tt> operation. The <tt>DescribeEventDetails</tt>
--   operation also returns this information, as well as the
--   <a>EventDescription</a> and additional event metadata.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eLastUpdatedTime</a> - The most recent date and time that the
--   event was updated.</li>
--   <li><a>eArn</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   <li><a>eService</a> - The AWS service that is affected by the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   <li><a>eStartTime</a> - The date and time that the event began.</li>
--   <li><a>eEventTypeCode</a> - The unique identifier for the event type.
--   The format is <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for
--   example, <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .</li>
--   <li><a>eEventTypeCategory</a> - The</li>
--   <li><a>eAvailabilityZone</a> - The AWS Availability Zone of the event.
--   For example, us-east-1a.</li>
--   <li><a>eEndTime</a> - The date and time that the event ended.</li>
--   <li><a>eRegion</a> - The AWS region name of the event.</li>
--   <li><a>eStatusCode</a> - The most recent status of the event. Possible
--   values are <tt>open</tt> , <tt>closed</tt> , and <tt>upcoming</tt>
--   .</li>
--   </ul>
event :: Event

-- | The most recent date and time that the event was updated.
eLastUpdatedTime :: Lens' Event (Maybe UTCTime)

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
eArn :: Lens' Event (Maybe Text)

-- | The AWS service that is affected by the event. For example,
--   <tt>EC2</tt> , <tt>RDS</tt> .
eService :: Lens' Event (Maybe Text)

-- | The date and time that the event began.
eStartTime :: Lens' Event (Maybe UTCTime)

-- | The unique identifier for the event type. The format is
--   <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .
eEventTypeCode :: Lens' Event (Maybe Text)

-- | The
eEventTypeCategory :: Lens' Event (Maybe EventTypeCategory)

-- | The AWS Availability Zone of the event. For example, us-east-1a.
eAvailabilityZone :: Lens' Event (Maybe Text)

-- | The date and time that the event ended.
eEndTime :: Lens' Event (Maybe UTCTime)

-- | The AWS region name of the event.
eRegion :: Lens' Event (Maybe Text)

-- | The most recent status of the event. Possible values are <tt>open</tt>
--   , <tt>closed</tt> , and <tt>upcoming</tt> .
eStatusCode :: Lens' Event (Maybe EventStatusCode)

-- | The number of events of each issue type. Returned by the
--   <tt>DescribeEventAggregates</tt> operation.
--   
--   <i>See:</i> <a>eventAggregate</a> smart constructor.
data EventAggregate

-- | Creates a value of <a>EventAggregate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eaCount</a> - The number of events of the associated issue
--   type.</li>
--   <li><a>eaAggregateValue</a> - The issue type for the associated
--   count.</li>
--   </ul>
eventAggregate :: EventAggregate

-- | The number of events of the associated issue type.
eaCount :: Lens' EventAggregate (Maybe Int)

-- | The issue type for the associated count.
eaAggregateValue :: Lens' EventAggregate (Maybe Text)

-- | The detailed description of the event. Included in the information
--   returned by the <tt>DescribeEventDetails</tt> operation.
--   
--   <i>See:</i> <a>eventDescription</a> smart constructor.
data EventDescription

-- | Creates a value of <a>EventDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edLatestDescription</a> - The most recent description of the
--   event.</li>
--   </ul>
eventDescription :: EventDescription

-- | The most recent description of the event.
edLatestDescription :: Lens' EventDescription (Maybe Text)

-- | Detailed information about an event. A combination of an <a>Event</a>
--   object, an <a>EventDescription</a> object, and additional metadata
--   about the event. Returned by the <tt>DescribeEventDetails</tt>
--   operation.
--   
--   <i>See:</i> <a>eventDetails</a> smart constructor.
data EventDetails

-- | Creates a value of <a>EventDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edEvent</a> - Summary information about the event.</li>
--   <li><a>edEventDescription</a> - The most recent description of the
--   event.</li>
--   <li><a>edEventMetadata</a> - Additional metadata about the event.</li>
--   </ul>
eventDetails :: EventDetails

-- | Summary information about the event.
edEvent :: Lens' EventDetails (Maybe Event)

-- | The most recent description of the event.
edEventDescription :: Lens' EventDetails (Maybe EventDescription)

-- | Additional metadata about the event.
edEventMetadata :: Lens' EventDetails (HashMap Text Text)

-- | Error information returned when a <tt>DescribeEventDetails</tt>
--   operation cannot find a specified event.
--   
--   <i>See:</i> <a>eventDetailsErrorItem</a> smart constructor.
data EventDetailsErrorItem

-- | Creates a value of <a>EventDetailsErrorItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edeiEventARN</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   <li><a>edeiErrorName</a> - The name of the error.</li>
--   <li><a>edeiErrorMessage</a> - A message that describes the error.</li>
--   </ul>
eventDetailsErrorItem :: EventDetailsErrorItem

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
edeiEventARN :: Lens' EventDetailsErrorItem (Maybe Text)

-- | The name of the error.
edeiErrorName :: Lens' EventDetailsErrorItem (Maybe Text)

-- | A message that describes the error.
edeiErrorMessage :: Lens' EventDetailsErrorItem (Maybe Text)

-- | The values to use to filter results from the <tt>DescribeEvents</tt>
--   and <tt>DescribeEventAggregates</tt> operations.
--   
--   <i>See:</i> <a>eventFilter</a> smart constructor.
data EventFilter

-- | Creates a value of <a>EventFilter</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>efEventARNs</a> - A list of event ARNs (unique identifiers).
--   For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt></li>
--   <li><a>efEventTypeCategories</a> - A list of event type category codes
--   (<tt>issue</tt> , <tt>scheduledChange</tt> , or
--   <tt>accountNotification</tt> ).</li>
--   <li><a>efEventTypeCodes</a> - A list of unique identifiers for event
--   types. For example,
--   <tt><a>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</a>,<a>AWS_RDS_MAINTENANCE_SCHEDULED</a></tt></li>
--   <li><a>efRegions</a> - A list of AWS regions.</li>
--   <li><a>efEventStatusCodes</a> - A list of event status codes.</li>
--   <li><a>efEndTimes</a> - A list of dates and times that the event
--   ended.</li>
--   <li><a>efAvailabilityZones</a> - A list of AWS availability
--   zones.</li>
--   <li><a>efEntityARNs</a> - A list of entity ARNs (unique
--   identifiers).</li>
--   <li><a>efEntityValues</a> - A list of entity identifiers, such as EC2
--   instance IDs (<tt>i-34ab692e</tt> ) or EBS volumes
--   (<tt>vol-426ab23e</tt> ).</li>
--   <li><a>efStartTimes</a> - A list of dates and times that the event
--   began.</li>
--   <li><a>efServices</a> - The AWS services associated with the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   <li><a>efTags</a> - A map of entity tags attached to the affected
--   entity.</li>
--   <li><a>efLastUpdatedTimes</a> - A list of dates and times that the
--   event was last updated.</li>
--   </ul>
eventFilter :: EventFilter

-- | A list of event ARNs (unique identifiers). For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt>
efEventARNs :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of event type category codes (<tt>issue</tt> ,
--   <tt>scheduledChange</tt> , or <tt>accountNotification</tt> ).
efEventTypeCategories :: Lens' EventFilter (Maybe (NonEmpty EventTypeCategory))

-- | A list of unique identifiers for event types. For example,
--   <tt><a>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</a>,<a>AWS_RDS_MAINTENANCE_SCHEDULED</a></tt>
efEventTypeCodes :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of AWS regions.
efRegions :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of event status codes.
efEventStatusCodes :: Lens' EventFilter (Maybe (NonEmpty EventStatusCode))

-- | A list of dates and times that the event ended.
efEndTimes :: Lens' EventFilter (Maybe (NonEmpty DateTimeRange))

-- | A list of AWS availability zones.
efAvailabilityZones :: Lens' EventFilter [Text]

-- | A list of entity ARNs (unique identifiers).
efEntityARNs :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of entity identifiers, such as EC2 instance IDs
--   (<tt>i-34ab692e</tt> ) or EBS volumes (<tt>vol-426ab23e</tt> ).
efEntityValues :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of dates and times that the event began.
efStartTimes :: Lens' EventFilter (Maybe (NonEmpty DateTimeRange))

-- | The AWS services associated with the event. For example, <tt>EC2</tt>
--   , <tt>RDS</tt> .
efServices :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A map of entity tags attached to the affected entity.
efTags :: Lens' EventFilter [HashMap Text Text]

-- | A list of dates and times that the event was last updated.
efLastUpdatedTimes :: Lens' EventFilter (Maybe (NonEmpty DateTimeRange))

-- | Metadata about a type of event that is reported by AWS Health. Data
--   consists of the category (for example, <tt>issue</tt> ), the service
--   (for example, <tt>EC2</tt> ), and the event type code (for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> ).
--   
--   <i>See:</i> <a>eventType</a> smart constructor.
data EventType

-- | Creates a value of <a>EventType</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etService</a> - The AWS service that is affected by the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   <li><a>etCategory</a> - A list of event type category codes
--   (<tt>issue</tt> , <tt>scheduledChange</tt> , or
--   <tt>accountNotification</tt> ).</li>
--   <li><a>etCode</a> - The unique identifier for the event type. The
--   format is <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for
--   example, <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .</li>
--   </ul>
eventType :: EventType

-- | The AWS service that is affected by the event. For example,
--   <tt>EC2</tt> , <tt>RDS</tt> .
etService :: Lens' EventType (Maybe Text)

-- | A list of event type category codes (<tt>issue</tt> ,
--   <tt>scheduledChange</tt> , or <tt>accountNotification</tt> ).
etCategory :: Lens' EventType (Maybe EventTypeCategory)

-- | The unique identifier for the event type. The format is
--   <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .
etCode :: Lens' EventType (Maybe Text)

-- | The values to use to filter results from the
--   <tt>DescribeEventTypes</tt> operation.
--   
--   <i>See:</i> <a>eventTypeFilter</a> smart constructor.
data EventTypeFilter

-- | Creates a value of <a>EventTypeFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etfEventTypeCategories</a> - A list of event type category
--   codes (<tt>issue</tt> , <tt>scheduledChange</tt> , or
--   <tt>accountNotification</tt> ).</li>
--   <li><a>etfEventTypeCodes</a> - A list of event type codes.</li>
--   <li><a>etfServices</a> - The AWS services associated with the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   </ul>
eventTypeFilter :: EventTypeFilter

-- | A list of event type category codes (<tt>issue</tt> ,
--   <tt>scheduledChange</tt> , or <tt>accountNotification</tt> ).
etfEventTypeCategories :: Lens' EventTypeFilter (Maybe (NonEmpty EventTypeCategory))

-- | A list of event type codes.
etfEventTypeCodes :: Lens' EventTypeFilter (Maybe (NonEmpty Text))

-- | The AWS services associated with the event. For example, <tt>EC2</tt>
--   , <tt>RDS</tt> .
etfServices :: Lens' EventTypeFilter (Maybe (NonEmpty Text))


-- | Returns information about events that meet the specified filter
--   criteria. Events are returned in a summary form and do not include the
--   detailed description, any additional metadata that depends on the
--   event type, or any affected resources. To retrieve that information,
--   use the <tt>DescribeEventDetails</tt> and
--   <tt>DescribeAffectedEntities</tt> operations.
--   
--   If no filter criteria are specified, all events are returned. Results
--   are sorted by <tt>lastModifiedTime</tt> , starting with the most
--   recent.
--   
--   This operation returns paginated results.
module Network.AWS.AWSHealth.DescribeEvents

-- | Creates a value of <a>DescribeEvents</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deLocale</a> - The locale (language) to return information in.
--   English (en) is the default and the only supported value at this
--   time.</li>
--   <li><a>deNextToken</a> - If the results of a search are large, only a
--   portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>deFilter</a> - Values to narrow the results returned.</li>
--   <li><a>deMaxResults</a> - The maximum number of items to return in one
--   batch, between 10 and 100, inclusive.</li>
--   </ul>
describeEvents :: DescribeEvents

-- | <i>See:</i> <a>describeEvents</a> smart constructor.
data DescribeEvents

-- | The locale (language) to return information in. English (en) is the
--   default and the only supported value at this time.
deLocale :: Lens' DescribeEvents (Maybe Text)

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
deNextToken :: Lens' DescribeEvents (Maybe Text)

-- | Values to narrow the results returned.
deFilter :: Lens' DescribeEvents (Maybe EventFilter)

-- | The maximum number of items to return in one batch, between 10 and
--   100, inclusive.
deMaxResults :: Lens' DescribeEvents (Maybe Natural)

-- | Creates a value of <a>DescribeEventsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dersNextToken</a> - If the results of a search are large, only
--   a portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>dersEvents</a> - The events that match the specified filter
--   criteria.</li>
--   <li><a>dersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventsResponse :: Int -> DescribeEventsResponse

-- | <i>See:</i> <a>describeEventsResponse</a> smart constructor.
data DescribeEventsResponse

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
dersNextToken :: Lens' DescribeEventsResponse (Maybe Text)

-- | The events that match the specified filter criteria.
dersEvents :: Lens' DescribeEventsResponse [Event]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dersResponseStatus :: Lens' DescribeEventsResponse Int
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEvents.DescribeEventsResponse
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEvents.DescribeEventsResponse
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEvents.DescribeEventsResponse
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEvents.DescribeEventsResponse
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEvents.DescribeEventsResponse
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Network.AWS.Types.AWSRequest Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEvents.DescribeEventsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Data.Hashable.Class.Hashable Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Network.AWS.Data.Path.ToPath Network.AWS.AWSHealth.DescribeEvents.DescribeEvents
instance Network.AWS.Data.Query.ToQuery Network.AWS.AWSHealth.DescribeEvents.DescribeEvents


-- | Returns the event types that meet the specified filter criteria. If no
--   filter criteria are specified, all event types are returned, in no
--   particular order.
--   
--   This operation returns paginated results.
module Network.AWS.AWSHealth.DescribeEventTypes

-- | Creates a value of <a>DescribeEventTypes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>detLocale</a> - The locale (language) to return information in.
--   English (en) is the default and the only supported value at this
--   time.</li>
--   <li><a>detNextToken</a> - If the results of a search are large, only a
--   portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>detFilter</a> - Values to narrow the results returned.</li>
--   <li><a>detMaxResults</a> - The maximum number of items to return in
--   one batch, between 10 and 100, inclusive.</li>
--   </ul>
describeEventTypes :: DescribeEventTypes

-- | <i>See:</i> <a>describeEventTypes</a> smart constructor.
data DescribeEventTypes

-- | The locale (language) to return information in. English (en) is the
--   default and the only supported value at this time.
detLocale :: Lens' DescribeEventTypes (Maybe Text)

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
detNextToken :: Lens' DescribeEventTypes (Maybe Text)

-- | Values to narrow the results returned.
detFilter :: Lens' DescribeEventTypes (Maybe EventTypeFilter)

-- | The maximum number of items to return in one batch, between 10 and
--   100, inclusive.
detMaxResults :: Lens' DescribeEventTypes (Maybe Natural)

-- | Creates a value of <a>DescribeEventTypesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>detrsEventTypes</a> - A list of event types that match the
--   filter criteria. Event types have a category (<tt>issue</tt> ,
--   <tt>accountNotification</tt> , or <tt>scheduledChange</tt> ), a
--   service (for example, <tt>EC2</tt> , <tt>RDS</tt> ,
--   <tt>DATAPIPELINE</tt> , <tt>BILLING</tt> ), and a code (in the format
--   <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> ).</li>
--   <li><a>detrsNextToken</a> - If the results of a search are large, only
--   a portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>detrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventTypesResponse :: Int -> DescribeEventTypesResponse

-- | <i>See:</i> <a>describeEventTypesResponse</a> smart constructor.
data DescribeEventTypesResponse

-- | A list of event types that match the filter criteria. Event types have
--   a category (<tt>issue</tt> , <tt>accountNotification</tt> , or
--   <tt>scheduledChange</tt> ), a service (for example, <tt>EC2</tt> ,
--   <tt>RDS</tt> , <tt>DATAPIPELINE</tt> , <tt>BILLING</tt> ), and a code
--   (in the format <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for
--   example, <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> ).
detrsEventTypes :: Lens' DescribeEventTypesResponse [EventType]

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
detrsNextToken :: Lens' DescribeEventTypesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
detrsResponseStatus :: Lens' DescribeEventTypesResponse Int
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypesResponse
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypesResponse
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypesResponse
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypesResponse
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypesResponse
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Network.AWS.Types.AWSRequest Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Data.Hashable.Class.Hashable Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Network.AWS.Data.Path.ToPath Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes
instance Network.AWS.Data.Query.ToQuery Network.AWS.AWSHealth.DescribeEventTypes.DescribeEventTypes


-- | Returns detailed information about one or more specified events.
--   Information includes standard event data (region, service, etc., as
--   returned by <tt>DescribeEvents</tt> ), a detailed event description,
--   and possible additional metadata that depends upon the nature of the
--   event. Affected entities are not included; to retrieve those, use the
--   <tt>DescribeAffectedEntities</tt> operation.
--   
--   If a specified event cannot be retrieved, an error message is returned
--   for that event.
module Network.AWS.AWSHealth.DescribeEventDetails

-- | Creates a value of <a>DescribeEventDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedLocale</a> - The locale (language) to return information in.
--   English (en) is the default and the only supported value at this
--   time.</li>
--   <li><a>dedEventARNs</a> - A list of event ARNs (unique identifiers).
--   For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt></li>
--   </ul>
describeEventDetails :: NonEmpty Text -> DescribeEventDetails

-- | <i>See:</i> <a>describeEventDetails</a> smart constructor.
data DescribeEventDetails

-- | The locale (language) to return information in. English (en) is the
--   default and the only supported value at this time.
dedLocale :: Lens' DescribeEventDetails (Maybe Text)

-- | A list of event ARNs (unique identifiers). For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt>
dedEventARNs :: Lens' DescribeEventDetails (NonEmpty Text)

-- | Creates a value of <a>DescribeEventDetailsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dedrsSuccessfulSet</a> - Information about the events that
--   could be retrieved.</li>
--   <li><a>dedrsFailedSet</a> - Error messages for any events that could
--   not be retrieved.</li>
--   <li><a>dedrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventDetailsResponse :: Int -> DescribeEventDetailsResponse

-- | <i>See:</i> <a>describeEventDetailsResponse</a> smart constructor.
data DescribeEventDetailsResponse

-- | Information about the events that could be retrieved.
dedrsSuccessfulSet :: Lens' DescribeEventDetailsResponse [EventDetails]

-- | Error messages for any events that could not be retrieved.
dedrsFailedSet :: Lens' DescribeEventDetailsResponse [EventDetailsErrorItem]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dedrsResponseStatus :: Lens' DescribeEventDetailsResponse Int
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetailsResponse
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetailsResponse
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetailsResponse
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetailsResponse
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetailsResponse
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Network.AWS.Types.AWSRequest Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetailsResponse
instance Data.Hashable.Class.Hashable Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Network.AWS.Data.Path.ToPath Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails
instance Network.AWS.Data.Query.ToQuery Network.AWS.AWSHealth.DescribeEventDetails.DescribeEventDetails


-- | Returns the number of events of each event type (issue, scheduled
--   change, and account notification). If no filter is specified, the
--   counts of all events in each category are returned.
--   
--   This operation returns paginated results.
module Network.AWS.AWSHealth.DescribeEventAggregates

-- | Creates a value of <a>DescribeEventAggregates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deaNextToken</a> - If the results of a search are large, only a
--   portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>deaFilter</a> - Values to narrow the results returned.</li>
--   <li><a>deaMaxResults</a> - The maximum number of items to return in
--   one batch, between 10 and 100, inclusive.</li>
--   <li><a>deaAggregateField</a> - The only currently supported value is
--   <tt>eventTypeCategory</tt> .</li>
--   </ul>
describeEventAggregates :: EventAggregateField -> DescribeEventAggregates

-- | <i>See:</i> <a>describeEventAggregates</a> smart constructor.
data DescribeEventAggregates

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
deaNextToken :: Lens' DescribeEventAggregates (Maybe Text)

-- | Values to narrow the results returned.
deaFilter :: Lens' DescribeEventAggregates (Maybe EventFilter)

-- | The maximum number of items to return in one batch, between 10 and
--   100, inclusive.
deaMaxResults :: Lens' DescribeEventAggregates (Maybe Natural)

-- | The only currently supported value is <tt>eventTypeCategory</tt> .
deaAggregateField :: Lens' DescribeEventAggregates EventAggregateField

-- | Creates a value of <a>DescribeEventAggregatesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsNextToken</a> - If the results of a search are large, only a
--   portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>drsEventAggregates</a> - The number of events in each category
--   that meet the optional filter criteria.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventAggregatesResponse :: Int -> DescribeEventAggregatesResponse

-- | <i>See:</i> <a>describeEventAggregatesResponse</a> smart constructor.
data DescribeEventAggregatesResponse

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
drsNextToken :: Lens' DescribeEventAggregatesResponse (Maybe Text)

-- | The number of events in each category that meet the optional filter
--   criteria.
drsEventAggregates :: Lens' DescribeEventAggregatesResponse [EventAggregate]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DescribeEventAggregatesResponse Int
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregatesResponse
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregatesResponse
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregatesResponse
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregatesResponse
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregatesResponse
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Network.AWS.Types.AWSRequest Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregatesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Data.Hashable.Class.Hashable Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Network.AWS.Data.Path.ToPath Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates
instance Network.AWS.Data.Query.ToQuery Network.AWS.AWSHealth.DescribeEventAggregates.DescribeEventAggregates


-- | Returns the number of entities that are affected by each of the
--   specified events. If no events are specified, the counts of all
--   affected entities are returned.
module Network.AWS.AWSHealth.DescribeEntityAggregates

-- | Creates a value of <a>DescribeEntityAggregates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deaEventARNs</a> - A list of event ARNs (unique identifiers).
--   For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt></li>
--   </ul>
describeEntityAggregates :: DescribeEntityAggregates

-- | <i>See:</i> <a>describeEntityAggregates</a> smart constructor.
data DescribeEntityAggregates

-- | A list of event ARNs (unique identifiers). For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt>
deaEventARNs :: Lens' DescribeEntityAggregates (Maybe (NonEmpty Text))

-- | Creates a value of <a>DescribeEntityAggregatesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dearsEntityAggregates</a> - The number of entities that are
--   affected by each of the specified events.</li>
--   <li><a>dearsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEntityAggregatesResponse :: Int -> DescribeEntityAggregatesResponse

-- | <i>See:</i> <a>describeEntityAggregatesResponse</a> smart constructor.
data DescribeEntityAggregatesResponse

-- | The number of entities that are affected by each of the specified
--   events.
dearsEntityAggregates :: Lens' DescribeEntityAggregatesResponse [EntityAggregate]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dearsResponseStatus :: Lens' DescribeEntityAggregatesResponse Int
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregatesResponse
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregatesResponse
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregatesResponse
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregatesResponse
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregatesResponse
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Data.Data.Data Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Network.AWS.Types.AWSRequest Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregatesResponse
instance Data.Hashable.Class.Hashable Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Network.AWS.Data.Path.ToPath Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates
instance Network.AWS.Data.Query.ToQuery Network.AWS.AWSHealth.DescribeEntityAggregates.DescribeEntityAggregates


-- | Returns a list of entities that have been affected by the specified
--   events, based on the specified filter criteria. Entities can refer to
--   individual customer resources, groups of customer resources, or any
--   other construct, depending on the AWS service. Events that have impact
--   beyond that of the affected entities, or where the extent of impact is
--   unknown, include at least one entity indicating this.
--   
--   At least one event ARN is required. Results are sorted by the
--   <tt>lastUpdatedTime</tt> of the entity, starting with the most recent.
--   
--   This operation returns paginated results.
module Network.AWS.AWSHealth.DescribeAffectedEntities

-- | Creates a value of <a>DescribeAffectedEntities</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daeLocale</a> - The locale (language) to return information in.
--   English (en) is the default and the only supported value at this
--   time.</li>
--   <li><a>daeNextToken</a> - If the results of a search are large, only a
--   portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>daeMaxResults</a> - The maximum number of items to return in
--   one batch, between 10 and 100, inclusive.</li>
--   <li><a>daeFilter</a> - Values to narrow the results returned. At least
--   one event ARN is required.</li>
--   </ul>
describeAffectedEntities :: EntityFilter -> DescribeAffectedEntities

-- | <i>See:</i> <a>describeAffectedEntities</a> smart constructor.
data DescribeAffectedEntities

-- | The locale (language) to return information in. English (en) is the
--   default and the only supported value at this time.
daeLocale :: Lens' DescribeAffectedEntities (Maybe Text)

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
daeNextToken :: Lens' DescribeAffectedEntities (Maybe Text)

-- | The maximum number of items to return in one batch, between 10 and
--   100, inclusive.
daeMaxResults :: Lens' DescribeAffectedEntities (Maybe Natural)

-- | Values to narrow the results returned. At least one event ARN is
--   required.
daeFilter :: Lens' DescribeAffectedEntities EntityFilter

-- | Creates a value of <a>DescribeAffectedEntitiesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daersEntities</a> - The entities that match the filter
--   criteria.</li>
--   <li><a>daersNextToken</a> - If the results of a search are large, only
--   a portion of the results are returned, and a <tt>nextToken</tt>
--   pagination token is returned in the response. To retrieve the next
--   batch of results, reissue the search request and include the returned
--   token. When all results have been returned, the response does not
--   contain a pagination token value.</li>
--   <li><a>daersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAffectedEntitiesResponse :: Int -> DescribeAffectedEntitiesResponse

-- | <i>See:</i> <a>describeAffectedEntitiesResponse</a> smart constructor.
data DescribeAffectedEntitiesResponse

-- | The entities that match the filter criteria.
daersEntities :: Lens' DescribeAffectedEntitiesResponse [AffectedEntity]

-- | If the results of a search are large, only a portion of the results
--   are returned, and a <tt>nextToken</tt> pagination token is returned in
--   the response. To retrieve the next batch of results, reissue the
--   search request and include the returned token. When all results have
--   been returned, the response does not contain a pagination token value.
daersNextToken :: Lens' DescribeAffectedEntitiesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
daersResponseStatus :: Lens' DescribeAffectedEntitiesResponse Int
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntitiesResponse
instance Data.Data.Data Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntitiesResponse
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntitiesResponse
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntitiesResponse
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntitiesResponse
instance GHC.Generics.Generic Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Data.Data.Data Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance GHC.Show.Show Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance GHC.Read.Read Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance GHC.Classes.Eq Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Network.AWS.Types.AWSRequest Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntitiesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Data.Hashable.Class.Hashable Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Control.DeepSeq.NFData Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Network.AWS.Data.Path.ToPath Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities
instance Network.AWS.Data.Query.ToQuery Network.AWS.AWSHealth.DescribeAffectedEntities.DescribeAffectedEntities


module Network.AWS.AWSHealth.Waiters


-- | <b>AWS Health</b>
--   
--   The AWS Health API provides programmatic access to the AWS Health
--   information that is presented in the <a>AWS Personal Health
--   Dashboard</a> . You can get information about events that affect your
--   AWS resources:
--   
--   <ul>
--   <li><a>DescribeEvents</a> : Summary information about events.</li>
--   <li><a>DescribeEventDetails</a> : Detailed information about one or
--   more events.</li>
--   <li><a>DescribeAffectedEntities</a> : Information about AWS resources
--   that are affected by one or more events.</li>
--   </ul>
--   
--   In addition, these operations provide information about event types
--   and summary counts of events or affected entities:
--   
--   <ul>
--   <li><a>DescribeEventTypes</a> : Information about the kinds of events
--   that AWS Health tracks.</li>
--   <li><a>DescribeEventAggregates</a> : A count of the number of events
--   that meet specified criteria.</li>
--   <li><a>DescribeEntityAggregates</a> : A count of the number of
--   affected entities that meet specified criteria.</li>
--   </ul>
--   
--   The Health API requires a Business or Enterprise support plan from
--   <a>AWS Support</a> . Calling the Health API from an account that does
--   not have a Business or Enterprise support plan causes a
--   <tt>SubscriptionRequiredException</tt> .
--   
--   For authentication of requests, AWS Health uses the <a>Signature
--   Version 4 Signing Process</a> .
--   
--   See the <a>AWS Health User Guide</a> for information about how to use
--   the API.
--   
--   <b>Service Endpoint</b>
--   
--   The HTTP endpoint for the AWS Health API is:
--   
--   <ul>
--   <li><a>https://health.us-east-1.amazonaws.com</a></li>
--   </ul>
module Network.AWS.AWSHealth

-- | API version <tt>2016-08-04</tt> of the Amazon Health APIs and
--   Notifications SDK configuration.
awsHealth :: Service

-- | The specified pagination token (<tt>nextToken</tt> ) is not valid.
_InvalidPaginationToken :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified locale is not supported.
_UnsupportedLocale :: AsError a => Getting (First ServiceError) a ServiceError
data EntityStatusCode
Impaired :: EntityStatusCode
Unimpaired :: EntityStatusCode
Unknown :: EntityStatusCode
data EventAggregateField
EventTypeCategory :: EventAggregateField
data EventStatusCode
Closed :: EventStatusCode
Open :: EventStatusCode
Upcoming :: EventStatusCode
data EventTypeCategory
AccountNotification :: EventTypeCategory
Issue :: EventTypeCategory
ScheduledChange :: EventTypeCategory

-- | Information about an entity that is affected by a Health event.
--   
--   <i>See:</i> <a>affectedEntity</a> smart constructor.
data AffectedEntity

-- | Creates a value of <a>AffectedEntity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aeLastUpdatedTime</a> - The most recent time that the entity
--   was updated.</li>
--   <li><a>aeEntityValue</a> - The ID of the affected entity.</li>
--   <li><a>aeAwsAccountId</a> - The 12-digit AWS account number that
--   contains the affected entity.</li>
--   <li><a>aeEventARN</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   <li><a>aeEntityARN</a> - The unique identifier for the entity. Format:
--   <tt>arn:aws:health:<i>entity-region</i> :<i>aws-account</i>
--   :entity/<i>entity-id</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1:111222333444:entity/AVh5GGT7ul1arKr1sE1K</tt></li>
--   <li><a>aeTags</a> - A map of entity tags attached to the affected
--   entity.</li>
--   <li><a>aeStatusCode</a> - The most recent status of the entity
--   affected by the event. The possible values are <tt>IMPAIRED</tt> ,
--   <tt>UNIMPAIRED</tt> , and <tt>UNKNOWN</tt> .</li>
--   </ul>
affectedEntity :: AffectedEntity

-- | The most recent time that the entity was updated.
aeLastUpdatedTime :: Lens' AffectedEntity (Maybe UTCTime)

-- | The ID of the affected entity.
aeEntityValue :: Lens' AffectedEntity (Maybe Text)

-- | The 12-digit AWS account number that contains the affected entity.
aeAwsAccountId :: Lens' AffectedEntity (Maybe Text)

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
aeEventARN :: Lens' AffectedEntity (Maybe Text)

-- | The unique identifier for the entity. Format:
--   <tt>arn:aws:health:<i>entity-region</i> :<i>aws-account</i>
--   :entity/<i>entity-id</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1:111222333444:entity/AVh5GGT7ul1arKr1sE1K</tt>
aeEntityARN :: Lens' AffectedEntity (Maybe Text)

-- | A map of entity tags attached to the affected entity.
aeTags :: Lens' AffectedEntity (HashMap Text Text)

-- | The most recent status of the entity affected by the event. The
--   possible values are <tt>IMPAIRED</tt> , <tt>UNIMPAIRED</tt> , and
--   <tt>UNKNOWN</tt> .
aeStatusCode :: Lens' AffectedEntity (Maybe EntityStatusCode)

-- | A range of dates and times that is used by the <a>EventFilter</a> and
--   <a>EntityFilter</a> objects. If <tt>from</tt> is set and <tt>to</tt>
--   is set: match items where the timestamp (<tt>startTime</tt> ,
--   <tt>endTime</tt> , or <tt>lastUpdatedTime</tt> ) is between
--   <tt>from</tt> and <tt>to</tt> inclusive. If <tt>from</tt> is set and
--   <tt>to</tt> is not set: match items where the timestamp value is equal
--   to or after <tt>from</tt> . If <tt>from</tt> is not set and
--   <tt>to</tt> is set: match items where the timestamp value is equal to
--   or before <tt>to</tt> .
--   
--   <i>See:</i> <a>dateTimeRange</a> smart constructor.
data DateTimeRange

-- | Creates a value of <a>DateTimeRange</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtrTo</a> - The ending date and time of a time range.</li>
--   <li><a>dtrFrom</a> - The starting date and time of a time range.</li>
--   </ul>
dateTimeRange :: DateTimeRange

-- | The ending date and time of a time range.
dtrTo :: Lens' DateTimeRange (Maybe UTCTime)

-- | The starting date and time of a time range.
dtrFrom :: Lens' DateTimeRange (Maybe UTCTime)

-- | The number of entities that are affected by one or more events.
--   Returned by the <tt>DescribeEntityAggregates</tt> operation.
--   
--   <i>See:</i> <a>entityAggregate</a> smart constructor.
data EntityAggregate

-- | Creates a value of <a>EntityAggregate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eCount</a> - The number entities that match the criteria for
--   the specified events.</li>
--   <li><a>eEventARN</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   </ul>
entityAggregate :: EntityAggregate

-- | The number entities that match the criteria for the specified events.
eCount :: Lens' EntityAggregate (Maybe Int)

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
eEventARN :: Lens' EntityAggregate (Maybe Text)

-- | The values to use to filter results from the
--   <tt>DescribeAffectedEntities</tt> operation.
--   
--   <i>See:</i> <a>entityFilter</a> smart constructor.
data EntityFilter

-- | Creates a value of <a>EntityFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eStatusCodes</a> - A list of entity status codes
--   (<tt>IMPAIRED</tt> , <tt>UNIMPAIRED</tt> , or <tt>UNKNOWN</tt> ).</li>
--   <li><a>eEntityARNs</a> - A list of entity ARNs (unique
--   identifiers).</li>
--   <li><a>eEntityValues</a> - A list of IDs for affected entities.</li>
--   <li><a>eTags</a> - A map of entity tags attached to the affected
--   entity.</li>
--   <li><a>eLastUpdatedTimes</a> - A list of the most recent dates and
--   times that the entity was updated.</li>
--   <li><a>eEventARNs</a> - A list of event ARNs (unique identifiers). For
--   example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt></li>
--   </ul>
entityFilter :: NonEmpty Text -> EntityFilter

-- | A list of entity status codes (<tt>IMPAIRED</tt> , <tt>UNIMPAIRED</tt>
--   , or <tt>UNKNOWN</tt> ).
eStatusCodes :: Lens' EntityFilter (Maybe (NonEmpty EntityStatusCode))

-- | A list of entity ARNs (unique identifiers).
eEntityARNs :: Lens' EntityFilter (Maybe (NonEmpty Text))

-- | A list of IDs for affected entities.
eEntityValues :: Lens' EntityFilter (Maybe (NonEmpty Text))

-- | A map of entity tags attached to the affected entity.
eTags :: Lens' EntityFilter [HashMap Text Text]

-- | A list of the most recent dates and times that the entity was updated.
eLastUpdatedTimes :: Lens' EntityFilter (Maybe (NonEmpty DateTimeRange))

-- | A list of event ARNs (unique identifiers). For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt>
eEventARNs :: Lens' EntityFilter (NonEmpty Text)

-- | Summary information about an event, returned by the
--   <tt>DescribeEvents</tt> operation. The <tt>DescribeEventDetails</tt>
--   operation also returns this information, as well as the
--   <a>EventDescription</a> and additional event metadata.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eLastUpdatedTime</a> - The most recent date and time that the
--   event was updated.</li>
--   <li><a>eArn</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   <li><a>eService</a> - The AWS service that is affected by the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   <li><a>eStartTime</a> - The date and time that the event began.</li>
--   <li><a>eEventTypeCode</a> - The unique identifier for the event type.
--   The format is <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for
--   example, <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .</li>
--   <li><a>eEventTypeCategory</a> - The</li>
--   <li><a>eAvailabilityZone</a> - The AWS Availability Zone of the event.
--   For example, us-east-1a.</li>
--   <li><a>eEndTime</a> - The date and time that the event ended.</li>
--   <li><a>eRegion</a> - The AWS region name of the event.</li>
--   <li><a>eStatusCode</a> - The most recent status of the event. Possible
--   values are <tt>open</tt> , <tt>closed</tt> , and <tt>upcoming</tt>
--   .</li>
--   </ul>
event :: Event

-- | The most recent date and time that the event was updated.
eLastUpdatedTime :: Lens' Event (Maybe UTCTime)

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
eArn :: Lens' Event (Maybe Text)

-- | The AWS service that is affected by the event. For example,
--   <tt>EC2</tt> , <tt>RDS</tt> .
eService :: Lens' Event (Maybe Text)

-- | The date and time that the event began.
eStartTime :: Lens' Event (Maybe UTCTime)

-- | The unique identifier for the event type. The format is
--   <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .
eEventTypeCode :: Lens' Event (Maybe Text)

-- | The
eEventTypeCategory :: Lens' Event (Maybe EventTypeCategory)

-- | The AWS Availability Zone of the event. For example, us-east-1a.
eAvailabilityZone :: Lens' Event (Maybe Text)

-- | The date and time that the event ended.
eEndTime :: Lens' Event (Maybe UTCTime)

-- | The AWS region name of the event.
eRegion :: Lens' Event (Maybe Text)

-- | The most recent status of the event. Possible values are <tt>open</tt>
--   , <tt>closed</tt> , and <tt>upcoming</tt> .
eStatusCode :: Lens' Event (Maybe EventStatusCode)

-- | The number of events of each issue type. Returned by the
--   <tt>DescribeEventAggregates</tt> operation.
--   
--   <i>See:</i> <a>eventAggregate</a> smart constructor.
data EventAggregate

-- | Creates a value of <a>EventAggregate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eaCount</a> - The number of events of the associated issue
--   type.</li>
--   <li><a>eaAggregateValue</a> - The issue type for the associated
--   count.</li>
--   </ul>
eventAggregate :: EventAggregate

-- | The number of events of the associated issue type.
eaCount :: Lens' EventAggregate (Maybe Int)

-- | The issue type for the associated count.
eaAggregateValue :: Lens' EventAggregate (Maybe Text)

-- | The detailed description of the event. Included in the information
--   returned by the <tt>DescribeEventDetails</tt> operation.
--   
--   <i>See:</i> <a>eventDescription</a> smart constructor.
data EventDescription

-- | Creates a value of <a>EventDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edLatestDescription</a> - The most recent description of the
--   event.</li>
--   </ul>
eventDescription :: EventDescription

-- | The most recent description of the event.
edLatestDescription :: Lens' EventDescription (Maybe Text)

-- | Detailed information about an event. A combination of an <a>Event</a>
--   object, an <a>EventDescription</a> object, and additional metadata
--   about the event. Returned by the <tt>DescribeEventDetails</tt>
--   operation.
--   
--   <i>See:</i> <a>eventDetails</a> smart constructor.
data EventDetails

-- | Creates a value of <a>EventDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edEvent</a> - Summary information about the event.</li>
--   <li><a>edEventDescription</a> - The most recent description of the
--   event.</li>
--   <li><a>edEventMetadata</a> - Additional metadata about the event.</li>
--   </ul>
eventDetails :: EventDetails

-- | Summary information about the event.
edEvent :: Lens' EventDetails (Maybe Event)

-- | The most recent description of the event.
edEventDescription :: Lens' EventDetails (Maybe EventDescription)

-- | Additional metadata about the event.
edEventMetadata :: Lens' EventDetails (HashMap Text Text)

-- | Error information returned when a <tt>DescribeEventDetails</tt>
--   operation cannot find a specified event.
--   
--   <i>See:</i> <a>eventDetailsErrorItem</a> smart constructor.
data EventDetailsErrorItem

-- | Creates a value of <a>EventDetailsErrorItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edeiEventARN</a> - The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt></li>
--   <li><a>edeiErrorName</a> - The name of the error.</li>
--   <li><a>edeiErrorMessage</a> - A message that describes the error.</li>
--   </ul>
eventDetailsErrorItem :: EventDetailsErrorItem

-- | The unique identifier for the event. Format:
--   <tt>arn:aws:health:<i>event-region</i>
--   ::event/<i>EVENT_TYPE_PLUS_ID</i> </tt> . Example:
--   <tt>arn:aws:health:us-east-1::event/AWS_EC2_MAINTENANCE_5331</tt>
edeiEventARN :: Lens' EventDetailsErrorItem (Maybe Text)

-- | The name of the error.
edeiErrorName :: Lens' EventDetailsErrorItem (Maybe Text)

-- | A message that describes the error.
edeiErrorMessage :: Lens' EventDetailsErrorItem (Maybe Text)

-- | The values to use to filter results from the <tt>DescribeEvents</tt>
--   and <tt>DescribeEventAggregates</tt> operations.
--   
--   <i>See:</i> <a>eventFilter</a> smart constructor.
data EventFilter

-- | Creates a value of <a>EventFilter</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>efEventARNs</a> - A list of event ARNs (unique identifiers).
--   For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt></li>
--   <li><a>efEventTypeCategories</a> - A list of event type category codes
--   (<tt>issue</tt> , <tt>scheduledChange</tt> , or
--   <tt>accountNotification</tt> ).</li>
--   <li><a>efEventTypeCodes</a> - A list of unique identifiers for event
--   types. For example,
--   <tt><a>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</a>,<a>AWS_RDS_MAINTENANCE_SCHEDULED</a></tt></li>
--   <li><a>efRegions</a> - A list of AWS regions.</li>
--   <li><a>efEventStatusCodes</a> - A list of event status codes.</li>
--   <li><a>efEndTimes</a> - A list of dates and times that the event
--   ended.</li>
--   <li><a>efAvailabilityZones</a> - A list of AWS availability
--   zones.</li>
--   <li><a>efEntityARNs</a> - A list of entity ARNs (unique
--   identifiers).</li>
--   <li><a>efEntityValues</a> - A list of entity identifiers, such as EC2
--   instance IDs (<tt>i-34ab692e</tt> ) or EBS volumes
--   (<tt>vol-426ab23e</tt> ).</li>
--   <li><a>efStartTimes</a> - A list of dates and times that the event
--   began.</li>
--   <li><a>efServices</a> - The AWS services associated with the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   <li><a>efTags</a> - A map of entity tags attached to the affected
--   entity.</li>
--   <li><a>efLastUpdatedTimes</a> - A list of dates and times that the
--   event was last updated.</li>
--   </ul>
eventFilter :: EventFilter

-- | A list of event ARNs (unique identifiers). For example:
--   <tt>"arn:aws:health:us-east-1::event<i>AWS_EC2_MAINTENANCE_5331",
--   "arn:aws:health:us-west-1::event</i>AWS_EBS_LOST_VOLUME_xyz"</tt>
efEventARNs :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of event type category codes (<tt>issue</tt> ,
--   <tt>scheduledChange</tt> , or <tt>accountNotification</tt> ).
efEventTypeCategories :: Lens' EventFilter (Maybe (NonEmpty EventTypeCategory))

-- | A list of unique identifiers for event types. For example,
--   <tt><a>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</a>,<a>AWS_RDS_MAINTENANCE_SCHEDULED</a></tt>
efEventTypeCodes :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of AWS regions.
efRegions :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of event status codes.
efEventStatusCodes :: Lens' EventFilter (Maybe (NonEmpty EventStatusCode))

-- | A list of dates and times that the event ended.
efEndTimes :: Lens' EventFilter (Maybe (NonEmpty DateTimeRange))

-- | A list of AWS availability zones.
efAvailabilityZones :: Lens' EventFilter [Text]

-- | A list of entity ARNs (unique identifiers).
efEntityARNs :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of entity identifiers, such as EC2 instance IDs
--   (<tt>i-34ab692e</tt> ) or EBS volumes (<tt>vol-426ab23e</tt> ).
efEntityValues :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A list of dates and times that the event began.
efStartTimes :: Lens' EventFilter (Maybe (NonEmpty DateTimeRange))

-- | The AWS services associated with the event. For example, <tt>EC2</tt>
--   , <tt>RDS</tt> .
efServices :: Lens' EventFilter (Maybe (NonEmpty Text))

-- | A map of entity tags attached to the affected entity.
efTags :: Lens' EventFilter [HashMap Text Text]

-- | A list of dates and times that the event was last updated.
efLastUpdatedTimes :: Lens' EventFilter (Maybe (NonEmpty DateTimeRange))

-- | Metadata about a type of event that is reported by AWS Health. Data
--   consists of the category (for example, <tt>issue</tt> ), the service
--   (for example, <tt>EC2</tt> ), and the event type code (for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> ).
--   
--   <i>See:</i> <a>eventType</a> smart constructor.
data EventType

-- | Creates a value of <a>EventType</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etService</a> - The AWS service that is affected by the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   <li><a>etCategory</a> - A list of event type category codes
--   (<tt>issue</tt> , <tt>scheduledChange</tt> , or
--   <tt>accountNotification</tt> ).</li>
--   <li><a>etCode</a> - The unique identifier for the event type. The
--   format is <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for
--   example, <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .</li>
--   </ul>
eventType :: EventType

-- | The AWS service that is affected by the event. For example,
--   <tt>EC2</tt> , <tt>RDS</tt> .
etService :: Lens' EventType (Maybe Text)

-- | A list of event type category codes (<tt>issue</tt> ,
--   <tt>scheduledChange</tt> , or <tt>accountNotification</tt> ).
etCategory :: Lens' EventType (Maybe EventTypeCategory)

-- | The unique identifier for the event type. The format is
--   <tt>AWS_<i>SERVICE</i> _<i>DESCRIPTION</i> </tt> ; for example,
--   <tt>AWS_EC2_SYSTEM_MAINTENANCE_EVENT</tt> .
etCode :: Lens' EventType (Maybe Text)

-- | The values to use to filter results from the
--   <tt>DescribeEventTypes</tt> operation.
--   
--   <i>See:</i> <a>eventTypeFilter</a> smart constructor.
data EventTypeFilter

-- | Creates a value of <a>EventTypeFilter</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etfEventTypeCategories</a> - A list of event type category
--   codes (<tt>issue</tt> , <tt>scheduledChange</tt> , or
--   <tt>accountNotification</tt> ).</li>
--   <li><a>etfEventTypeCodes</a> - A list of event type codes.</li>
--   <li><a>etfServices</a> - The AWS services associated with the event.
--   For example, <tt>EC2</tt> , <tt>RDS</tt> .</li>
--   </ul>
eventTypeFilter :: EventTypeFilter

-- | A list of event type category codes (<tt>issue</tt> ,
--   <tt>scheduledChange</tt> , or <tt>accountNotification</tt> ).
etfEventTypeCategories :: Lens' EventTypeFilter (Maybe (NonEmpty EventTypeCategory))

-- | A list of event type codes.
etfEventTypeCodes :: Lens' EventTypeFilter (Maybe (NonEmpty Text))

-- | The AWS services associated with the event. For example, <tt>EC2</tt>
--   , <tt>RDS</tt> .
etfServices :: Lens' EventTypeFilter (Maybe (NonEmpty Text))
