@SdkInternalApi
    final SendDiagnosticInterruptResult executeSendDiagnosticInterrupt(SendDiagnosticInterruptRequest sendDiagnosticInterruptRequest) {

        ExecutionContext executionContext = createExecutionContext(sendDiagnosticInterruptRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<SendDiagnosticInterruptRequest> request = null;
        Response<SendDiagnosticInterruptResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new SendDiagnosticInterruptRequestMarshaller().marshall(super.beforeMarshalling(sendDiagnosticInterruptRequest));
                // 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, "SendDiagnosticInterrupt");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

            StaxResponseHandler<SendDiagnosticInterruptResult> responseHandler = new StaxResponseHandler<SendDiagnosticInterruptResult>(
                    new SendDiagnosticInterruptResultStaxUnmarshaller());

            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Sends a diagnostic interrupt to the specified Amazon EC2 instance to trigger a <i>kernel panic</i> (on Linux
instances), or a <i>blue screen</i>/<i>stop error</i> (on Windows instances). For instances based on Intel and
AMD processors, the interrupt is received as a <i>non-maskable interrupt</i> (NMI).
</p>
<p>
In general, the operating system crashes and reboots when a kernel panic or stop error is triggered. The
operating system can also be configured to perform diagnostic tasks, such as generating a memory dump file,
loading a secondary kernel, or obtaining a call trace.
</p>
<p>
Before sending a diagnostic interrupt to your instance, ensure that its operating system is configured to perform
the required diagnostic tasks.
</p>
<p>
For more information about configuring your operating system to generate a crash dump when a kernel panic or stop
error occurs, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/diagnostic-interrupt.html">Send a
diagnostic interrupt (for advanced users)</a> in the <i>Amazon EC2 User Guide</i>.
</p>

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