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 or core network registered in your global network. When you register a transit gateway or core network, 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 AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ServiceQuotaExceededException. May throw ThrottlingException. May throw ValidationException.

Parameter customerGatewayArn : The Amazon Resource Name (ARN) of the customer gateway.

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 {
  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);
}