private DeleteAppResponse deleteResource()

in aws-sagemaker-app/src/main/java/software/amazon/sagemaker/app/DeleteHandler.java [58:93]


    private DeleteAppResponse deleteResource(
            final DescribeAppRequest describeRequest,
            final DeleteAppRequest deleteRequest,
            final ProxyClient<SageMakerClient> proxyClient) {
        AppStatus appStatus = null;
        try {
            appStatus = proxyClient.injectCredentialsAndInvokeV2(describeRequest, proxyClient.client()::describeApp).status();
        } catch (final AwsServiceException e) {
            Translator.throwCfnException(Action.READ.toString(), ResourceModel.TYPE_NAME,
                    deleteRequest.appName(), e);
        }

        // Deleted Apps stay present for 24 hours with a Deleted status.
        // Deleted resources are expected to throw CfnNotFoundException.
        if (appStatus.equals(AppStatus.DELETED) || appStatus.equals(AppStatus.FAILED)) {
            throw new CfnNotFoundException(ResourceModel.TYPE_NAME, deleteRequest.appName());
        }

        DeleteAppResponse response = null;
        try {
            response = proxyClient.injectCredentialsAndInvokeV2(deleteRequest, proxyClient.client()::deleteApp);
        } catch (final ResourceInUseException riue) {
            // ResourceInUseException is handled differently for deletes
            final String primaryIdentifier = String.format("%s|%s|%s|%s",
                    deleteRequest.appName(),
                    deleteRequest.appType(),
                    deleteRequest.domainId(),
                    deleteRequest.userProfileName());
            throw new CfnResourceConflictException(ResourceModel.TYPE_NAME, primaryIdentifier, riue.getMessage(), riue);
        } catch (final AwsServiceException e) {
            Translator.throwCfnException(Action.DELETE.toString(), ResourceModel.TYPE_NAME,
                    deleteRequest.appName(), e);
        }

        return response;
    }