@SdkInternalApi
    final UpdateProjectDataDeliveryResult executeUpdateProjectDataDelivery(UpdateProjectDataDeliveryRequest updateProjectDataDeliveryRequest) {

        ExecutionContext executionContext = createExecutionContext(updateProjectDataDeliveryRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<UpdateProjectDataDeliveryRequest> request = null;
        Response<UpdateProjectDataDeliveryResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new UpdateProjectDataDeliveryRequestProtocolMarshaller(protocolFactory).marshall(super
                        .beforeMarshalling(updateProjectDataDeliveryRequest));
                // 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, "Evidently");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateProjectDataDelivery");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

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

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

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Updates the data storage options for this project. If you store evaluation events, you an keep them and analyze
them on your own. If you choose not to store evaluation events, Evidently deletes them after using them to
produce metrics and other experiment results that you can view.
</p>
<p>
You can't specify both <code>cloudWatchLogs</code> and <code>s3Destination</code> in the same operation.
</p>

@param updateProjectDataDeliveryRequest
@return Result of the UpdateProjectDataDelivery operation returned by the service.
@throws ValidationException
        The value of a parameter in the request caused an error.
@throws ConflictException
        A resource was in an inconsistent state during an update or a deletion.
@throws ServiceQuotaExceededException
        The request would cause a service quota to be exceeded.
@throws ResourceNotFoundException
        The request references a resource that does not exist.
@throws AccessDeniedException
        You do not have sufficient permissions to perform this action.
@sample AmazonCloudWatchEvidently.UpdateProjectDataDelivery
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/evidently-2021-02-01/UpdateProjectDataDelivery"
     target="_top">AWS API Documentation</a>
aws-java-sdk-cloudwatchevidently/src/main/java/com/amazonaws/services/cloudwatchevidently/AmazonCloudWatchEvidentlyClient.java