com.amazonaws.services.directconnect.AmazonDirectConnectClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-directconnect Show documentation
/*
* 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.
*
*
* 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).
*
*/
@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 static 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:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @see DefaultAWSCredentialsProviderChain
* @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:
*
* - Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
* - Java System Properties - aws.accessKeyId and aws.secretKey
* - Instance profile credentials delivered through the Amazon EC2 metadata service
*
*
*
* All service calls made using this new client object are blocking, and will not return until the service call
* completes.
*
* @param clientConfiguration
* The client configuration options controlling how this client connects to 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.
*
*
* 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.
*
*
* 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.
*
*
* 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.
*
*
* 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.
*
*
* 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.
*
*
* 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());
}
/**
*
* Deprecated in favor of AllocateHostedConnection.
*
*
* Creates a hosted connection on an interconnect.
*
*
* Allocates a VLAN number and a specified amount of bandwidth for use by a hosted connection on the given
* interconnect.
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AllocateConnectionOnInterconnectResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a hosted connection on an interconnect or a link aggregation group (LAG).
*
*
* Allocates a VLAN number and a specified amount of bandwidth for use by a hosted connection on the given
* interconnect or LAG.
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AllocateHostedConnectionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Provisions a private virtual interface to be owned by another AWS customer.
*
*
* Virtual interfaces created using this action must be confirmed by the virtual interface owner by using the
* ConfirmPrivateVirtualInterface action. Until then, the virtual interface will be in 'Confirming' state,
* and will not be available for handling traffic.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AllocatePrivateVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Provisions a public virtual interface to be owned by a different customer.
*
*
* The owner of a connection calls this function to provision a public virtual interface which will be owned by
* another AWS customer.
*
*
* 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.
*
*
* 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.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AllocatePublicVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
* 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.
*
*
* 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.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AssociateConnectionWithLagResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AssociateHostedConnectionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
* Virtual interfaces associated with a hosted connection cannot be associated with a LAG; hosted connections must
* be migrated along with their virtual interfaces using AssociateHostedConnection.
*
*
* In order to reassociate a virtual interface to a new connection or LAG, the requester must own either the virtual
* interface itself or the connection to which the virtual interface is currently associated. Additionally, the
* requester must own the connection or LAG to which the virtual interface will be newly associated.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new AssociateVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Confirm the creation of a hosted connection on an interconnect.
*
*
* 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.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ConfirmConnectionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Accept ownership of a private virtual interface created by another customer.
*
*
* After the virtual interface owner calls this function, the virtual interface will be created and attached to the
* given virtual private gateway or direct connect gateway, and will be available for handling traffic.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ConfirmPrivateVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Accept ownership of a public virtual interface created by another customer.
*
*
* After the virtual interface owner calls this function, the specified virtual interface will be created and made
* available for handling traffic.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new ConfirmPublicVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
* You must create a BGP peer for the corresponding address family in order to access AWS resources that also use
* that address family.
*
*
* 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.
*
*
* For a public virtual interface, the Autonomous System Number (ASN) must be private or already whitelisted for the
* virtual interface.
*
*
* @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 AWS
* API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateBGPPeerResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new connection between the customer network and a specific AWS Direct Connect location.
*
*
* 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.
*
*
* To find the locations for your region, use DescribeLocations.
*
*
* 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.
*
*
* @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 AWS
* API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateConnectionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new direct connect gateway. A direct connect gateway is an intermediate object that enables you to
* connect a set of virtual interfaces and virtual private gateways. direct connect gateways are global and visible
* in any AWS region after they are created. The virtual interfaces and virtual private gateways that are connected
* through a direct connect gateway can be in different regions. This enables you to connect to a VPC in any region,
* regardless of the region in which the virtual interfaces are located, and pass traffic between them.
*
*
* @param createDirectConnectGatewayRequest
* Container for the parameters to the CreateDirectConnectGateway operation.
* @return Result of the CreateDirectConnectGateway 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.CreateDirectConnectGateway
* @see AWS API Documentation
*/
@Override
public CreateDirectConnectGatewayResult createDirectConnectGateway(CreateDirectConnectGatewayRequest request) {
request = beforeClientExecution(request);
return executeCreateDirectConnectGateway(request);
}
@SdkInternalApi
final CreateDirectConnectGatewayResult executeCreateDirectConnectGateway(CreateDirectConnectGatewayRequest createDirectConnectGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(createDirectConnectGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDirectConnectGatewayRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(createDirectConnectGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateDirectConnectGatewayResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates an association between a direct connect gateway and a virtual private gateway (VGW). The VGW must be
* attached to a VPC and must not be associated with another direct connect gateway.
*
*
* @param createDirectConnectGatewayAssociationRequest
* Container for the parameters to the CreateDirectConnectGatewayAssociation operation.
* @return Result of the CreateDirectConnectGatewayAssociation 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.CreateDirectConnectGatewayAssociation
* @see AWS API Documentation
*/
@Override
public CreateDirectConnectGatewayAssociationResult createDirectConnectGatewayAssociation(CreateDirectConnectGatewayAssociationRequest request) {
request = beforeClientExecution(request);
return executeCreateDirectConnectGatewayAssociation(request);
}
@SdkInternalApi
final CreateDirectConnectGatewayAssociationResult executeCreateDirectConnectGatewayAssociation(
CreateDirectConnectGatewayAssociationRequest createDirectConnectGatewayAssociationRequest) {
ExecutionContext executionContext = createExecutionContext(createDirectConnectGatewayAssociationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new CreateDirectConnectGatewayAssociationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(createDirectConnectGatewayAssociationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreateDirectConnectGatewayAssociationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Creates a new interconnect between a AWS Direct Connect partner's network and a specific AWS Direct Connect
* location.
*
*
* 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.
*
*
* 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.
*
*
* 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.
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateInterconnectResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
* All connections in a LAG must use the same bandwidth (for example, 10 Gbps), and must terminate at the same AWS
* Direct Connect endpoint.
*
*
* 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.
*
*
* 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.
*
*
* 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.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata()
.withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateLagResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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).
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreatePrivateVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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).
*
*
* 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.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new CreatePublicVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
* @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 AWS
* API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteBGPPeerResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the connection.
*
*
* 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.
*
*
* @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 AWS
* API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteConnectionResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a direct connect gateway. You must first delete all virtual interfaces that are attached to the direct
* connect gateway and disassociate all virtual private gateways that are associated with the direct connect
* gateway.
*
*
* @param deleteDirectConnectGatewayRequest
* Container for the parameters to the DeleteDirectConnectGateway operation.
* @return Result of the DeleteDirectConnectGateway 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.DeleteDirectConnectGateway
* @see AWS API Documentation
*/
@Override
public DeleteDirectConnectGatewayResult deleteDirectConnectGateway(DeleteDirectConnectGatewayRequest request) {
request = beforeClientExecution(request);
return executeDeleteDirectConnectGateway(request);
}
@SdkInternalApi
final DeleteDirectConnectGatewayResult executeDeleteDirectConnectGateway(DeleteDirectConnectGatewayRequest deleteDirectConnectGatewayRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDirectConnectGatewayRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDirectConnectGatewayRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(deleteDirectConnectGatewayRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteDirectConnectGatewayResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the association between a direct connect gateway and a virtual private gateway.
*
*
* @param deleteDirectConnectGatewayAssociationRequest
* Container for the parameters to the DeleteDirectConnectGatewayAssociation operation.
* @return Result of the DeleteDirectConnectGatewayAssociation 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.DeleteDirectConnectGatewayAssociation
* @see AWS API Documentation
*/
@Override
public DeleteDirectConnectGatewayAssociationResult deleteDirectConnectGatewayAssociation(DeleteDirectConnectGatewayAssociationRequest request) {
request = beforeClientExecution(request);
return executeDeleteDirectConnectGatewayAssociation(request);
}
@SdkInternalApi
final DeleteDirectConnectGatewayAssociationResult executeDeleteDirectConnectGatewayAssociation(
DeleteDirectConnectGatewayAssociationRequest deleteDirectConnectGatewayAssociationRequest) {
ExecutionContext executionContext = createExecutionContext(deleteDirectConnectGatewayAssociationRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DeleteDirectConnectGatewayAssociationRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(deleteDirectConnectGatewayAssociationRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteDirectConnectGatewayAssociationResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes the specified interconnect.
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteInterconnectResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a link aggregation group (LAG). You cannot delete a LAG if it has active virtual interfaces or hosted
* connections.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata()
.withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteLagResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deletes a virtual interface.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DeleteVirtualInterfaceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deprecated in favor of DescribeLoa.
*
*
* Returns the LOA-CFA for a Connection.
*
*
* 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 Requesting
* Cross Connects at AWS Direct Connect Locations in the AWS Direct Connect user guide.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeConnectionLoaResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Displays all connections in this region.
*
*
* If a connection ID is provided, the call returns only that particular connection.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> 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());
}
/**
*
* Deprecated in favor of DescribeHostedConnections.
*
*
* Returns a list of connections that have been provisioned on the given interconnect.
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeConnectionsOnInterconnectResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of all direct connect gateway and virtual private gateway (VGW) associations. Either a direct
* connect gateway ID or a VGW ID must be provided in the request. If a direct connect gateway ID is provided, the
* response returns all VGWs associated with the direct connect gateway. If a VGW ID is provided, the response
* returns all direct connect gateways associated with the VGW. If both are provided, the response only returns the
* association that matches both the direct connect gateway and the VGW.
*
*
* @param describeDirectConnectGatewayAssociationsRequest
* Container for the parameters to the DescribeDirectConnectGatewayAssociations operation.
* @return Result of the DescribeDirectConnectGatewayAssociations 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.DescribeDirectConnectGatewayAssociations
* @see AWS API Documentation
*/
@Override
public DescribeDirectConnectGatewayAssociationsResult describeDirectConnectGatewayAssociations(DescribeDirectConnectGatewayAssociationsRequest request) {
request = beforeClientExecution(request);
return executeDescribeDirectConnectGatewayAssociations(request);
}
@SdkInternalApi
final DescribeDirectConnectGatewayAssociationsResult executeDescribeDirectConnectGatewayAssociations(
DescribeDirectConnectGatewayAssociationsRequest describeDirectConnectGatewayAssociationsRequest) {
ExecutionContext executionContext = createExecutionContext(describeDirectConnectGatewayAssociationsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDirectConnectGatewayAssociationsRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(describeDirectConnectGatewayAssociationsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeDirectConnectGatewayAssociationsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of all direct connect gateway and virtual interface (VIF) attachments. Either a direct connect
* gateway ID or a VIF ID must be provided in the request. If a direct connect gateway ID is provided, the response
* returns all VIFs attached to the direct connect gateway. If a VIF ID is provided, the response returns all direct
* connect gateways attached to the VIF. If both are provided, the response only returns the attachment that matches
* both the direct connect gateway and the VIF.
*
*
* @param describeDirectConnectGatewayAttachmentsRequest
* Container for the parameters to the DescribeDirectConnectGatewayAttachments operation.
* @return Result of the DescribeDirectConnectGatewayAttachments 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.DescribeDirectConnectGatewayAttachments
* @see AWS API Documentation
*/
@Override
public DescribeDirectConnectGatewayAttachmentsResult describeDirectConnectGatewayAttachments(DescribeDirectConnectGatewayAttachmentsRequest request) {
request = beforeClientExecution(request);
return executeDescribeDirectConnectGatewayAttachments(request);
}
@SdkInternalApi
final DescribeDirectConnectGatewayAttachmentsResult executeDescribeDirectConnectGatewayAttachments(
DescribeDirectConnectGatewayAttachmentsRequest describeDirectConnectGatewayAttachmentsRequest) {
ExecutionContext executionContext = createExecutionContext(describeDirectConnectGatewayAttachmentsRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDirectConnectGatewayAttachmentsRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(describeDirectConnectGatewayAttachmentsRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory
.createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeDirectConnectGatewayAttachmentsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of direct connect gateways in your account. Deleted direct connect gateways are not returned. You
* can provide a direct connect gateway ID in the request to return information about the specific direct connect
* gateway only. Otherwise, if a direct connect gateway ID is not provided, information about all of your direct
* connect gateways is returned.
*
*
* @param describeDirectConnectGatewaysRequest
* Container for the parameters to the DescribeDirectConnectGateways operation.
* @return Result of the DescribeDirectConnectGateways 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.DescribeDirectConnectGateways
* @see AWS API Documentation
*/
@Override
public DescribeDirectConnectGatewaysResult describeDirectConnectGateways(DescribeDirectConnectGatewaysRequest request) {
request = beforeClientExecution(request);
return executeDescribeDirectConnectGateways(request);
}
@SdkInternalApi
final DescribeDirectConnectGatewaysResult executeDescribeDirectConnectGateways(DescribeDirectConnectGatewaysRequest describeDirectConnectGatewaysRequest) {
ExecutionContext executionContext = createExecutionContext(describeDirectConnectGatewaysRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request request = null;
Response response = null;
try {
awsRequestMetrics.startEvent(Field.RequestMarshallTime);
try {
request = new DescribeDirectConnectGatewaysRequestProtocolMarshaller(protocolFactory).marshall(super
.beforeMarshalling(describeDirectConnectGatewaysRequest));
// Binds the request metrics to the current request.
request.setAWSRequestMetrics(awsRequestMetrics);
} finally {
awsRequestMetrics.endEvent(Field.RequestMarshallTime);
}
HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeDirectConnectGatewaysResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of hosted connections that have been provisioned on the given interconnect or link aggregation
* group (LAG).
*
*
*
* This is intended for use by AWS Direct Connect partners only.
*
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeHostedConnectionsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Deprecated in favor of DescribeLoa.
*
*
* Returns the LOA-CFA for an Interconnect.
*
*
* 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 Requesting Cross Connects at AWS
* Direct Connect Locations in the AWS Direct Connect user guide.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DescribeInterconnectLoaResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of interconnects owned by the AWS account.
*
*
* If an interconnect ID is provided, it will only return this particular interconnect.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> 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());
}
/**
*
* Describes the link aggregation groups (LAGs) in your account.
*
*
* If a LAG ID is provided, only information about the specified LAG is returned.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeLagsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns the LOA-CFA for a connection, interconnect, or link aggregation group (LAG).
*
*
* 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 Requesting Cross Connects at AWS
* Direct Connect Locations in the AWS Direct Connect user guide.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeLoaResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* 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.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> 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());
}
/**
*
* Describes the tags associated with the specified Direct Connect resources.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeTagsResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Returns a list of virtual private gateways owned by the AWS account.
*
*
* 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 EC2
* CreateVpnGateway action.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> 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());
}
/**
*
* 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.
*
*
* A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect location and the customer.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> 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());
}
/**
*
* 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
* DeleteConnection 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.
*
*
* 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.
*
*
* @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 AWS API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
new DisassociateConnectionFromLagResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Adds the specified tags to the specified Direct Connect resource. Each Direct Connect resource can have a maximum
* of 50 tags.
*
*
* 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.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Removes one or more tags from the specified Direct Connect resource.
*
*
* @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 AWS
* API Documentation
*/
@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 request = null;
Response 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> responseHandler = protocolFactory.createResponseHandler(
new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller());
response = invoke(request, responseHandler, executionContext);
return response.getAwsResponse();
} finally {
endClientExecution(awsRequestMetrics, request, response);
}
}
/**
*
* Updates the attributes of a link aggregation group (LAG).
*
*
* You can update the following attributes:
*
*
* -
*
* The name of the LAG.
*
*
* -
*
* The value for the minimum number of connections that must be operational for the LAG itself to be operational.
*
*
*
*
* 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.
*
*
* @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 AWS API
* Documentation
*/
@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 request = null;
Response 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> 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.
*
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private Response invoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider));
return doInvoke(request, responseHandler, executionContext);
}
/**
* Invoke with no authentication. Credentials are not required and any credentials set on the client or request will
* be ignored for this operation.
**/
private Response anonymousInvoke(Request request,
HttpResponseHandler> responseHandler, ExecutionContext executionContext) {
return doInvoke(request, responseHandler, executionContext);
}
/**
* Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the
* ExecutionContext beforehand.
**/
private Response doInvoke(Request request, HttpResponseHandler> responseHandler,
ExecutionContext executionContext) {
request.setEndpoint(endpoint);
request.setTimeOffset(timeOffset);
HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata());
return client.execute(request, responseHandler, errorResponseHandler, executionContext);
}
@com.amazonaws.annotation.SdkInternalApi
static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() {
return protocolFactory;
}
}