/* * 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.directconnect; 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.directconnect.AmazonDirectConnectClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.directconnect.model.*; import com.amazonaws.services.directconnect.model.transform.*; /** * Client for accessing AWS Direct Connect. All service calls made using this client are blocking, and will not return * until the service call completes. * <p> * <p> * AWS Direct Connect links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 * gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct * Connect router. With this connection in place, you can create virtual interfaces directly to the AWS cloud (for * example, to Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3)) and to Amazon * Virtual Private Cloud (Amazon VPC), bypassing Internet service providers in your network path. An AWS Direct Connect * location provides access to AWS in the region it is associated with, as well as access to other US regions. For * example, you can provision a single connection to any AWS Direct Connect location in the US and use it to access * public AWS services in all US Regions and AWS GovCloud (US). * </p> */ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonDirectConnectClient extends AmazonWebServiceClient implements AmazonDirectConnect { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonDirectConnect.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "directconnect"; /** 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) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DuplicateTagKeysException").withModeledClass( com.amazonaws.services.directconnect.model.DuplicateTagKeysException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("TooManyTagsException").withModeledClass( com.amazonaws.services.directconnect.model.TooManyTagsException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DirectConnectServerException").withModeledClass( com.amazonaws.services.directconnect.model.DirectConnectServerException.class)) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DirectConnectClientException").withModeledClass( com.amazonaws.services.directconnect.model.DirectConnectClientException.class)) .withBaseServiceExceptionClass(com.amazonaws.services.directconnect.model.AmazonDirectConnectException.class)); /** * Constructs a new client to invoke service methods on AWS Direct Connect. A credentials provider chain will be * used that searches for credentials in this order: * <ul> * <li>Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY</li> * <li>Java System Properties - aws.accessKeyId and aws.secretKey</li> * <li>Instance profile credentials delivered through the Amazon EC2 metadata service</li> * </ul> * * <p> * All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AmazonDirectConnectClientBuilder#defaultClient()} */ @Deprecated public AmazonDirectConnectClient() { this(DefaultAWSCredentialsProviderChain.getInstance(), configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Direct Connect. A credentials provider chain will be * used that searches for credentials in this order: * <ul> * <li>Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY</li> * <li>Java System Properties - aws.accessKeyId and aws.secretKey</li> * <li>Instance profile credentials delivered through the Amazon EC2 metadata service</li> * </ul> * * <p> * 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 AWS Direct Connect (ex: proxy * settings, retry counts, etc.). * * @see DefaultAWSCredentialsProviderChain * @deprecated use {@link AmazonDirectConnectClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonDirectConnectClient(ClientConfiguration clientConfiguration) { this(DefaultAWSCredentialsProviderChain.getInstance(), clientConfiguration); } /** * Constructs a new client to invoke service methods on AWS Direct Connect using the specified AWS account * credentials. * * <p> * 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. * @deprecated use {@link AmazonDirectConnectClientBuilder#withCredentials(AWSCredentialsProvider)} for example: * {@code AmazonDirectConnectClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();} */ @Deprecated public AmazonDirectConnectClient(AWSCredentials awsCredentials) { this(awsCredentials, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Direct Connect using the specified AWS account * credentials and client configuration options. * * <p> * 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 AWS Direct Connect (ex: proxy * settings, retry counts, etc.). * @deprecated use {@link AmazonDirectConnectClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonDirectConnectClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonDirectConnectClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration) { super(clientConfiguration); this.awsCredentialsProvider = new StaticCredentialsProvider(awsCredentials); init(); } /** * Constructs a new client to invoke service methods on AWS Direct Connect using the specified AWS account * credentials provider. * * <p> * 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. * @deprecated use {@link AmazonDirectConnectClientBuilder#withCredentials(AWSCredentialsProvider)} */ @Deprecated public AmazonDirectConnectClient(AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, configFactory.getConfig()); } /** * Constructs a new client to invoke service methods on AWS Direct Connect using the specified AWS account * credentials provider and client configuration options. * * <p> * 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 AWS Direct Connect (ex: proxy * settings, retry counts, etc.). * @deprecated use {@link AmazonDirectConnectClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonDirectConnectClientBuilder#withClientConfiguration(ClientConfiguration)} */ @Deprecated public AmazonDirectConnectClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, null); } /** * Constructs a new client to invoke service methods on AWS Direct Connect using the specified AWS account * credentials provider, client configuration options, and request metric collector. * * <p> * 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 AWS Direct Connect (ex: proxy * settings, retry counts, etc.). * @param requestMetricCollector * optional request metric collector * @deprecated use {@link AmazonDirectConnectClientBuilder#withCredentials(AWSCredentialsProvider)} and * {@link AmazonDirectConnectClientBuilder#withClientConfiguration(ClientConfiguration)} and * {@link AmazonDirectConnectClientBuilder#withMetricsCollector(RequestMetricCollector)} */ @Deprecated public AmazonDirectConnectClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector) { super(clientConfiguration, requestMetricCollector); this.awsCredentialsProvider = awsCredentialsProvider; init(); } public static AmazonDirectConnectClientBuilder builder() { return AmazonDirectConnectClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on AWS Direct Connect 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. */ AmazonDirectConnectClient(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://directconnect.us-east-1.amazonaws.com/"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/directconnect/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/directconnect/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** * <p> * Deprecated in favor of <a>AllocateHostedConnection</a>. * </p> * <p> * Creates a hosted connection on an interconnect. * </p> * <p> * Allocates a VLAN number and a specified amount of bandwidth for use by a hosted connection on the given * interconnect. * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param allocateConnectionOnInterconnectRequest * Container for the parameters to the AllocateConnectionOnInterconnect operation. * @return Result of the AllocateConnectionOnInterconnect operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AllocateConnectionOnInterconnect * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocateConnectionOnInterconnect" * target="_top">AWS API Documentation</a> */ @Override @Deprecated public AllocateConnectionOnInterconnectResult allocateConnectionOnInterconnect(AllocateConnectionOnInterconnectRequest request) { request = beforeClientExecution(request); return executeAllocateConnectionOnInterconnect(request); } @SdkInternalApi final AllocateConnectionOnInterconnectResult executeAllocateConnectionOnInterconnect( AllocateConnectionOnInterconnectRequest allocateConnectionOnInterconnectRequest) { ExecutionContext executionContext = createExecutionContext(allocateConnectionOnInterconnectRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AllocateConnectionOnInterconnectRequest> request = null; Response<AllocateConnectionOnInterconnectResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AllocateConnectionOnInterconnectRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(allocateConnectionOnInterconnectRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AllocateConnectionOnInterconnectResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AllocateConnectionOnInterconnectResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a hosted connection on an interconnect or a link aggregation group (LAG). * </p> * <p> * Allocates a VLAN number and a specified amount of bandwidth for use by a hosted connection on the given * interconnect or LAG. * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param allocateHostedConnectionRequest * Container for the parameters to theHostedConnection operation. * @return Result of the AllocateHostedConnection operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AllocateHostedConnection * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocateHostedConnection" * target="_top">AWS API Documentation</a> */ @Override public AllocateHostedConnectionResult allocateHostedConnection(AllocateHostedConnectionRequest request) { request = beforeClientExecution(request); return executeAllocateHostedConnection(request); } @SdkInternalApi final AllocateHostedConnectionResult executeAllocateHostedConnection(AllocateHostedConnectionRequest allocateHostedConnectionRequest) { ExecutionContext executionContext = createExecutionContext(allocateHostedConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AllocateHostedConnectionRequest> request = null; Response<AllocateHostedConnectionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AllocateHostedConnectionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(allocateHostedConnectionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AllocateHostedConnectionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AllocateHostedConnectionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Provisions a private virtual interface to be owned by another AWS customer. * </p> * <p> * Virtual interfaces created using this action must be confirmed by the virtual interface owner by using the * <a>ConfirmPrivateVirtualInterface</a> action. Until then, the virtual interface will be in 'Confirming' state, * and will not be available for handling traffic. * </p> * * @param allocatePrivateVirtualInterfaceRequest * Container for the parameters to the AllocatePrivateVirtualInterface operation. * @return Result of the AllocatePrivateVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AllocatePrivateVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocatePrivateVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public AllocatePrivateVirtualInterfaceResult allocatePrivateVirtualInterface(AllocatePrivateVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeAllocatePrivateVirtualInterface(request); } @SdkInternalApi final AllocatePrivateVirtualInterfaceResult executeAllocatePrivateVirtualInterface( AllocatePrivateVirtualInterfaceRequest allocatePrivateVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(allocatePrivateVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AllocatePrivateVirtualInterfaceRequest> request = null; Response<AllocatePrivateVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AllocatePrivateVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(allocatePrivateVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AllocatePrivateVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AllocatePrivateVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Provisions a public virtual interface to be owned by a different customer. * </p> * <p> * The owner of a connection calls this function to provision a public virtual interface which will be owned by * another AWS customer. * </p> * <p> * Virtual interfaces created using this function must be confirmed by the virtual interface owner by calling * ConfirmPublicVirtualInterface. Until this step has been completed, the virtual interface will be in 'Confirming' * state, and will not be available for handling traffic. * </p> * <p> * When creating an IPv6 public virtual interface (addressFamily is 'ipv6'), the customer and amazon address fields * should be left blank to use auto-assigned IPv6 space. Custom IPv6 Addresses are currently not supported. * </p> * * @param allocatePublicVirtualInterfaceRequest * Container for the parameters to the AllocatePublicVirtualInterface operation. * @return Result of the AllocatePublicVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AllocatePublicVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocatePublicVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public AllocatePublicVirtualInterfaceResult allocatePublicVirtualInterface(AllocatePublicVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeAllocatePublicVirtualInterface(request); } @SdkInternalApi final AllocatePublicVirtualInterfaceResult executeAllocatePublicVirtualInterface(AllocatePublicVirtualInterfaceRequest allocatePublicVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(allocatePublicVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AllocatePublicVirtualInterfaceRequest> request = null; Response<AllocatePublicVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AllocatePublicVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(allocatePublicVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AllocatePublicVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AllocatePublicVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Associates an existing connection with a link aggregation group (LAG). The connection is interrupted and * re-established as a member of the LAG (connectivity to AWS will be interrupted). The connection must be hosted on * the same AWS Direct Connect endpoint as the LAG, and its bandwidth must match the bandwidth for the LAG. You can * reassociate a connection that's currently associated with a different LAG; however, if removing the connection * will cause the original LAG to fall below its setting for minimum number of operational connections, the request * fails. * </p> * <p> * Any virtual interfaces that are directly associated with the connection are automatically re-associated with the * LAG. If the connection was originally associated with a different LAG, the virtual interfaces remain associated * with the original LAG. * </p> * <p> * For interconnects, any hosted connections are automatically re-associated with the LAG. If the interconnect was * originally associated with a different LAG, the hosted connections remain associated with the original LAG. * </p> * * @param associateConnectionWithLagRequest * Container for the parameters to the AssociateConnectionWithLag operation. * @return Result of the AssociateConnectionWithLag operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AssociateConnectionWithLag * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociateConnectionWithLag" * target="_top">AWS API Documentation</a> */ @Override public AssociateConnectionWithLagResult associateConnectionWithLag(AssociateConnectionWithLagRequest request) { request = beforeClientExecution(request); return executeAssociateConnectionWithLag(request); } @SdkInternalApi final AssociateConnectionWithLagResult executeAssociateConnectionWithLag(AssociateConnectionWithLagRequest associateConnectionWithLagRequest) { ExecutionContext executionContext = createExecutionContext(associateConnectionWithLagRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AssociateConnectionWithLagRequest> request = null; Response<AssociateConnectionWithLagResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateConnectionWithLagRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(associateConnectionWithLagRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AssociateConnectionWithLagResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateConnectionWithLagResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Associates a hosted connection and its virtual interfaces with a link aggregation group (LAG) or interconnect. If * the target interconnect or LAG has an existing hosted connection with a conflicting VLAN number or IP address, * the operation fails. This action temporarily interrupts the hosted connection's connectivity to AWS as it is * being migrated. * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param associateHostedConnectionRequest * Container for the parameters to the AssociateHostedConnection operation. * @return Result of the AssociateHostedConnection operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AssociateHostedConnection * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociateHostedConnection" * target="_top">AWS API Documentation</a> */ @Override public AssociateHostedConnectionResult associateHostedConnection(AssociateHostedConnectionRequest request) { request = beforeClientExecution(request); return executeAssociateHostedConnection(request); } @SdkInternalApi final AssociateHostedConnectionResult executeAssociateHostedConnection(AssociateHostedConnectionRequest associateHostedConnectionRequest) { ExecutionContext executionContext = createExecutionContext(associateHostedConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AssociateHostedConnectionRequest> request = null; Response<AssociateHostedConnectionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateHostedConnectionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(associateHostedConnectionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AssociateHostedConnectionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateHostedConnectionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Associates a virtual interface with a specified link aggregation group (LAG) or connection. Connectivity to AWS * is temporarily interrupted as the virtual interface is being migrated. If the target connection or LAG has an * associated virtual interface with a conflicting VLAN number or a conflicting IP address, the operation fails. * </p> * <p> * Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must * be migrated along with their virtual interfaces using <a>AssociateHostedConnection</a>. * </p> * <p> * Hosted virtual interfaces (an interface for which the owner of the connection is not the owner of physical * connection) can only be reassociated by the owner of the physical connection. * </p> * * @param associateVirtualInterfaceRequest * Container for the parameters to the AssociateVirtualInterface operation. * @return Result of the AssociateVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.AssociateVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociateVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public AssociateVirtualInterfaceResult associateVirtualInterface(AssociateVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeAssociateVirtualInterface(request); } @SdkInternalApi final AssociateVirtualInterfaceResult executeAssociateVirtualInterface(AssociateVirtualInterfaceRequest associateVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(associateVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<AssociateVirtualInterfaceRequest> request = null; Response<AssociateVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AssociateVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(associateVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<AssociateVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AssociateVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Confirm the creation of a hosted connection on an interconnect. * </p> * <p> * Upon creation, the hosted connection is initially in the 'Ordering' state, and will remain in this state until * the owner calls ConfirmConnection to confirm creation of the hosted connection. * </p> * * @param confirmConnectionRequest * Container for the parameters to the ConfirmConnection operation. * @return Result of the ConfirmConnection operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.ConfirmConnection * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmConnection" * target="_top">AWS API Documentation</a> */ @Override public ConfirmConnectionResult confirmConnection(ConfirmConnectionRequest request) { request = beforeClientExecution(request); return executeConfirmConnection(request); } @SdkInternalApi final ConfirmConnectionResult executeConfirmConnection(ConfirmConnectionRequest confirmConnectionRequest) { ExecutionContext executionContext = createExecutionContext(confirmConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<ConfirmConnectionRequest> request = null; Response<ConfirmConnectionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ConfirmConnectionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(confirmConnectionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<ConfirmConnectionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ConfirmConnectionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Accept ownership of a private virtual interface created by another customer. * </p> * <p> * After the virtual interface owner calls this function, the virtual interface will be created and attached to the * given virtual private gateway, and will be available for handling traffic. * </p> * * @param confirmPrivateVirtualInterfaceRequest * Container for the parameters to the ConfirmPrivateVirtualInterface operation. * @return Result of the ConfirmPrivateVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.ConfirmPrivateVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmPrivateVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public ConfirmPrivateVirtualInterfaceResult confirmPrivateVirtualInterface(ConfirmPrivateVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeConfirmPrivateVirtualInterface(request); } @SdkInternalApi final ConfirmPrivateVirtualInterfaceResult executeConfirmPrivateVirtualInterface(ConfirmPrivateVirtualInterfaceRequest confirmPrivateVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(confirmPrivateVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<ConfirmPrivateVirtualInterfaceRequest> request = null; Response<ConfirmPrivateVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ConfirmPrivateVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(confirmPrivateVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<ConfirmPrivateVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ConfirmPrivateVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Accept ownership of a public virtual interface created by another customer. * </p> * <p> * After the virtual interface owner calls this function, the specified virtual interface will be created and made * available for handling traffic. * </p> * * @param confirmPublicVirtualInterfaceRequest * Container for the parameters to the ConfirmPublicVirtualInterface operation. * @return Result of the ConfirmPublicVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.ConfirmPublicVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmPublicVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public ConfirmPublicVirtualInterfaceResult confirmPublicVirtualInterface(ConfirmPublicVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeConfirmPublicVirtualInterface(request); } @SdkInternalApi final ConfirmPublicVirtualInterfaceResult executeConfirmPublicVirtualInterface(ConfirmPublicVirtualInterfaceRequest confirmPublicVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(confirmPublicVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<ConfirmPublicVirtualInterfaceRequest> request = null; Response<ConfirmPublicVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ConfirmPublicVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(confirmPublicVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<ConfirmPublicVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ConfirmPublicVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new BGP peer on a specified virtual interface. The BGP peer cannot be in the same address family * (IPv4/IPv6) of an existing BGP peer on the virtual interface. * </p> * <p> * You must create a BGP peer for the corresponding address family in order to access AWS resources that also use * that address family. * </p> * <p> * When creating a IPv6 BGP peer, the Amazon address and customer address fields must be left blank. IPv6 addresses * are automatically assigned from Amazon's pool of IPv6 addresses; you cannot specify custom IPv6 addresses. * </p> * <p> * For a public virtual interface, the Autonomous System Number (ASN) must be private or already whitelisted for the * virtual interface. * </p> * * @param createBGPPeerRequest * Container for the parameters to the CreateBGPPeer operation. * @return Result of the CreateBGPPeer operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.CreateBGPPeer * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateBGPPeer" target="_top">AWS * API Documentation</a> */ @Override public CreateBGPPeerResult createBGPPeer(CreateBGPPeerRequest request) { request = beforeClientExecution(request); return executeCreateBGPPeer(request); } @SdkInternalApi final CreateBGPPeerResult executeCreateBGPPeer(CreateBGPPeerRequest createBGPPeerRequest) { ExecutionContext executionContext = createExecutionContext(createBGPPeerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateBGPPeerRequest> request = null; Response<CreateBGPPeerResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateBGPPeerRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createBGPPeerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateBGPPeerResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateBGPPeerResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new connection between the customer network and a specific AWS Direct Connect location. * </p> * <p> * A connection links your internal network to an AWS Direct Connect location over a standard 1 gigabit or 10 * gigabit Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an AWS Direct * Connect router. An AWS Direct Connect location provides access to Amazon Web Services in the region it is * associated with. You can establish connections with AWS Direct Connect locations in multiple regions, but a * connection in one region does not provide connectivity to other regions. * </p> * <p> * You can automatically add the new connection to a link aggregation group (LAG) by specifying a LAG ID in the * request. This ensures that the new connection is allocated on the same AWS Direct Connect endpoint that hosts the * specified LAG. If there are no available ports on the endpoint, the request fails and no connection will be * created. * </p> * * @param createConnectionRequest * Container for the parameters to the CreateConnection operation. * @return Result of the CreateConnection operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.CreateConnection * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateConnection" target="_top">AWS * API Documentation</a> */ @Override public CreateConnectionResult createConnection(CreateConnectionRequest request) { request = beforeClientExecution(request); return executeCreateConnection(request); } @SdkInternalApi final CreateConnectionResult executeCreateConnection(CreateConnectionRequest createConnectionRequest) { ExecutionContext executionContext = createExecutionContext(createConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateConnectionRequest> request = null; Response<CreateConnectionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateConnectionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createConnectionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateConnectionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateConnectionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new interconnect between a AWS Direct Connect partner's network and a specific AWS Direct Connect * location. * </p> * <p> * An interconnect is a connection which is capable of hosting other connections. The AWS Direct Connect partner can * use an interconnect to provide sub-1Gbps AWS Direct Connect service to tier 2 customers who do not have their own * connections. Like a standard connection, an interconnect links the AWS Direct Connect partner's network to an AWS * Direct Connect location over a standard 1 Gbps or 10 Gbps Ethernet fiber-optic cable. One end is connected to the * partner's router, the other to an AWS Direct Connect router. * </p> * <p> * You can automatically add the new interconnect to a link aggregation group (LAG) by specifying a LAG ID in the * request. This ensures that the new interconnect is allocated on the same AWS Direct Connect endpoint that hosts * the specified LAG. If there are no available ports on the endpoint, the request fails and no interconnect will be * created. * </p> * <p> * For each end customer, the AWS Direct Connect partner provisions a connection on their interconnect by calling * AllocateConnectionOnInterconnect. The end customer can then connect to AWS resources by creating a virtual * interface on their connection, using the VLAN assigned to them by the AWS Direct Connect partner. * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param createInterconnectRequest * Container for the parameters to the CreateInterconnect operation. * @return Result of the CreateInterconnect operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.CreateInterconnect * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateInterconnect" * target="_top">AWS API Documentation</a> */ @Override public CreateInterconnectResult createInterconnect(CreateInterconnectRequest request) { request = beforeClientExecution(request); return executeCreateInterconnect(request); } @SdkInternalApi final CreateInterconnectResult executeCreateInterconnect(CreateInterconnectRequest createInterconnectRequest) { ExecutionContext executionContext = createExecutionContext(createInterconnectRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateInterconnectRequest> request = null; Response<CreateInterconnectResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateInterconnectRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createInterconnectRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateInterconnectResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateInterconnectResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new link aggregation group (LAG) with the specified number of bundled physical connections between the * customer network and a specific AWS Direct Connect location. A LAG is a logical interface that uses the Link * Aggregation Control Protocol (LACP) to aggregate multiple 1 gigabit or 10 gigabit interfaces, allowing you to * treat them as a single interface. * </p> * <p> * All connections in a LAG must use the same bandwidth (for example, 10 Gbps), and must terminate at the same AWS * Direct Connect endpoint. * </p> * <p> * You can have up to 10 connections per LAG. Regardless of this limit, if you request more connections for the LAG * than AWS Direct Connect can allocate on a single endpoint, no LAG is created. * </p> * <p> * You can specify an existing physical connection or interconnect to include in the LAG (which counts towards the * total number of connections). Doing so interrupts the current physical connection or hosted connections, and * re-establishes them as a member of the LAG. The LAG will be created on the same AWS Direct Connect endpoint to * which the connection terminates. Any virtual interfaces associated with the connection are automatically * disassociated and re-associated with the LAG. The connection ID does not change. * </p> * <p> * If the AWS account used to create a LAG is a registered AWS Direct Connect partner, the LAG is automatically * enabled to host sub-connections. For a LAG owned by a partner, any associated virtual interfaces cannot be * directly configured. * </p> * * @param createLagRequest * Container for the parameters to the CreateLag operation. * @return Result of the CreateLag operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.CreateLag * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateLag" target="_top">AWS API * Documentation</a> */ @Override public CreateLagResult createLag(CreateLagRequest request) { request = beforeClientExecution(request); return executeCreateLag(request); } @SdkInternalApi final CreateLagResult executeCreateLag(CreateLagRequest createLagRequest) { ExecutionContext executionContext = createExecutionContext(createLagRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreateLagRequest> request = null; Response<CreateLagResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateLagRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createLagRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreateLagResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateLagResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new private virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect * traffic. A private virtual interface supports sending traffic to a single virtual private cloud (VPC). * </p> * * @param createPrivateVirtualInterfaceRequest * Container for the parameters to the CreatePrivateVirtualInterface operation. * @return Result of the CreatePrivateVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.CreatePrivateVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreatePrivateVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public CreatePrivateVirtualInterfaceResult createPrivateVirtualInterface(CreatePrivateVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeCreatePrivateVirtualInterface(request); } @SdkInternalApi final CreatePrivateVirtualInterfaceResult executeCreatePrivateVirtualInterface(CreatePrivateVirtualInterfaceRequest createPrivateVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(createPrivateVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreatePrivateVirtualInterfaceRequest> request = null; Response<CreatePrivateVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreatePrivateVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createPrivateVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreatePrivateVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreatePrivateVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Creates a new public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect * traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon Simple * Storage Service (Amazon S3). * </p> * <p> * When creating an IPv6 public virtual interface (addressFamily is 'ipv6'), the customer and amazon address fields * should be left blank to use auto-assigned IPv6 space. Custom IPv6 Addresses are currently not supported. * </p> * * @param createPublicVirtualInterfaceRequest * Container for the parameters to the CreatePublicVirtualInterface operation. * @return Result of the CreatePublicVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.CreatePublicVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreatePublicVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public CreatePublicVirtualInterfaceResult createPublicVirtualInterface(CreatePublicVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeCreatePublicVirtualInterface(request); } @SdkInternalApi final CreatePublicVirtualInterfaceResult executeCreatePublicVirtualInterface(CreatePublicVirtualInterfaceRequest createPublicVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(createPublicVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<CreatePublicVirtualInterfaceRequest> request = null; Response<CreatePublicVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreatePublicVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createPublicVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<CreatePublicVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreatePublicVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes a BGP peer on the specified virtual interface that matches the specified customer address and ASN. You * cannot delete the last BGP peer from a virtual interface. * </p> * * @param deleteBGPPeerRequest * Container for the parameters to the DeleteBGPPeer operation. * @return Result of the DeleteBGPPeer operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DeleteBGPPeer * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteBGPPeer" target="_top">AWS * API Documentation</a> */ @Override public DeleteBGPPeerResult deleteBGPPeer(DeleteBGPPeerRequest request) { request = beforeClientExecution(request); return executeDeleteBGPPeer(request); } @SdkInternalApi final DeleteBGPPeerResult executeDeleteBGPPeer(DeleteBGPPeerRequest deleteBGPPeerRequest) { ExecutionContext executionContext = createExecutionContext(deleteBGPPeerRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteBGPPeerRequest> request = null; Response<DeleteBGPPeerResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteBGPPeerRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteBGPPeerRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteBGPPeerResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteBGPPeerResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes the connection. * </p> * <p> * Deleting a connection only stops the AWS Direct Connect port hour and data transfer charges. You need to cancel * separately with the providers any services or charges for cross-connects or network circuits that connect you to * the AWS Direct Connect location. * </p> * * @param deleteConnectionRequest * Container for the parameters to the DeleteConnection operation. * @return Result of the DeleteConnection operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DeleteConnection * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteConnection" target="_top">AWS * API Documentation</a> */ @Override public DeleteConnectionResult deleteConnection(DeleteConnectionRequest request) { request = beforeClientExecution(request); return executeDeleteConnection(request); } @SdkInternalApi final DeleteConnectionResult executeDeleteConnection(DeleteConnectionRequest deleteConnectionRequest) { ExecutionContext executionContext = createExecutionContext(deleteConnectionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteConnectionRequest> request = null; Response<DeleteConnectionResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteConnectionRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteConnectionRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteConnectionResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConnectionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes the specified interconnect. * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param deleteInterconnectRequest * Container for the parameters to the DeleteInterconnect operation. * @return Result of the DeleteInterconnect operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DeleteInterconnect * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteInterconnect" * target="_top">AWS API Documentation</a> */ @Override public DeleteInterconnectResult deleteInterconnect(DeleteInterconnectRequest request) { request = beforeClientExecution(request); return executeDeleteInterconnect(request); } @SdkInternalApi final DeleteInterconnectResult executeDeleteInterconnect(DeleteInterconnectRequest deleteInterconnectRequest) { ExecutionContext executionContext = createExecutionContext(deleteInterconnectRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteInterconnectRequest> request = null; Response<DeleteInterconnectResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteInterconnectRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteInterconnectRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteInterconnectResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteInterconnectResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes a link aggregation group (LAG). You cannot delete a LAG if it has active virtual interfaces or hosted * connections. * </p> * * @param deleteLagRequest * Container for the parameters to the DeleteLag operation. * @return Result of the DeleteLag operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DeleteLag * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteLag" target="_top">AWS API * Documentation</a> */ @Override public DeleteLagResult deleteLag(DeleteLagRequest request) { request = beforeClientExecution(request); return executeDeleteLag(request); } @SdkInternalApi final DeleteLagResult executeDeleteLag(DeleteLagRequest deleteLagRequest) { ExecutionContext executionContext = createExecutionContext(deleteLagRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteLagRequest> request = null; Response<DeleteLagResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteLagRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteLagRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteLagResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteLagResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deletes a virtual interface. * </p> * * @param deleteVirtualInterfaceRequest * Container for the parameters to the DeleteVirtualInterface operation. * @return Result of the DeleteVirtualInterface operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DeleteVirtualInterface * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteVirtualInterface" * target="_top">AWS API Documentation</a> */ @Override public DeleteVirtualInterfaceResult deleteVirtualInterface(DeleteVirtualInterfaceRequest request) { request = beforeClientExecution(request); return executeDeleteVirtualInterface(request); } @SdkInternalApi final DeleteVirtualInterfaceResult executeDeleteVirtualInterface(DeleteVirtualInterfaceRequest deleteVirtualInterfaceRequest) { ExecutionContext executionContext = createExecutionContext(deleteVirtualInterfaceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DeleteVirtualInterfaceRequest> request = null; Response<DeleteVirtualInterfaceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteVirtualInterfaceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteVirtualInterfaceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DeleteVirtualInterfaceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteVirtualInterfaceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deprecated in favor of <a>DescribeLoa</a>. * </p> * <p> * Returns the LOA-CFA for a Connection. * </p> * <p> * The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that your APN partner or * service provider uses when establishing your cross connect to AWS at the colocation facility. For more * information, see <a href="http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html">Requesting * Cross Connects at AWS Direct Connect Locations</a> in the AWS Direct Connect user guide. * </p> * * @param describeConnectionLoaRequest * Container for the parameters to the DescribeConnectionLoa operation. * @return Result of the DescribeConnectionLoa operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeConnectionLoa * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnectionLoa" * target="_top">AWS API Documentation</a> */ @Override @Deprecated public DescribeConnectionLoaResult describeConnectionLoa(DescribeConnectionLoaRequest request) { request = beforeClientExecution(request); return executeDescribeConnectionLoa(request); } @SdkInternalApi final DescribeConnectionLoaResult executeDescribeConnectionLoa(DescribeConnectionLoaRequest describeConnectionLoaRequest) { ExecutionContext executionContext = createExecutionContext(describeConnectionLoaRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeConnectionLoaRequest> request = null; Response<DescribeConnectionLoaResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConnectionLoaRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeConnectionLoaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeConnectionLoaResult>> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConnectionLoaResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Displays all connections in this region. * </p> * <p> * If a connection ID is provided, the call returns only that particular connection. * </p> * * @param describeConnectionsRequest * Container for the parameters to the DescribeConnections operation. * @return Result of the DescribeConnections operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeConnections * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnections" * target="_top">AWS API Documentation</a> */ @Override public DescribeConnectionsResult describeConnections(DescribeConnectionsRequest request) { request = beforeClientExecution(request); return executeDescribeConnections(request); } @SdkInternalApi final DescribeConnectionsResult executeDescribeConnections(DescribeConnectionsRequest describeConnectionsRequest) { ExecutionContext executionContext = createExecutionContext(describeConnectionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeConnectionsRequest> request = null; Response<DescribeConnectionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConnectionsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeConnectionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeConnectionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConnectionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeConnectionsResult describeConnections() { return describeConnections(new DescribeConnectionsRequest()); } /** * <p> * Deprecated in favor of <a>DescribeHostedConnections</a>. * </p> * <p> * Returns a list of connections that have been provisioned on the given interconnect. * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param describeConnectionsOnInterconnectRequest * Container for the parameters to the DescribeConnectionsOnInterconnect operation. * @return Result of the DescribeConnectionsOnInterconnect operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeConnectionsOnInterconnect * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnectionsOnInterconnect" * target="_top">AWS API Documentation</a> */ @Override @Deprecated public DescribeConnectionsOnInterconnectResult describeConnectionsOnInterconnect(DescribeConnectionsOnInterconnectRequest request) { request = beforeClientExecution(request); return executeDescribeConnectionsOnInterconnect(request); } @SdkInternalApi final DescribeConnectionsOnInterconnectResult executeDescribeConnectionsOnInterconnect( DescribeConnectionsOnInterconnectRequest describeConnectionsOnInterconnectRequest) { ExecutionContext executionContext = createExecutionContext(describeConnectionsOnInterconnectRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeConnectionsOnInterconnectRequest> request = null; Response<DescribeConnectionsOnInterconnectResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeConnectionsOnInterconnectRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeConnectionsOnInterconnectRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeConnectionsOnInterconnectResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeConnectionsOnInterconnectResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Returns a list of hosted connections that have been provisioned on the given interconnect or link aggregation * group (LAG). * </p> * <note> * <p> * This is intended for use by AWS Direct Connect partners only. * </p> * </note> * * @param describeHostedConnectionsRequest * Container for the parameters to the DescribeHostedConnections operation. * @return Result of the DescribeHostedConnections operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeHostedConnections * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeHostedConnections" * target="_top">AWS API Documentation</a> */ @Override public DescribeHostedConnectionsResult describeHostedConnections(DescribeHostedConnectionsRequest request) { request = beforeClientExecution(request); return executeDescribeHostedConnections(request); } @SdkInternalApi final DescribeHostedConnectionsResult executeDescribeHostedConnections(DescribeHostedConnectionsRequest describeHostedConnectionsRequest) { ExecutionContext executionContext = createExecutionContext(describeHostedConnectionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeHostedConnectionsRequest> request = null; Response<DescribeHostedConnectionsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeHostedConnectionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeHostedConnectionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeHostedConnectionsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeHostedConnectionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Deprecated in favor of <a>DescribeLoa</a>. * </p> * <p> * Returns the LOA-CFA for an Interconnect. * </p> * <p> * The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that is used when * establishing your cross connect to AWS at the colocation facility. For more information, see <a * href="http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html">Requesting Cross Connects at AWS * Direct Connect Locations</a> in the AWS Direct Connect user guide. * </p> * * @param describeInterconnectLoaRequest * Container for the parameters to the DescribeInterconnectLoa operation. * @return Result of the DescribeInterconnectLoa operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeInterconnectLoa * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeInterconnectLoa" * target="_top">AWS API Documentation</a> */ @Override @Deprecated public DescribeInterconnectLoaResult describeInterconnectLoa(DescribeInterconnectLoaRequest request) { request = beforeClientExecution(request); return executeDescribeInterconnectLoa(request); } @SdkInternalApi final DescribeInterconnectLoaResult executeDescribeInterconnectLoa(DescribeInterconnectLoaRequest describeInterconnectLoaRequest) { ExecutionContext executionContext = createExecutionContext(describeInterconnectLoaRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeInterconnectLoaRequest> request = null; Response<DescribeInterconnectLoaResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeInterconnectLoaRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeInterconnectLoaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeInterconnectLoaResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeInterconnectLoaResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Returns a list of interconnects owned by the AWS account. * </p> * <p> * If an interconnect ID is provided, it will only return this particular interconnect. * </p> * * @param describeInterconnectsRequest * Container for the parameters to the DescribeInterconnects operation. * @return Result of the DescribeInterconnects operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeInterconnects * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeInterconnects" * target="_top">AWS API Documentation</a> */ @Override public DescribeInterconnectsResult describeInterconnects(DescribeInterconnectsRequest request) { request = beforeClientExecution(request); return executeDescribeInterconnects(request); } @SdkInternalApi final DescribeInterconnectsResult executeDescribeInterconnects(DescribeInterconnectsRequest describeInterconnectsRequest) { ExecutionContext executionContext = createExecutionContext(describeInterconnectsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeInterconnectsRequest> request = null; Response<DescribeInterconnectsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeInterconnectsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeInterconnectsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeInterconnectsResult>> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeInterconnectsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeInterconnectsResult describeInterconnects() { return describeInterconnects(new DescribeInterconnectsRequest()); } /** * <p> * Describes the link aggregation groups (LAGs) in your account. * </p> * <p> * If a LAG ID is provided, only information about the specified LAG is returned. * </p> * * @param describeLagsRequest * Container for the parameters to the DescribeLags operation. * @return Result of the DescribeLags operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeLags * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeLags" target="_top">AWS API * Documentation</a> */ @Override public DescribeLagsResult describeLags(DescribeLagsRequest request) { request = beforeClientExecution(request); return executeDescribeLags(request); } @SdkInternalApi final DescribeLagsResult executeDescribeLags(DescribeLagsRequest describeLagsRequest) { ExecutionContext executionContext = createExecutionContext(describeLagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeLagsRequest> request = null; Response<DescribeLagsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLagsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeLagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeLagsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeLagsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Returns the LOA-CFA for a connection, interconnect, or link aggregation group (LAG). * </p> * <p> * The Letter of Authorization - Connecting Facility Assignment (LOA-CFA) is a document that is used when * establishing your cross connect to AWS at the colocation facility. For more information, see <a * href="http://docs.aws.amazon.com/directconnect/latest/UserGuide/Colocation.html">Requesting Cross Connects at AWS * Direct Connect Locations</a> in the AWS Direct Connect user guide. * </p> * * @param describeLoaRequest * Container for the parameters to the DescribeLoa operation. * @return Result of the DescribeLoa operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeLoa * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeLoa" target="_top">AWS API * Documentation</a> */ @Override public DescribeLoaResult describeLoa(DescribeLoaRequest request) { request = beforeClientExecution(request); return executeDescribeLoa(request); } @SdkInternalApi final DescribeLoaResult executeDescribeLoa(DescribeLoaRequest describeLoaRequest) { ExecutionContext executionContext = createExecutionContext(describeLoaRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeLoaRequest> request = null; Response<DescribeLoaResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLoaRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeLoaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeLoaResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeLoaResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Returns the list of AWS Direct Connect locations in the current AWS region. These are the locations that may be * selected when calling CreateConnection or CreateInterconnect. * </p> * * @param describeLocationsRequest * @return Result of the DescribeLocations operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeLocations * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeLocations" * target="_top">AWS API Documentation</a> */ @Override public DescribeLocationsResult describeLocations(DescribeLocationsRequest request) { request = beforeClientExecution(request); return executeDescribeLocations(request); } @SdkInternalApi final DescribeLocationsResult executeDescribeLocations(DescribeLocationsRequest describeLocationsRequest) { ExecutionContext executionContext = createExecutionContext(describeLocationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeLocationsRequest> request = null; Response<DescribeLocationsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeLocationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeLocationsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeLocationsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeLocationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeLocationsResult describeLocations() { return describeLocations(new DescribeLocationsRequest()); } /** * <p> * Describes the tags associated with the specified Direct Connect resources. * </p> * * @param describeTagsRequest * Container for the parameters to the DescribeTags operation. * @return Result of the DescribeTags operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeTags * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeTags" target="_top">AWS API * Documentation</a> */ @Override public DescribeTagsResult describeTags(DescribeTagsRequest request) { request = beforeClientExecution(request); return executeDescribeTags(request); } @SdkInternalApi final DescribeTagsResult executeDescribeTags(DescribeTagsRequest describeTagsRequest) { ExecutionContext executionContext = createExecutionContext(describeTagsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeTagsRequest> request = null; Response<DescribeTagsResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeTagsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeTagsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeTagsResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeTagsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Returns a list of virtual private gateways owned by the AWS account. * </p> * <p> * You can create one or more AWS Direct Connect private virtual interfaces linking to a virtual private gateway. A * virtual private gateway can be managed via Amazon Virtual Private Cloud (VPC) console or the <a * href="http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVpnGateway.html">EC2 * CreateVpnGateway</a> action. * </p> * * @param describeVirtualGatewaysRequest * @return Result of the DescribeVirtualGateways operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeVirtualGateways * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeVirtualGateways" * target="_top">AWS API Documentation</a> */ @Override public DescribeVirtualGatewaysResult describeVirtualGateways(DescribeVirtualGatewaysRequest request) { request = beforeClientExecution(request); return executeDescribeVirtualGateways(request); } @SdkInternalApi final DescribeVirtualGatewaysResult executeDescribeVirtualGateways(DescribeVirtualGatewaysRequest describeVirtualGatewaysRequest) { ExecutionContext executionContext = createExecutionContext(describeVirtualGatewaysRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeVirtualGatewaysRequest> request = null; Response<DescribeVirtualGatewaysResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeVirtualGatewaysRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeVirtualGatewaysRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeVirtualGatewaysResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeVirtualGatewaysResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVirtualGatewaysResult describeVirtualGateways() { return describeVirtualGateways(new DescribeVirtualGatewaysRequest()); } /** * <p> * Displays all virtual interfaces for an AWS account. Virtual interfaces deleted fewer than 15 minutes before you * make the request are also returned. If you specify a connection ID, only the virtual interfaces associated with * the connection are returned. If you specify a virtual interface ID, then only a single virtual interface is * returned. * </p> * <p> * A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer. * </p> * * @param describeVirtualInterfacesRequest * Container for the parameters to the DescribeVirtualInterfaces operation. * @return Result of the DescribeVirtualInterfaces operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DescribeVirtualInterfaces * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeVirtualInterfaces" * target="_top">AWS API Documentation</a> */ @Override public DescribeVirtualInterfacesResult describeVirtualInterfaces(DescribeVirtualInterfacesRequest request) { request = beforeClientExecution(request); return executeDescribeVirtualInterfaces(request); } @SdkInternalApi final DescribeVirtualInterfacesResult executeDescribeVirtualInterfaces(DescribeVirtualInterfacesRequest describeVirtualInterfacesRequest) { ExecutionContext executionContext = createExecutionContext(describeVirtualInterfacesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DescribeVirtualInterfacesRequest> request = null; Response<DescribeVirtualInterfacesResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeVirtualInterfacesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(describeVirtualInterfacesRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DescribeVirtualInterfacesResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeVirtualInterfacesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } @Override public DescribeVirtualInterfacesResult describeVirtualInterfaces() { return describeVirtualInterfaces(new DescribeVirtualInterfacesRequest()); } /** * <p> * Disassociates a connection from a link aggregation group (LAG). The connection is interrupted and re-established * as a standalone connection (the connection is not deleted; to delete the connection, use the * <a>DeleteConnection</a> request). If the LAG has associated virtual interfaces or hosted connections, they remain * associated with the LAG. A disassociated connection owned by an AWS Direct Connect partner is automatically * converted to an interconnect. * </p> * <p> * If disassociating the connection will cause the LAG to fall below its setting for minimum number of operational * connections, the request fails, except when it's the last member of the LAG. If all connections are * disassociated, the LAG continues to exist as an empty LAG with no physical connections. * </p> * * @param disassociateConnectionFromLagRequest * Container for the parameters to the DisassociateConnectionFromLag operation. * @return Result of the DisassociateConnectionFromLag operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.DisassociateConnectionFromLag * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DisassociateConnectionFromLag" * target="_top">AWS API Documentation</a> */ @Override public DisassociateConnectionFromLagResult disassociateConnectionFromLag(DisassociateConnectionFromLagRequest request) { request = beforeClientExecution(request); return executeDisassociateConnectionFromLag(request); } @SdkInternalApi final DisassociateConnectionFromLagResult executeDisassociateConnectionFromLag(DisassociateConnectionFromLagRequest disassociateConnectionFromLagRequest) { ExecutionContext executionContext = createExecutionContext(disassociateConnectionFromLagRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<DisassociateConnectionFromLagRequest> request = null; Response<DisassociateConnectionFromLagResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DisassociateConnectionFromLagRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(disassociateConnectionFromLagRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<DisassociateConnectionFromLagResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DisassociateConnectionFromLagResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Adds the specified tags to the specified Direct Connect resource. Each Direct Connect resource can have a maximum * of 50 tags. * </p> * <p> * Each tag consists of a key and an optional value. If a tag with the same key is already associated with the * Direct Connect resource, this action updates its value. * </p> * * @param tagResourceRequest * Container for the parameters to the TagResource operation. * @return Result of the TagResource operation returned by the service. * @throws DuplicateTagKeysException * A tag key was specified more than once. * @throws TooManyTagsException * You have reached the limit on the number of tags that can be assigned to a Direct Connect resource. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.TagResource * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/TagResource" target="_top">AWS API * Documentation</a> */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<TagResourceRequest> request = null; Response<TagResourceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<TagResourceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Removes one or more tags from the specified Direct Connect resource. * </p> * * @param untagResourceRequest * Container for the parameters to the UntagResource operation. * @return Result of the UntagResource operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.UntagResource * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/UntagResource" target="_top">AWS * API Documentation</a> */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<UntagResourceRequest> request = null; Response<UntagResourceResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<UntagResourceResult>> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * <p> * Updates the attributes of a link aggregation group (LAG). * </p> * <p> * You can update the following attributes: * </p> * <ul> * <li> * <p> * The name of the LAG. * </p> * </li> * <li> * <p> * The value for the minimum number of connections that must be operational for the LAG itself to be operational. * </p> * </li> * </ul> * <p> * When you create a LAG, the default value for the minimum number of operational connections is zero (0). If you * update this value, and the number of operational connections falls below the specified value, the LAG will * automatically go down to avoid overutilization of the remaining connections. Adjusting this value should be done * with care as it could force the LAG down if the value is set higher than the current number of operational * connections. * </p> * * @param updateLagRequest * Container for the parameters to the UpdateLag operation. * @return Result of the UpdateLag operation returned by the service. * @throws DirectConnectServerException * A server-side error occurred during the API call. The error message will contain additional details about * the cause. * @throws DirectConnectClientException * The API was called with invalid parameters. The error message will contain additional details about the * cause. * @sample AmazonDirectConnect.UpdateLag * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/UpdateLag" target="_top">AWS API * Documentation</a> */ @Override public UpdateLagResult updateLag(UpdateLagRequest request) { request = beforeClientExecution(request); return executeUpdateLag(request); } @SdkInternalApi final UpdateLagResult executeUpdateLag(UpdateLagRequest updateLagRequest) { ExecutionContext executionContext = createExecutionContext(updateLagRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request<UpdateLagRequest> request = null; Response<UpdateLagResult> response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateLagRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateLagRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler<AmazonWebServiceResponse<UpdateLagResult>> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateLagResultJsonUnmarshaller()); 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); } }