associateCustomerGateway method

Future<AssociateCustomerGatewayResponse> associateCustomerGateway({
  1. required String customerGatewayArn,
  2. required String deviceId,
  3. required String globalNetworkId,
  4. String? linkId,
})

Associates a customer gateway with a device and optionally, with a link. If you specify a link, it must be associated with the specified device.

You can only associate customer gateways that are connected to a VPN attachment on a transit gateway. The transit gateway must be registered in your global network. When you register a transit gateway, customer gateways that are connected to the transit gateway are automatically included in the global network. To list customer gateways that are connected to a transit gateway, use the DescribeVpnConnections EC2 API and filter by transit-gateway-id.

You cannot associate a customer gateway with more than one device and link.

May throw ValidationException. May throw ServiceQuotaExceededException. May throw AccessDeniedException. May throw ResourceNotFoundException. May throw ConflictException. May throw ThrottlingException. May throw InternalServerException.

Parameter customerGatewayArn : The Amazon Resource Name (ARN) of the customer gateway. For more information, see Resources Defined by Amazon EC2.

Parameter deviceId : The ID of the device.

Parameter globalNetworkId : The ID of the global network.

Parameter linkId : The ID of the link.

Implementation

Future<AssociateCustomerGatewayResponse> associateCustomerGateway({
  required String customerGatewayArn,
  required String deviceId,
  required String globalNetworkId,
  String? linkId,
}) async {
  ArgumentError.checkNotNull(customerGatewayArn, 'customerGatewayArn');
  ArgumentError.checkNotNull(deviceId, 'deviceId');
  ArgumentError.checkNotNull(globalNetworkId, 'globalNetworkId');
  final $payload = <String, dynamic>{
    'CustomerGatewayArn': customerGatewayArn,
    'DeviceId': deviceId,
    if (linkId != null) 'LinkId': linkId,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/global-networks/${Uri.encodeComponent(globalNetworkId)}/customer-gateway-associations',
    exceptionFnMap: _exceptionFns,
  );
  return AssociateCustomerGatewayResponse.fromJson(response);
}