The following Java code examples demonstrate how to initialize an AWS Health client and retrieve information about events and entities.
Step 1: Initialize credentials
Valid credentials are required to communicate with the AWS Health API. You can use the key pair of any IAM user associated with the AWS account.
Create and initialize an AWSCredentials instance:
AWSCredentials credentials = null;
try {
credentials = new ProfileCredentialsProvider("default").getCredentials();
} catch (Exception e) {
throw new AmazonClientException(
"Cannot load the credentials from the credential profiles file. "
+ "Please make sure that your credentials file is at the correct "
+ "location (/home/username/.aws/credentials), and is in valid format.", e);
}
Step 2: Initialize an AWS Health API client
Use the initialized credentials object from the previous step to create an AWS Health client:
import com.amazonaws.services.health.AWSHealthClient;
AWSHealth awsHealthClient = new AWSHealthClient(credentials);
Step 3: Use AWS Health API operations to get event
information
DescribeEvents
import com.amazonaws.services.health.model.DescribeEventsRequest;
import com.amazonaws.services.health.model.DescribeEventsResult;
import com.amazonaws.services.health.model.Event;
import com.amazonaws.services.health.model.EventFilter;
DescribeEventsRequest request = new DescribeEventsRequest();
EventFilter filter = new EventFilter();
// Filter on any field from the supported AWS Health EventFilter model.
// Here is an example for Region us-east-1 events from the EC2 service.
filter.setServices(singletonList("EC2"));
filter.setRegions(singletonList("us-east-1"));
request.setFilter(filter);
DescribeEventsResult response = awsHealthClient.describeEvents(request);
List<Event> resultEvents = response.getEvents();
Event currentEvent = null;
for (Event event : resultEvents) {
// Display result event data; here is a subset.
System.out.println(event.getArn());
System.out.println(event.getService());
System.out.println(event.getRegion());
System.out.println(event.getAvailabilityZone());
System.out.println(event.getStartTime());
System.out.println(event.getEndTime());
}
DescribeEventAggregates
import com.amazonaws.services.health.model.DescribeEventAggregatesRequest;
import com.amazonaws.services.health.model.DescribeEventAggregatesResult;
import com.amazonaws.services.health.model.EventAggregate;
import com.amazonaws.services.health.model.EventFilter;
DescribeEventAggregatesRequest request = new DescribeEventAggregatesRequest();
// set the aggregation field
request.setAggregateField("eventTypeCategory");
// filter more on result if needed
EventFilter filter = new EventFilter();
filter.setRegions(singleton("us-east-1"));
request.setFilter(filter);
DescribeEventAggregatesResult response = awsHealthClient.describeEventAggregates(request);
// print event count for each eventTypeCategory
for (EventAggregate aggregate: response.getEventAggregates()) {
System.out.println("Event Category:" + aggregate.getAggregateValue());
System.out.println("Event Count:" + aggregate.getCount());
}
DescribeEventDetails
import com.amazonaws.services.health.model.DescribeEventDetailsRequest;
import com.amazonaws.services.health.model.DescribeEventDetailsResult;
import com.amazonaws.services.health.model.Event;
import com.amazonaws.services.health.model.EventDetails;
DescribeEventDetailsRequest describeEventDetailsRequest = new DescribeEventDetailsRequest();
// set event ARN and local value
describeEventDetailsRequest.setEventArns(singletonList("arn:aws:health:us-east-1::event/service
/eventTypeCode
/eventId
"));
describeEventDetailsRequest.setLocale("en-US");
filter.setEventArns
DescribeEventDetailsResult describeEventDetailsResult = awsHealthClient.describeEventDetails(request);
EventDetails eventDetail = describeEventDetailsResult.getSuccessfulSet().get(0);
// check event-related fields
Event event = eventDetail.getEvent();
System.out.println(event.getService());
System.out.println(event.getRegion());
System.out.println(event.getAvailabilityZone());
System.out.println(event.getStartTime());
System.out.println(event.getEndTime());
// print out event description
System.out.println(eventDetail.getEventDescription().getLatestDescription());
DescribeAffectedEntities
import com.amazonaws.services.health.model.AffectedEntity;
import com.amazonaws.services.health.model.DateTimeRange;
import com.amazonaws.services.health.model.DescribeAffectedEntitiesRequest;
import com.amdescribeEventDetailsRequestazonaws.services.health.model.DescribeAffectedEntitiesResult;
DescribeAffectedEntitiesRequest request = new DescribeAffectedEntitiesRequest();
EntityFilter filter = new EntityFilter();
filter.setEventArns(singletonList("arn:aws:health:us-east-1::event/service
/eventTypeCode
/eventId
"));
DescribeAffectedEntitiesResult response = awsHealthClient.describeAffectedEntities(request);
for (AffectedEntity affectedEntity: response.getEntities()) {
System.out.println(affectedEntity.getEntityValue());
System.out.println(affectedEntity.getAwsAccountId());
System.out.println(affectedEntity.getEntityArn());
}
DescribeEntityAggregates
import com.amazonaws.services.health.model.DescribeEntityAggregatesRequest;
import com.amazonaws.services.health.model.DescribeEntityAggregatesResult;
import com.amazonaws.services.health.model.EntityAggregate;
DescribeEntityAggregatesRequest request = new DescribeEntityAggregatesRequest();
request.setEventArns(singletonList("arn:aws:health:us-east-1::event/service
/eventTypeCode
/eventId
"));
DescribeEntityAggregatesResult response = awsHealthClient.describeEntityAggregates(request);
for (EntityAggregate entityAggregate : response.getEntityAggregates()) {
System.out.println(entityAggregate.getEventArn());
System.out.println(entityAggregate.getCount());
}