@SdkInternalApi
    final DeleteContactResult executeDeleteContact(DeleteContactRequest deleteContactRequest) {

        ExecutionContext executionContext = createExecutionContext(deleteContactRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<DeleteContactRequest> request = null;
        Response<DeleteContactResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new DeleteContactRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteContactRequest));
                // 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, "SSM Contacts");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteContact");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

            HttpResponseHandler<AmazonWebServiceResponse<DeleteContactResult>> responseHandler = protocolFactory.createResponseHandler(
                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteContactResultJsonUnmarshaller());
            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
To remove a contact from Incident Manager, you can delete the contact. Deleting a contact removes them from all
escalation plans and related response plans. Deleting an escalation plan removes it from all related response
plans. You will have to recreate the contact and its contact channels before you can use it again.
</p>

@param deleteContactRequest
@return Result of the DeleteContact operation returned by the service.
@throws AccessDeniedException
        You don't have sufficient access to perform this operation.
@throws InternalServerException
        Unexpected error occurred while processing the request.
@throws ResourceNotFoundException
        Request references a resource that doesn't exist.
@throws ThrottlingException
        The request was denied due to request throttling.
@throws ConflictException
        Updating or deleting a resource causes an inconsistent state.
@throws ValidationException
        The input fails to satisfy the constraints specified by an Amazon Web Services service.
@sample AWSSSMContacts.DeleteContact
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/ssm-contacts-2021-05-03/DeleteContact" target="_top">AWS API
     Documentation</a>
aws-java-sdk-ssmcontacts/src/main/java/com/amazonaws/services/ssmcontacts/AWSSSMContactsClient.java