All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.workspaces.AmazonWorkspacesClient Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 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.workspaces;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;
import java.util.Map.Entry;

import org.apache.commons.logging.*;

import com.amazonaws.*;
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.AmazonServiceException;

import com.amazonaws.services.workspaces.model.*;
import com.amazonaws.services.workspaces.model.transform.*;

/**
 * Client for accessing Amazon WorkSpaces. All service calls made using this
 * client are blocking, and will not return until the service call completes.
 * 

* Amazon WorkSpaces Service *

* This is the Amazon WorkSpaces API Reference. This guide provides * detailed information about Amazon WorkSpaces operations, data types, * parameters, and errors. *

*/ @ThreadSafe public class AmazonWorkspacesClient extends AmazonWebServiceClient implements AmazonWorkspaces { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonWorkspaces.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "workspaces"; /** * Client configuration factory providing ClientConfigurations tailored to * this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final SdkJsonProtocolFactory protocolFactory = new SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode("ResourceNotFoundException") .withModeledClass( com.amazonaws.services.workspaces.model.ResourceNotFoundException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "InvalidParameterValuesException") .withModeledClass( com.amazonaws.services.workspaces.model.InvalidParameterValuesException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "ResourceLimitExceededException") .withModeledClass( com.amazonaws.services.workspaces.model.ResourceLimitExceededException.class)) .addErrorMetadata( new JsonErrorShapeMetadata() .withErrorCode( "ResourceUnavailableException") .withModeledClass( com.amazonaws.services.workspaces.model.ResourceUnavailableException.class)) .withBaseServiceExceptionClass( com.amazonaws.services.workspaces.model.AmazonWorkspacesException.class)); /** * Constructs a new client to invoke service methods on Amazon WorkSpaces. A * credentials provider chain will be used that searches for credentials in * this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @see DefaultAWSCredentialsProviderChain */ public AmazonWorkspacesClient() { this(new DefaultAWSCredentialsProviderChain(), configFactory .getConfig()); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces. A * credentials provider chain will be used that searches for credentials in * this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
* *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon WorkSpaces (ex: proxy settings, retry counts, * etc.). * * @see DefaultAWSCredentialsProviderChain */ public AmazonWorkspacesClient(ClientConfiguration clientConfiguration) { this(new DefaultAWSCredentialsProviderChain(), clientConfiguration); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces * using the specified AWS account credentials. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. */ public AmazonWorkspacesClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces * using the specified AWS account credentials and client configuration * options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon WorkSpaces (ex: proxy settings, retry counts, * etc.). */ public AmazonWorkspacesClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider( awsCredentials); init(); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces * using the specified AWS account credentials provider. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. */ public AmazonWorkspacesClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces * using the specified AWS account credentials provider and client * configuration options. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon WorkSpaces (ex: proxy settings, retry counts, * etc.). */ public AmazonWorkspacesClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces * using the specified AWS account credentials provider, client * configuration options, and request metric collector. * *

* All service calls made using this new client object are blocking, and * will not return until the service call completes. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon WorkSpaces (ex: proxy settings, retry counts, * etc.). * @param requestMetricCollector * optional request metric collector */ public AmazonWorkspacesClient( AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } /** * Constructs a new client to invoke service methods on Amazon WorkSpaces * using the specified parameters. * *

* 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. */ AmazonWorkspacesClient(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("https://workspaces.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s .addAll(chainFactory .newRequestHandlerChain("/com/amazonaws/services/workspaces/request.handlers")); requestHandler2s .addAll(chainFactory .newRequestHandler2Chain("/com/amazonaws/services/workspaces/request.handler2s")); } /** *

* Creates tags for a WorkSpace. *

* * @param createTagsRequest * The request of the create tags action. * @return Result of the CreateTags operation returned by the service. * @throws ResourceNotFoundException * The resource could not be found. * @throws InvalidParameterValuesException * One or more parameter values are not valid. * @throws ResourceLimitExceededException * Your resource limits have been exceeded. * @sample AmazonWorkspaces.CreateTags */ @Override public CreateTagsResult createTags(CreateTagsRequest createTagsRequest) { ExecutionContext executionContext = createExecutionContext(createTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateTagsRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(createTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateTagsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates one or more WorkSpaces. *

* *

* This operation is asynchronous and returns before the WorkSpaces are * created. *

*
* * @param createWorkspacesRequest * Contains the inputs for the CreateWorkspaces operation. * @return Result of the CreateWorkspaces operation returned by the service. * @throws ResourceLimitExceededException * Your resource limits have been exceeded. * @throws InvalidParameterValuesException * One or more parameter values are not valid. * @sample AmazonWorkspaces.CreateWorkspaces */ @Override public CreateWorkspacesResult createWorkspaces( CreateWorkspacesRequest createWorkspacesRequest) { ExecutionContext executionContext = createExecutionContext(createWorkspacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateWorkspacesRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(createWorkspacesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new CreateWorkspacesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes tags from a WorkSpace. *

* * @param deleteTagsRequest * The request of the delete tags action. * @return Result of the DeleteTags operation returned by the service. * @throws ResourceNotFoundException * The resource could not be found. * @throws InvalidParameterValuesException * One or more parameter values are not valid. * @sample AmazonWorkspaces.DeleteTags */ @Override public DeleteTagsResult deleteTags(DeleteTagsRequest deleteTagsRequest) { ExecutionContext executionContext = createExecutionContext(deleteTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteTagsRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(deleteTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DeleteTagsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Describes tags for a WorkSpace. *

* * @param describeTagsRequest * The request of the describe tags action. * @return Result of the DescribeTags operation returned by the service. * @throws ResourceNotFoundException * The resource could not be found. * @sample AmazonWorkspaces.DescribeTags */ @Override public DescribeTagsResult describeTags( DescribeTagsRequest describeTagsRequest) { ExecutionContext executionContext = createExecutionContext(describeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTagsRequestMarshaller(protocolFactory) .marshall(super.beforeMarshalling(describeTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeTagsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Obtains information about the WorkSpace bundles that are available to * your account in the specified region. *

*

* You can filter the results with either the BundleIds * parameter, or the Owner parameter, but not both. *

*

* This operation supports pagination with the use of the * NextToken request and response parameters. If more results * are available, the NextToken response member contains a * token that you pass in the next call to this operation to retrieve the * next set of items. *

* * @param describeWorkspaceBundlesRequest * Contains the inputs for the DescribeWorkspaceBundles * operation. * @return Result of the DescribeWorkspaceBundles operation returned by the * service. * @throws InvalidParameterValuesException * One or more parameter values are not valid. * @sample AmazonWorkspaces.DescribeWorkspaceBundles */ @Override public DescribeWorkspaceBundlesResult describeWorkspaceBundles( DescribeWorkspaceBundlesRequest describeWorkspaceBundlesRequest) { ExecutionContext executionContext = createExecutionContext(describeWorkspaceBundlesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeWorkspaceBundlesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeWorkspaceBundlesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeWorkspaceBundlesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeWorkspaceBundlesResult describeWorkspaceBundles() { return describeWorkspaceBundles(new DescribeWorkspaceBundlesRequest()); } /** *

* Retrieves information about the AWS Directory Service directories in the * region that are registered with Amazon WorkSpaces and are available to * your account. *

*

* This operation supports pagination with the use of the * NextToken request and response parameters. If more results * are available, the NextToken response member contains a * token that you pass in the next call to this operation to retrieve the * next set of items. *

* * @param describeWorkspaceDirectoriesRequest * Contains the inputs for the DescribeWorkspaceDirectories * operation. * @return Result of the DescribeWorkspaceDirectories operation returned by * the service. * @throws InvalidParameterValuesException * One or more parameter values are not valid. * @sample AmazonWorkspaces.DescribeWorkspaceDirectories */ @Override public DescribeWorkspaceDirectoriesResult describeWorkspaceDirectories( DescribeWorkspaceDirectoriesRequest describeWorkspaceDirectoriesRequest) { ExecutionContext executionContext = createExecutionContext(describeWorkspaceDirectoriesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeWorkspaceDirectoriesRequestMarshaller( protocolFactory) .marshall(super .beforeMarshalling(describeWorkspaceDirectoriesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler( new JsonOperationMetadata().withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeWorkspaceDirectoriesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeWorkspaceDirectoriesResult describeWorkspaceDirectories() { return describeWorkspaceDirectories(new DescribeWorkspaceDirectoriesRequest()); } /** *

* Obtains information about the specified WorkSpaces. *

*

* Only one of the filter parameters, such as BundleId, * DirectoryId, or WorkspaceIds, can be specified * at a time. *

*

* This operation supports pagination with the use of the * NextToken request and response parameters. If more results * are available, the NextToken response member contains a * token that you pass in the next call to this operation to retrieve the * next set of items. *

* * @param describeWorkspacesRequest * Contains the inputs for the DescribeWorkspaces operation. * @return Result of the DescribeWorkspaces operation returned by the * service. * @throws InvalidParameterValuesException * One or more parameter values are not valid. * @throws ResourceUnavailableException * The specified resource is not available. * @sample AmazonWorkspaces.DescribeWorkspaces */ @Override public DescribeWorkspacesResult describeWorkspaces( DescribeWorkspacesRequest describeWorkspacesRequest) { ExecutionContext executionContext = createExecutionContext(describeWorkspacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeWorkspacesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(describeWorkspacesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new DescribeWorkspacesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeWorkspacesResult describeWorkspaces() { return describeWorkspaces(new DescribeWorkspacesRequest()); } /** *

* Reboots the specified WorkSpaces. *

*

* To be able to reboot a WorkSpace, the WorkSpace must have a State * of AVAILABLE, IMPAIRED, or * INOPERABLE. *

* *

* This operation is asynchronous and will return before the WorkSpaces have * rebooted. *

*
* * @param rebootWorkspacesRequest * Contains the inputs for the RebootWorkspaces operation. * @return Result of the RebootWorkspaces operation returned by the service. * @sample AmazonWorkspaces.RebootWorkspaces */ @Override public RebootWorkspacesResult rebootWorkspaces( RebootWorkspacesRequest rebootWorkspacesRequest) { ExecutionContext executionContext = createExecutionContext(rebootWorkspacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RebootWorkspacesRequestMarshaller(protocolFactory) .marshall(super .beforeMarshalling(rebootWorkspacesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RebootWorkspacesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Rebuilds the specified WorkSpaces. *

*

* Rebuilding a WorkSpace is a potentially destructive action that can * result in the loss of data. Rebuilding a WorkSpace causes the following * to occur: *

*
    *
  • The system is restored to the image of the bundle that the WorkSpace * is created from. Any applications that have been installed, or system * settings that have been made since the WorkSpace was created will be * lost.
  • *
  • The data drive (D drive) is re-created from the last automatic * snapshot taken of the data drive. The current contents of the data drive * are overwritten. Automatic snapshots of the data drive are taken every 12 * hours, so the snapshot can be as much as 12 hours old.
  • *
*

* To be able to rebuild a WorkSpace, the WorkSpace must have a State * of AVAILABLE or ERROR. *

* *

* This operation is asynchronous and will return before the WorkSpaces have * been completely rebuilt. *

*
* * @param rebuildWorkspacesRequest * Contains the inputs for the RebuildWorkspaces operation. * @return Result of the RebuildWorkspaces operation returned by the * service. * @sample AmazonWorkspaces.RebuildWorkspaces */ @Override public RebuildWorkspacesResult rebuildWorkspaces( RebuildWorkspacesRequest rebuildWorkspacesRequest) { ExecutionContext executionContext = createExecutionContext(rebuildWorkspacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RebuildWorkspacesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(rebuildWorkspacesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new RebuildWorkspacesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Terminates the specified WorkSpaces. *

*

* Terminating a WorkSpace is a permanent action and cannot be undone. The * user's data is not maintained and will be destroyed. If you need to * archive any user data, contact Amazon Web Services before terminating the * WorkSpace. *

*

* You can terminate a WorkSpace that is in any state except * SUSPENDED. *

* *

* This operation is asynchronous and will return before the WorkSpaces have * been completely terminated. *

*
* * @param terminateWorkspacesRequest * Contains the inputs for the TerminateWorkspaces operation. * @return Result of the TerminateWorkspaces operation returned by the * service. * @sample AmazonWorkspaces.TerminateWorkspaces */ @Override public TerminateWorkspacesResult terminateWorkspaces( TerminateWorkspacesRequest terminateWorkspacesRequest) { ExecutionContext executionContext = createExecutionContext(terminateWorkspacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext .getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TerminateWorkspacesRequestMarshaller( protocolFactory).marshall(super .beforeMarshalling(terminateWorkspacesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true) .withHasStreamingSuccessResponse(false), new TerminateWorkspacesResultJsonUnmarshaller()); 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. *

* 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 Response invoke( Request request, HttpResponseHandler> 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 Response anonymousInvoke( Request request, HttpResponseHandler> 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 Response doInvoke( Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { request.setEndpoint(endpoint); request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory .createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy