Skip to content

create_client_vpn_route async

create_client_vpn_route(
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    client_vpn_endpoint_id: Optional[ClientVpnEndpointId] = None,
    destination_cidr_block: Optional[String] = None,
    target_vpc_subnet_id: Optional[SubnetId] = None,
    description: Optional[String] = None,
    client_token: Optional[String] = None,
    dry_run: Optional[Boolean] = None,
) -> CreateClientVpnRouteResult

Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.

Parameters:

  • client_vpn_endpoint_id (Optional[ClientVpnEndpointId], default: None ) –

    The ID of the Client VPN endpoint to which to add the route.

  • destination_cidr_block (Optional[String], default: None ) –

    The IPv4 address range, in CIDR notation, of the route destination. For example:

    • To add a route for Internet access, enter 0.0.0.0/0

    • To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range

    • To add a route for an on-premises network, enter the Amazon Web Services Site-to-Site VPN connection's IPv4 CIDR range

    • To add a route for the local network, enter the client CIDR range

  • target_vpc_subnet_id (Optional[SubnetId], default: None ) –

    The ID of the subnet through which you want to route traffic. The specified subnet must be an existing target network of the Client VPN endpoint.

    Alternatively, if you're adding a route for the local network, specify local.

    This parameter is required for VPC-based Client VPN endpoints. For Transit Gateway-based endpoints, this parameter is not required.

  • description (Optional[String], default: None ) –

    A brief description of the route.

  • client_token (Optional[String], default: None ) –

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring idempotency.

  • dry_run (Optional[Boolean], default: None ) –

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

Raises:

Source code in docs_src/capo_ec2/_services/async_ec2.py
async def create_client_vpn_route(
    self,
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    client_vpn_endpoint_id: Optional[
        "capo_ec2.types.client_vpn_endpoint_id.ClientVpnEndpointId"
    ] = None,
    destination_cidr_block: Optional["capo_ec2.types.string.String"] = None,
    target_vpc_subnet_id: Optional["capo_ec2.types.subnet_id.SubnetId"] = None,
    description: Optional["capo_ec2.types.string.String"] = None,
    client_token: Optional["capo_ec2.types.string.String"] = None,
    dry_run: Optional["capo_ec2.types.boolean.Boolean"] = None,
) -> "capo_ec2.types.create_client_vpn_route_result.CreateClientVpnRouteResult":
    """<p>Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.</p>

    Args:
        client_vpn_endpoint_id: <p>The ID of the Client VPN endpoint to which to add the route.</p>
        destination_cidr_block: <p>The IPv4 address range, in CIDR notation, of the route destination. For example:</p> <ul> <li> <p>To add a route for Internet access, enter <code>0.0.0.0/0</code> </p> </li> <li> <p>To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range</p> </li> <li> <p>To add a route for an on-premises network, enter the Amazon Web Services Site-to-Site VPN connection's IPv4 CIDR range</p> </li> <li> <p>To add a route for the local network, enter the client CIDR range</p> </li> </ul>
        target_vpc_subnet_id: <p>The ID of the subnet through which you want to route traffic. The specified subnet must be an existing target network of the Client VPN endpoint.</p> <p>Alternatively, if you're adding a route for the local network, specify <code>local</code>.</p> <p>This parameter is required for VPC-based Client VPN endpoints. For Transit Gateway-based endpoints, this parameter is not required.</p>
        description: <p>A brief description of the route.</p>
        client_token: <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
        dry_run: <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>

    Raises:
        capo_ec2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_ec2.types.create_client_vpn_route_request.CreateClientVpnRouteRequest]",
    ) -> AsyncOperationResponse[
        "capo_ec2.types.create_client_vpn_route_result.CreateClientVpnRouteResult"
    ]:
        import capo_ec2._operations.amazon_ec2.create_client_vpn_route

        (
            output,
            http_response,
        ) = await capo_ec2._operations.amazon_ec2.create_client_vpn_route.async_create_client_vpn_route(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateClientVpnRoute")
    )
    input_: capo_ec2.types.create_client_vpn_route_request.CreateClientVpnRouteRequest = {}
    if client_vpn_endpoint_id is not None:
        input_["client_vpn_endpoint_id"] = client_vpn_endpoint_id
    if destination_cidr_block is not None:
        input_["destination_cidr_block"] = destination_cidr_block
    if target_vpc_subnet_id is not None:
        input_["target_vpc_subnet_id"] = target_vpc_subnet_id
    if description is not None:
        input_["description"] = description
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if dry_run is not None:
        input_["dry_run"] = dry_run

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output