@SdkInternalApi
    final DescribeInstanceEventWindowsResult executeDescribeInstanceEventWindows(DescribeInstanceEventWindowsRequest describeInstanceEventWindowsRequest) {

        ExecutionContext executionContext = createExecutionContext(describeInstanceEventWindowsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<DescribeInstanceEventWindowsRequest> request = null;
        Response<DescribeInstanceEventWindowsResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new DescribeInstanceEventWindowsRequestMarshaller().marshall(super.beforeMarshalling(describeInstanceEventWindowsRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
                request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EC2");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeInstanceEventWindows");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

            } finally {
                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
            }

            StaxResponseHandler<DescribeInstanceEventWindowsResult> responseHandler = new StaxResponseHandler<DescribeInstanceEventWindowsResult>(
                    new DescribeInstanceEventWindowsResultStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Describes the specified event windows or all event windows.
</p>
<p>
If you specify event window IDs, the output includes information for only the specified event windows. If you
specify filters, the output includes information for only those event windows that meet the filter criteria. If
you do not specify event windows IDs or filters, the output includes information for all event windows, which can
affect performance. We recommend that you use pagination to ensure that the operation returns quickly and
successfully.
</p>
<p>
For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html">Define
event windows for scheduled events</a> in the <i>Amazon EC2 User Guide</i>.
</p>

@param describeInstanceEventWindowsRequest
       Describe instance event windows by InstanceEventWindow.
@return Result of the DescribeInstanceEventWindows operation returned by the service.
@sample AmazonEC2.DescribeInstanceEventWindows
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceEventWindows"
     target="_top">AWS API Documentation</a>
aws-java-sdk-ec2/src/main/java/com/amazonaws/services/ec2/AmazonEC2Client.java