/* * Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.workdocs; import org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.services.workdocs.AmazonWorkDocsClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.workdocs.model.*; import com.amazonaws.services.workdocs.model.transform.*; /** * Client for accessing Amazon WorkDocs. All service calls made using this client are blocking, and will not return * until the service call completes. * <p> * <p> * The WorkDocs API is designed for the following use cases: * </p> * <ul> * <li> * <p> * File Migration: File migration applications are supported for users who want to migrate their files from an * on-premise or off-premise file system or service. Users can insert files into a user directory structure, as well as * allow for basic metadata changes, such as modifications to the permissions of files. * </p> * </li> * <li> * <p> * Security: Support security applications are supported for users who have additional security needs, such as * anti-virus or data loss prevention. The APIs, in conjunction with Amazon CloudTrail, allow these applications to * detect when changes occur in Amazon WorkDocs, so the application can take the necessary actions and replace the * target file. The application can also choose to email the user if the target file violates the policy. * </p> * </li> * <li> * <p> * eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These * applications can choose to mimic and/or record the actions in an Amazon WorkDocs site, in conjunction with Amazon * CloudTrails, to replicate data for eDiscovery, backup, or analytical applications. * </p> * </li> * </ul> * <p> * All Amazon WorkDocs APIs are Amazon authenticated, certificate-signed APIs. They not only require the use of the AWS * SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission * policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full * administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is * not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to * perform the three use cases above, as well as give users the ability to grant access on a selective basis using the * IAM model. * </p> */ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonWorkDocsClient extends AmazonWebServiceClient implements AmazonWorkDocs { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonWorkDocs.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "workdocs"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("FailedDependencyException").withModeledClass( com.amazonaws.services.workdocs.model.FailedDependencyException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ConcurrentModificationException").withModeledClass( com.amazonaws.services.workdocs.model.ConcurrentModificationException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidOperationException").withModeledClass( com.amazonaws.services.workdocs.model.InvalidOperationException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("UnauthorizedResourceAccessException").withModeledClass( com.amazonaws.services.workdocs.model.UnauthorizedResourceAccessException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("TooManySubscriptionsException").withModeledClass( com.amazonaws.services.workdocs.model.TooManySubscriptionsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("EntityAlreadyExistsException").withModeledClass( com.amazonaws.services.workdocs.model.EntityAlreadyExistsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("EntityNotExistsException").withModeledClass( com.amazonaws.services.workdocs.model.EntityNotExistsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("StorageLimitExceededException").withModeledClass( com.amazonaws.services.workdocs.model.StorageLimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("StorageLimitWillExceedException").withModeledClass( com.amazonaws.services.workdocs.model.StorageLimitWillExceedException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ProhibitedStateException").withModeledClass( com.amazonaws.services.workdocs.model.ProhibitedStateException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withModeledClass( com.amazonaws.services.workdocs.model.LimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("IllegalUserStateException").withModeledClass( com.amazonaws.services.workdocs.model.IllegalUserStateException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidArgumentException").withModeledClass( com.amazonaws.services.workdocs.model.InvalidArgumentException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("UnauthorizedOperationException").withModeledClass( com.amazonaws.services.workdocs.model.UnauthorizedOperationException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ServiceUnavailableException").withModeledClass( com.amazonaws.services.workdocs.model.ServiceUnavailableException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DeactivatingLastSystemUserException").withModeledClass( com.amazonaws.services.workdocs.model.DeactivatingLastSystemUserException.class)) .withBaseServiceExceptionClass(com.amazonaws.services.workdocs.model.AmazonWorkDocsException.class)); public static AmazonWorkDocsClientBuilder builder() { return AmazonWorkDocsClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Amazon WorkDocs using the specified parameters. * * <p> * All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonWorkDocsClient(AwsSyncClientParams clientParams) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("workdocs.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/workdocs/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/workdocs/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** * <p> * Aborts the upload of the specified document version that was previously initiated by * <a>InitiateDocumentVersionUpload</a>. The client should make this call only when it no longer intends or fails to * upload the document version. * </p> * * @param abortDocumentVersionUploadRequest * @return Result of the AbortDocumentVersionUpload operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.AbortDocumentVersionUpload * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/AbortDocumentVersionUpload" * target="_top">AWS API Documentation</a> */ @Override public AbortDocumentVersionUploadResult abortDocumentVersionUpload(AbortDocumentVersionUploadRequest request) { request = beforeClientExecution(request); return executeAbortDocumentVersionUpload(request); } @SdkInternalApi final AbortDocumentVersionUploadResult executeAbortDocumentVersionUpload(AbortDocumentVersionUploadRequest abortDocumentVersionUploadRequest) { ExecutionContext executionContext = createExecutionContext(abortDocumentVersionUploadRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AbortDocumentVersionUploadRequest> request = null; Response<AbortDocumentVersionUploadResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AbortDocumentVersionUploadRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(abortDocumentVersionUploadRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AbortDocumentVersionUploadResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AbortDocumentVersionUploadResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Activates the specified user. Only active users can access Amazon WorkDocs. * </p> * * @param activateUserRequest * @return Result of the ActivateUser operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.ActivateUser * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/ActivateUser" target="_top">AWS API * Documentation</a> */ @Override public ActivateUserResult activateUser(ActivateUserRequest request) { request = beforeClientExecution(request); return executeActivateUser(request); } @SdkInternalApi final ActivateUserResult executeActivateUser(ActivateUserRequest activateUserRequest) { ExecutionContext executionContext = createExecutionContext(activateUserRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<ActivateUserRequest> request = null; Response<ActivateUserResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ActivateUserRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(activateUserRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<ActivateUserResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ActivateUserResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a set of permissions for the specified folder or document. The resource permissions are overwritten if * the principals already have different permissions. * </p> * * @param addResourcePermissionsRequest * @return Result of the AddResourcePermissions operation returned by the service. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.AddResourcePermissions * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/AddResourcePermissions" * target="_top">AWS API Documentation</a> */ @Override public AddResourcePermissionsResult addResourcePermissions(AddResourcePermissionsRequest request) { request = beforeClientExecution(request); return executeAddResourcePermissions(request); } @SdkInternalApi final AddResourcePermissionsResult executeAddResourcePermissions(AddResourcePermissionsRequest addResourcePermissionsRequest) { ExecutionContext executionContext = createExecutionContext(addResourcePermissionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AddResourcePermissionsRequest> request = null; Response<AddResourcePermissionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddResourcePermissionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(addResourcePermissionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AddResourcePermissionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AddResourcePermissionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a folder with the specified name and parent folder. * </p> * * @param createFolderRequest * @return Result of the CreateFolder operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws EntityAlreadyExistsException * The resource already exists. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws LimitExceededException * You've exceeded the maximum of 100,000 folders under the parent folder. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.CreateFolder * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/CreateFolder" target="_top">AWS API * Documentation</a> */ @Override public CreateFolderResult createFolder(CreateFolderRequest request) { request = beforeClientExecution(request); return executeCreateFolder(request); } @SdkInternalApi final CreateFolderResult executeCreateFolder(CreateFolderRequest createFolderRequest) { ExecutionContext executionContext = createExecutionContext(createFolderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateFolderRequest> request = null; Response<CreateFolderResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateFolderRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createFolderRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateFolderResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateFolderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Configure WorkDocs to use Amazon SNS notifications. * </p> * <p> * The endpoint receives a confirmation message, and must confirm the subscription. For more information, see <a * href="http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html#SendMessageToHttp.confirm">Confirm the * Subscription</a> in the <i>Amazon Simple Notification Service Developer Guide</i>. * </p> * * @param createNotificationSubscriptionRequest * @return Result of the CreateNotificationSubscription operation returned by the service. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws TooManySubscriptionsException * You've reached the limit on the number of subscriptions for the WorkDocs instance. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.CreateNotificationSubscription * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/CreateNotificationSubscription" * target="_top">AWS API Documentation</a> */ @Override public CreateNotificationSubscriptionResult createNotificationSubscription(CreateNotificationSubscriptionRequest request) { request = beforeClientExecution(request); return executeCreateNotificationSubscription(request); } @SdkInternalApi final CreateNotificationSubscriptionResult executeCreateNotificationSubscription(CreateNotificationSubscriptionRequest createNotificationSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(createNotificationSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateNotificationSubscriptionRequest> request = null; Response<CreateNotificationSubscriptionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateNotificationSubscriptionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createNotificationSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateNotificationSubscriptionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateNotificationSubscriptionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a user in a Simple AD or Microsoft AD directory. The status of a newly created user is "ACTIVE". New * users can access Amazon WorkDocs. * </p> * * @param createUserRequest * @return Result of the CreateUser operation returned by the service. * @throws EntityAlreadyExistsException * The resource already exists. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.CreateUser * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/CreateUser" target="_top">AWS API * Documentation</a> */ @Override public CreateUserResult createUser(CreateUserRequest request) { request = beforeClientExecution(request); return executeCreateUser(request); } @SdkInternalApi final CreateUserResult executeCreateUser(CreateUserRequest createUserRequest) { ExecutionContext executionContext = createExecutionContext(createUserRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateUserRequest> request = null; Response<CreateUserResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateUserRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createUserRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateUserResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateUserResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deactivates the specified user, which revokes the user's access to Amazon WorkDocs. * </p> * * @param deactivateUserRequest * @return Result of the DeactivateUser operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DeactivateUser * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DeactivateUser" target="_top">AWS API * Documentation</a> */ @Override public DeactivateUserResult deactivateUser(DeactivateUserRequest request) { request = beforeClientExecution(request); return executeDeactivateUser(request); } @SdkInternalApi final DeactivateUserResult executeDeactivateUser(DeactivateUserRequest deactivateUserRequest) { ExecutionContext executionContext = createExecutionContext(deactivateUserRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeactivateUserRequest> request = null; Response<DeactivateUserResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeactivateUserRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deactivateUserRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeactivateUserResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeactivateUserResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Permanently deletes the specified document and its associated metadata. * </p> * * @param deleteDocumentRequest * @return Result of the DeleteDocument operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws ConcurrentModificationException * The resource hierarchy is changing. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DeleteDocument * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DeleteDocument" target="_top">AWS API * Documentation</a> */ @Override public DeleteDocumentResult deleteDocument(DeleteDocumentRequest request) { request = beforeClientExecution(request); return executeDeleteDocument(request); } @SdkInternalApi final DeleteDocumentResult executeDeleteDocument(DeleteDocumentRequest deleteDocumentRequest) { ExecutionContext executionContext = createExecutionContext(deleteDocumentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteDocumentRequest> request = null; Response<DeleteDocumentResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDocumentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDocumentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteDocumentResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteDocumentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Permanently deletes the specified folder and its contents. * </p> * * @param deleteFolderRequest * @return Result of the DeleteFolder operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws ConcurrentModificationException * The resource hierarchy is changing. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DeleteFolder * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DeleteFolder" target="_top">AWS API * Documentation</a> */ @Override public DeleteFolderResult deleteFolder(DeleteFolderRequest request) { request = beforeClientExecution(request); return executeDeleteFolder(request); } @SdkInternalApi final DeleteFolderResult executeDeleteFolder(DeleteFolderRequest deleteFolderRequest) { ExecutionContext executionContext = createExecutionContext(deleteFolderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteFolderRequest> request = null; Response<DeleteFolderResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteFolderRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteFolderRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteFolderResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteFolderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes the contents of the specified folder. * </p> * * @param deleteFolderContentsRequest * @return Result of the DeleteFolderContents operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DeleteFolderContents * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DeleteFolderContents" target="_top">AWS * API Documentation</a> */ @Override public DeleteFolderContentsResult deleteFolderContents(DeleteFolderContentsRequest request) { request = beforeClientExecution(request); return executeDeleteFolderContents(request); } @SdkInternalApi final DeleteFolderContentsResult executeDeleteFolderContents(DeleteFolderContentsRequest deleteFolderContentsRequest) { ExecutionContext executionContext = createExecutionContext(deleteFolderContentsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteFolderContentsRequest> request = null; Response<DeleteFolderContentsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteFolderContentsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteFolderContentsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteFolderContentsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteFolderContentsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes the specified subscription from the specified organization. * </p> * * @param deleteNotificationSubscriptionRequest * @return Result of the DeleteNotificationSubscription operation returned by the service. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws EntityNotExistsException * The resource does not exist. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @sample AmazonWorkDocs.DeleteNotificationSubscription * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DeleteNotificationSubscription" * target="_top">AWS API Documentation</a> */ @Override public DeleteNotificationSubscriptionResult deleteNotificationSubscription(DeleteNotificationSubscriptionRequest request) { request = beforeClientExecution(request); return executeDeleteNotificationSubscription(request); } @SdkInternalApi final DeleteNotificationSubscriptionResult executeDeleteNotificationSubscription(DeleteNotificationSubscriptionRequest deleteNotificationSubscriptionRequest) { ExecutionContext executionContext = createExecutionContext(deleteNotificationSubscriptionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteNotificationSubscriptionRequest> request = null; Response<DeleteNotificationSubscriptionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteNotificationSubscriptionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteNotificationSubscriptionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteNotificationSubscriptionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteNotificationSubscriptionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes the specified user from a Simple AD or Microsoft AD directory. * </p> * * @param deleteUserRequest * @return Result of the DeleteUser operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DeleteUser * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DeleteUser" target="_top">AWS API * Documentation</a> */ @Override public DeleteUserResult deleteUser(DeleteUserRequest request) { request = beforeClientExecution(request); return executeDeleteUser(request); } @SdkInternalApi final DeleteUserResult executeDeleteUser(DeleteUserRequest deleteUserRequest) { ExecutionContext executionContext = createExecutionContext(deleteUserRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteUserRequest> request = null; Response<DeleteUserResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteUserRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteUserRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteUserResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteUserResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Retrieves the document versions for the specified document. * </p> * <p> * By default, only active versions are returned. * </p> * * @param describeDocumentVersionsRequest * @return Result of the DescribeDocumentVersions operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws InvalidArgumentException * The pagination marker and/or limit fields are not valid. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @sample AmazonWorkDocs.DescribeDocumentVersions * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DescribeDocumentVersions" * target="_top">AWS API Documentation</a> */ @Override public DescribeDocumentVersionsResult describeDocumentVersions(DescribeDocumentVersionsRequest request) { request = beforeClientExecution(request); return executeDescribeDocumentVersions(request); } @SdkInternalApi final DescribeDocumentVersionsResult executeDescribeDocumentVersions(DescribeDocumentVersionsRequest describeDocumentVersionsRequest) { ExecutionContext executionContext = createExecutionContext(describeDocumentVersionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeDocumentVersionsRequest> request = null; Response<DescribeDocumentVersionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeDocumentVersionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeDocumentVersionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeDocumentVersionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeDocumentVersionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Describes the contents of the specified folder, including its documents and sub-folders. * </p> * <p> * By default, Amazon WorkDocs returns the first 100 active document and folder metadata items. If there are more * results, the response includes a marker that you can use to request the next set of results. You can also request * initialized documents. * </p> * * @param describeFolderContentsRequest * @return Result of the DescribeFolderContents operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws InvalidArgumentException * The pagination marker and/or limit fields are not valid. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @sample AmazonWorkDocs.DescribeFolderContents * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DescribeFolderContents" * target="_top">AWS API Documentation</a> */ @Override public DescribeFolderContentsResult describeFolderContents(DescribeFolderContentsRequest request) { request = beforeClientExecution(request); return executeDescribeFolderContents(request); } @SdkInternalApi final DescribeFolderContentsResult executeDescribeFolderContents(DescribeFolderContentsRequest describeFolderContentsRequest) { ExecutionContext executionContext = createExecutionContext(describeFolderContentsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeFolderContentsRequest> request = null; Response<DescribeFolderContentsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeFolderContentsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeFolderContentsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeFolderContentsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeFolderContentsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Lists the specified notification subscriptions. * </p> * * @param describeNotificationSubscriptionsRequest * @return Result of the DescribeNotificationSubscriptions operation returned by the service. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws EntityNotExistsException * The resource does not exist. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DescribeNotificationSubscriptions * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DescribeNotificationSubscriptions" * target="_top">AWS API Documentation</a> */ @Override public DescribeNotificationSubscriptionsResult describeNotificationSubscriptions(DescribeNotificationSubscriptionsRequest request) { request = beforeClientExecution(request); return executeDescribeNotificationSubscriptions(request); } @SdkInternalApi final DescribeNotificationSubscriptionsResult executeDescribeNotificationSubscriptions( DescribeNotificationSubscriptionsRequest describeNotificationSubscriptionsRequest) { ExecutionContext executionContext = createExecutionContext(describeNotificationSubscriptionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeNotificationSubscriptionsRequest> request = null; Response<DescribeNotificationSubscriptionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeNotificationSubscriptionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeNotificationSubscriptionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeNotificationSubscriptionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeNotificationSubscriptionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Describes the permissions of a specified resource. * </p> * * @param describeResourcePermissionsRequest * @return Result of the DescribeResourcePermissions operation returned by the service. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.DescribeResourcePermissions * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DescribeResourcePermissions" * target="_top">AWS API Documentation</a> */ @Override public DescribeResourcePermissionsResult describeResourcePermissions(DescribeResourcePermissionsRequest request) { request = beforeClientExecution(request); return executeDescribeResourcePermissions(request); } @SdkInternalApi final DescribeResourcePermissionsResult executeDescribeResourcePermissions(DescribeResourcePermissionsRequest describeResourcePermissionsRequest) { ExecutionContext executionContext = createExecutionContext(describeResourcePermissionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeResourcePermissionsRequest> request = null; Response<DescribeResourcePermissionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeResourcePermissionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeResourcePermissionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeResourcePermissionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeResourcePermissionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Describes the specified users. You can describe all users or filter the results (for example, by status or * organization). * </p> * <p> * By default, Amazon WorkDocs returns the first 24 active or pending users. If there are more results, the response * includes a marker that you can use to request the next set of results. * </p> * * @param describeUsersRequest * @return Result of the DescribeUsers operation returned by the service. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws InvalidArgumentException * The pagination marker and/or limit fields are not valid. * @sample AmazonWorkDocs.DescribeUsers * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/DescribeUsers" target="_top">AWS API * Documentation</a> */ @Override public DescribeUsersResult describeUsers(DescribeUsersRequest request) { request = beforeClientExecution(request); return executeDescribeUsers(request); } @SdkInternalApi final DescribeUsersResult executeDescribeUsers(DescribeUsersRequest describeUsersRequest) { ExecutionContext executionContext = createExecutionContext(describeUsersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeUsersRequest> request = null; Response<DescribeUsersResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeUsersRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeUsersRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeUsersResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeUsersResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Retrieves the specified document object. * </p> * * @param getDocumentRequest * @return Result of the GetDocument operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws InvalidArgumentException * The pagination marker and/or limit fields are not valid. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.GetDocument * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/GetDocument" target="_top">AWS API * Documentation</a> */ @Override public GetDocumentResult getDocument(GetDocumentRequest request) { request = beforeClientExecution(request); return executeGetDocument(request); } @SdkInternalApi final GetDocumentResult executeGetDocument(GetDocumentRequest getDocumentRequest) { ExecutionContext executionContext = createExecutionContext(getDocumentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<GetDocumentRequest> request = null; Response<GetDocumentResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDocumentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDocumentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<GetDocumentResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDocumentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Retrieves the path information (the hierarchy from the root folder) for the requested document. * </p> * <p> * By default, Amazon WorkDocs returns a maximum of 100 levels upwards from the requested document and only includes * the IDs of the parent folders in the path. You can limit the maximum number of levels. You can also request the * names of the parent folders. * </p> * * @param getDocumentPathRequest * @return Result of the GetDocumentPath operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.GetDocumentPath * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/GetDocumentPath" target="_top">AWS API * Documentation</a> */ @Override public GetDocumentPathResult getDocumentPath(GetDocumentPathRequest request) { request = beforeClientExecution(request); return executeGetDocumentPath(request); } @SdkInternalApi final GetDocumentPathResult executeGetDocumentPath(GetDocumentPathRequest getDocumentPathRequest) { ExecutionContext executionContext = createExecutionContext(getDocumentPathRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<GetDocumentPathRequest> request = null; Response<GetDocumentPathResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDocumentPathRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDocumentPathRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<GetDocumentPathResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDocumentPathResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Retrieves version metadata for the specified document. * </p> * * @param getDocumentVersionRequest * @return Result of the GetDocumentVersion operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @sample AmazonWorkDocs.GetDocumentVersion * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/GetDocumentVersion" target="_top">AWS * API Documentation</a> */ @Override public GetDocumentVersionResult getDocumentVersion(GetDocumentVersionRequest request) { request = beforeClientExecution(request); return executeGetDocumentVersion(request); } @SdkInternalApi final GetDocumentVersionResult executeGetDocumentVersion(GetDocumentVersionRequest getDocumentVersionRequest) { ExecutionContext executionContext = createExecutionContext(getDocumentVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<GetDocumentVersionRequest> request = null; Response<GetDocumentVersionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDocumentVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDocumentVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<GetDocumentVersionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDocumentVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Retrieves the metadata of the specified folder. * </p> * * @param getFolderRequest * @return Result of the GetFolder operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws InvalidArgumentException * The pagination marker and/or limit fields are not valid. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @sample AmazonWorkDocs.GetFolder * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/GetFolder" target="_top">AWS API * Documentation</a> */ @Override public GetFolderResult getFolder(GetFolderRequest request) { request = beforeClientExecution(request); return executeGetFolder(request); } @SdkInternalApi final GetFolderResult executeGetFolder(GetFolderRequest getFolderRequest) { ExecutionContext executionContext = createExecutionContext(getFolderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<GetFolderRequest> request = null; Response<GetFolderResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFolderRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFolderRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<GetFolderResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFolderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Retrieves the path information (the hierarchy from the root folder) for the specified folder. * </p> * <p> * By default, Amazon WorkDocs returns a maximum of 100 levels upwards from the requested folder and only includes * the IDs of the parent folders in the path. You can limit the maximum number of levels. You can also request the * parent folder names. * </p> * * @param getFolderPathRequest * @return Result of the GetFolderPath operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.GetFolderPath * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/GetFolderPath" target="_top">AWS API * Documentation</a> */ @Override public GetFolderPathResult getFolderPath(GetFolderPathRequest request) { request = beforeClientExecution(request); return executeGetFolderPath(request); } @SdkInternalApi final GetFolderPathResult executeGetFolderPath(GetFolderPathRequest getFolderPathRequest) { ExecutionContext executionContext = createExecutionContext(getFolderPathRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<GetFolderPathRequest> request = null; Response<GetFolderPathResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetFolderPathRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getFolderPathRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<GetFolderPathResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetFolderPathResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new document object and version object. * </p> * <p> * The client specifies the parent folder ID and name of the document to upload. The ID is optionally specified when * creating a new version of an existing document. This is the first step to upload a document. Next, upload the * document to the URL returned from the call, and then call <a>UpdateDocumentVersion</a>. * </p> * <p> * To cancel the document upload, call <a>AbortDocumentVersionUpload</a>. * </p> * * @param initiateDocumentVersionUploadRequest * @return Result of the InitiateDocumentVersionUpload operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws EntityAlreadyExistsException * The resource already exists. * @throws StorageLimitExceededException * The storage limit has been exceeded. * @throws StorageLimitWillExceedException * The storage limit will be exceeded. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.InitiateDocumentVersionUpload * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/InitiateDocumentVersionUpload" * target="_top">AWS API Documentation</a> */ @Override public InitiateDocumentVersionUploadResult initiateDocumentVersionUpload(InitiateDocumentVersionUploadRequest request) { request = beforeClientExecution(request); return executeInitiateDocumentVersionUpload(request); } @SdkInternalApi final InitiateDocumentVersionUploadResult executeInitiateDocumentVersionUpload(InitiateDocumentVersionUploadRequest initiateDocumentVersionUploadRequest) { ExecutionContext executionContext = createExecutionContext(initiateDocumentVersionUploadRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<InitiateDocumentVersionUploadRequest> request = null; Response<InitiateDocumentVersionUploadResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new InitiateDocumentVersionUploadRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(initiateDocumentVersionUploadRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<InitiateDocumentVersionUploadResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new InitiateDocumentVersionUploadResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Removes all the permissions from the specified resource. * </p> * * @param removeAllResourcePermissionsRequest * @return Result of the RemoveAllResourcePermissions operation returned by the service. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.RemoveAllResourcePermissions * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/RemoveAllResourcePermissions" * target="_top">AWS API Documentation</a> */ @Override public RemoveAllResourcePermissionsResult removeAllResourcePermissions(RemoveAllResourcePermissionsRequest request) { request = beforeClientExecution(request); return executeRemoveAllResourcePermissions(request); } @SdkInternalApi final RemoveAllResourcePermissionsResult executeRemoveAllResourcePermissions(RemoveAllResourcePermissionsRequest removeAllResourcePermissionsRequest) { ExecutionContext executionContext = createExecutionContext(removeAllResourcePermissionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<RemoveAllResourcePermissionsRequest> request = null; Response<RemoveAllResourcePermissionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveAllResourcePermissionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(removeAllResourcePermissionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<RemoveAllResourcePermissionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RemoveAllResourcePermissionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Removes the permission for the specified principal from the specified resource. * </p> * * @param removeResourcePermissionRequest * @return Result of the RemoveResourcePermission operation returned by the service. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.RemoveResourcePermission * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/RemoveResourcePermission" * target="_top">AWS API Documentation</a> */ @Override public RemoveResourcePermissionResult removeResourcePermission(RemoveResourcePermissionRequest request) { request = beforeClientExecution(request); return executeRemoveResourcePermission(request); } @SdkInternalApi final RemoveResourcePermissionResult executeRemoveResourcePermission(RemoveResourcePermissionRequest removeResourcePermissionRequest) { ExecutionContext executionContext = createExecutionContext(removeResourcePermissionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<RemoveResourcePermissionRequest> request = null; Response<RemoveResourcePermissionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveResourcePermissionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(removeResourcePermissionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<RemoveResourcePermissionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RemoveResourcePermissionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Updates the specified attributes of the specified document. The user must have access to both the document and * its parent folder, if applicable. * </p> * * @param updateDocumentRequest * @return Result of the UpdateDocument operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws EntityAlreadyExistsException * The resource already exists. * @throws LimitExceededException * You've exceeded the maximum of 100,000 folders under the parent folder. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws ConcurrentModificationException * The resource hierarchy is changing. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.UpdateDocument * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/UpdateDocument" target="_top">AWS API * Documentation</a> */ @Override public UpdateDocumentResult updateDocument(UpdateDocumentRequest request) { request = beforeClientExecution(request); return executeUpdateDocument(request); } @SdkInternalApi final UpdateDocumentResult executeUpdateDocument(UpdateDocumentRequest updateDocumentRequest) { ExecutionContext executionContext = createExecutionContext(updateDocumentRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<UpdateDocumentRequest> request = null; Response<UpdateDocumentResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateDocumentRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDocumentRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<UpdateDocumentResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDocumentResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Changes the status of the document version to ACTIVE. * </p> * <p> * Amazon WorkDocs also sets its document container to ACTIVE. This is the last step in a document upload, after the * client uploads the document to an S3-presigned URL returned by <a>InitiateDocumentVersionUpload</a>. * </p> * * @param updateDocumentVersionRequest * @return Result of the UpdateDocumentVersion operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws ConcurrentModificationException * The resource hierarchy is changing. * @throws InvalidOperationException * The operation is invalid. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.UpdateDocumentVersion * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/UpdateDocumentVersion" target="_top">AWS * API Documentation</a> */ @Override public UpdateDocumentVersionResult updateDocumentVersion(UpdateDocumentVersionRequest request) { request = beforeClientExecution(request); return executeUpdateDocumentVersion(request); } @SdkInternalApi final UpdateDocumentVersionResult executeUpdateDocumentVersion(UpdateDocumentVersionRequest updateDocumentVersionRequest) { ExecutionContext executionContext = createExecutionContext(updateDocumentVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<UpdateDocumentVersionRequest> request = null; Response<UpdateDocumentVersionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateDocumentVersionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDocumentVersionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<UpdateDocumentVersionResult>> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDocumentVersionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Updates the specified attributes of the specified folder. The user must have access to both the folder and its * parent folder, if applicable. * </p> * * @param updateFolderRequest * @return Result of the UpdateFolder operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws EntityAlreadyExistsException * The resource already exists. * @throws ProhibitedStateException * The specified document version is not in the INITIALIZED state. * @throws ConcurrentModificationException * The resource hierarchy is changing. * @throws LimitExceededException * You've exceeded the maximum of 100,000 folders under the parent folder. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @sample AmazonWorkDocs.UpdateFolder * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/UpdateFolder" target="_top">AWS API * Documentation</a> */ @Override public UpdateFolderResult updateFolder(UpdateFolderRequest request) { request = beforeClientExecution(request); return executeUpdateFolder(request); } @SdkInternalApi final UpdateFolderResult executeUpdateFolder(UpdateFolderRequest updateFolderRequest) { ExecutionContext executionContext = createExecutionContext(updateFolderRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<UpdateFolderRequest> request = null; Response<UpdateFolderResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateFolderRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateFolderRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<UpdateFolderResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateFolderResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Updates the specified attributes of the specified user, and grants or revokes administrative privileges to the * Amazon WorkDocs site. * </p> * * @param updateUserRequest * @return Result of the UpdateUser operation returned by the service. * @throws EntityNotExistsException * The resource does not exist. * @throws UnauthorizedOperationException * The operation is not permitted. * @throws UnauthorizedResourceAccessException * The caller does not have access to perform the action on the resource. * @throws IllegalUserStateException * The user is undergoing transfer of ownership. * @throws FailedDependencyException * The AWS Directory Service cannot reach an on-premises instance. Or a dependency under the control of the * organization is failing, such as a connected active directory. * @throws ServiceUnavailableException * One or more of the dependencies is unavailable. * @throws DeactivatingLastSystemUserException * The last user in the organization is being deactivated. * @sample AmazonWorkDocs.UpdateUser * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/workdocs-2016-05-01/UpdateUser" target="_top">AWS API * Documentation</a> */ @Override public UpdateUserResult updateUser(UpdateUserRequest request) { request = beforeClientExecution(request); return executeUpdateUser(request); } @SdkInternalApi final UpdateUserResult executeUpdateUser(UpdateUserRequest updateUserRequest) { ExecutionContext executionContext = createExecutionContext(updateUserRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<UpdateUserRequest> request = null; Response<UpdateUserResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateUserRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateUserRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<UpdateUserResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateUserResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. * <p> * Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request, HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler, ExecutionContext executionContext) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private <X, Y extends AmazonWebServiceRequest> Response<X> anonymousInvoke(Request<Y> request, HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private <X, Y extends AmazonWebServiceRequest> Response<X> doInvoke(Request<Y> request, HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler, ExecutionContext executionContext) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); HttpResponseHandler<AmazonServiceException> errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }