Skip to content
Start here

IPSEC Tunnels

List IPsec tunnels
magic_transit.ipsec_tunnels.list(IPSECTunnelListParams**kwargs) -> IPSECTunnelListResponse
GET/accounts/{account_id}/magic/ipsec_tunnels
List IPsec tunnel details
magic_transit.ipsec_tunnels.get(stripsec_tunnel_id, IPSECTunnelGetParams**kwargs) -> IPSECTunnelGetResponse
GET/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}
Create an IPsec tunnel
magic_transit.ipsec_tunnels.create(IPSECTunnelCreateParams**kwargs) -> IPSECTunnelCreateResponse
POST/accounts/{account_id}/magic/ipsec_tunnels
Update IPsec Tunnel
magic_transit.ipsec_tunnels.update(stripsec_tunnel_id, IPSECTunnelUpdateParams**kwargs) -> IPSECTunnelUpdateResponse
PUT/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}
Delete IPsec Tunnel
magic_transit.ipsec_tunnels.delete(stripsec_tunnel_id, IPSECTunnelDeleteParams**kwargs) -> IPSECTunnelDeleteResponse
DELETE/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}
Update multiple IPsec tunnels
magic_transit.ipsec_tunnels.bulk_update(IPSECTunnelBulkUpdateParams**kwargs) -> IPSECTunnelBulkUpdateResponse
PUT/accounts/{account_id}/magic/ipsec_tunnels
Generate Pre Shared Key (PSK) for IPsec tunnels
magic_transit.ipsec_tunnels.psk_generate(stripsec_tunnel_id, IPSECTunnelPSKGenerateParams**kwargs) -> IPSECTunnelPSKGenerateResponse
POST/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}/psk_generate
ModelsExpand Collapse
class PSKMetadata:

The PSK metadata that includes when the PSK was generated.

last_generated_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
class IPSECTunnelListResponse:
ipsec_tunnels: Optional[List[IPSECTunnel]]
id: str

Identifier

maxLength32
cloudflare_endpoint: str

The IP address assigned to the Cloudflare side of the IPsec tunnel.

interface_address: str

A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.

name: str

The name of the IPsec tunnel. The name cannot share a name with other tunnels.

allow_null_cipher: Optional[bool]

When true, the tunnel can use a null-cipher (ENCR_NULL) in the ESP tunnel (Phase 2).

automatic_return_routing: Optional[bool]

True if automatic stateful return routing should be enabled for a tunnel, false otherwise.

bgp: Optional[IPSECTunnelBGP]
customer_asn: int

ASN used on the customer end of the BGP session

formatint32
minimum0
extra_prefixes: Optional[List[str]]

Prefixes in this list will be advertised to the customer device, in addition to the routes in the Magic routing table.

md5_key: Optional[str]

MD5 key to use for session authentication.

Note that this is not a security measure. MD5 is not a valid security mechanism, and the key is not treated as a secret value. This is only supported for preventing misconfiguration, not for defending against malicious attacks.

The MD5 key, if set, must be of non-zero length and consist only of the following types of character:

  • ASCII alphanumerics: [a-zA-Z0-9]
  • Special characters in the set '!@#$%^&*()+[]{}<>/.,;:_-~= |`

In other words, MD5 keys may contain any printable ASCII character aside from newline (0x0A), quotation mark ("), vertical tab (0x0B), carriage return (0x0D), tab (0x09), form feed (0x0C), and the question mark (?). Requests specifying an MD5 key with one or more of these disallowed characters will be rejected.

bgp_status: Optional[IPSECTunnelBGPStatus]
state: Literal["BGP_DOWN", "BGP_UP", "BGP_ESTABLISHING"]
One of the following:
"BGP_DOWN"
"BGP_UP"
"BGP_ESTABLISHING"
tcp_established: bool
updated_at: datetime
formatdate-time
bgp_state: Optional[str]
cf_speaker_ip: Optional[str]
formatipv4
cf_speaker_port: Optional[int]
maximum65535
minimum1
customer_speaker_ip: Optional[str]
formatipv4
customer_speaker_port: Optional[int]
maximum65535
minimum1
created_on: Optional[datetime]

The date and time the tunnel was created.

formatdate-time
custom_remote_identities: Optional[IPSECTunnelCustomRemoteIdentities]
fqdn_id: Optional[str]

A custom IKE ID of type FQDN that may be used to identity the IPsec tunnel. The generated IKE IDs can still be used even if this custom value is specified.

Must be of the form <custom label>.<account ID>.custom.ipsec.cloudflare.com.

This custom ID does not need to be unique. Two IPsec tunnels may have the same custom fqdn_id. However, if another IPsec tunnel has the same value then the two tunnels cannot have the same cloudflare_endpoint.

customer_endpoint: Optional[str]

The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.

description: Optional[str]

An optional description forthe IPsec tunnel.

health_check: Optional[IPSECTunnelHealthCheck]
direction: Optional[Literal["unidirectional", "bidirectional"]]

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.

One of the following:
"unidirectional"
"bidirectional"
enabled: Optional[bool]

Determines whether to run healthchecks for a tunnel.

rate: Optional[HealthCheckRate]

How frequent the health check is run. The default value is mid.

target: Optional[IPSECTunnelHealthCheckTarget]

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.

One of the following:
class IPSECTunnelHealthCheckTargetMagicHealthCheckTarget:

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.

effective: Optional[str]

The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.

saved: Optional[str]

The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.

str
type: Optional[HealthCheckType]

The type of healthcheck to run, reply or request. The default value is reply.

interface_address6: Optional[str]

A 127 bit IPV6 prefix from within the virtual_subnet6 prefix space with the address being the first IP of the subnet and not same as the address of virtual_subnet6. Eg if virtual_subnet6 is 2606:54c1:7:0:a9fe:12d2::/127 , interface_address6 could be 2606:54c1:7:0:a9fe:12d2:1:200/127

modified_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.

replay_protection: Optional[bool]

If true, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.

class IPSECTunnelGetResponse:
ipsec_tunnel: Optional[IPSECTunnel]
id: str

Identifier

maxLength32
cloudflare_endpoint: str

The IP address assigned to the Cloudflare side of the IPsec tunnel.

interface_address: str

A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.

name: str

The name of the IPsec tunnel. The name cannot share a name with other tunnels.

allow_null_cipher: Optional[bool]

When true, the tunnel can use a null-cipher (ENCR_NULL) in the ESP tunnel (Phase 2).

automatic_return_routing: Optional[bool]

True if automatic stateful return routing should be enabled for a tunnel, false otherwise.

bgp: Optional[IPSECTunnelBGP]
customer_asn: int

ASN used on the customer end of the BGP session

formatint32
minimum0
extra_prefixes: Optional[List[str]]

Prefixes in this list will be advertised to the customer device, in addition to the routes in the Magic routing table.

md5_key: Optional[str]

MD5 key to use for session authentication.

Note that this is not a security measure. MD5 is not a valid security mechanism, and the key is not treated as a secret value. This is only supported for preventing misconfiguration, not for defending against malicious attacks.

The MD5 key, if set, must be of non-zero length and consist only of the following types of character:

  • ASCII alphanumerics: [a-zA-Z0-9]
  • Special characters in the set '!@#$%^&*()+[]{}<>/.,;:_-~= |`

In other words, MD5 keys may contain any printable ASCII character aside from newline (0x0A), quotation mark ("), vertical tab (0x0B), carriage return (0x0D), tab (0x09), form feed (0x0C), and the question mark (?). Requests specifying an MD5 key with one or more of these disallowed characters will be rejected.

bgp_status: Optional[IPSECTunnelBGPStatus]
state: Literal["BGP_DOWN", "BGP_UP", "BGP_ESTABLISHING"]
One of the following:
"BGP_DOWN"
"BGP_UP"
"BGP_ESTABLISHING"
tcp_established: bool
updated_at: datetime
formatdate-time
bgp_state: Optional[str]
cf_speaker_ip: Optional[str]
formatipv4
cf_speaker_port: Optional[int]
maximum65535
minimum1
customer_speaker_ip: Optional[str]
formatipv4
customer_speaker_port: Optional[int]
maximum65535
minimum1
created_on: Optional[datetime]

The date and time the tunnel was created.

formatdate-time
custom_remote_identities: Optional[IPSECTunnelCustomRemoteIdentities]
fqdn_id: Optional[str]

A custom IKE ID of type FQDN that may be used to identity the IPsec tunnel. The generated IKE IDs can still be used even if this custom value is specified.

Must be of the form <custom label>.<account ID>.custom.ipsec.cloudflare.com.

This custom ID does not need to be unique. Two IPsec tunnels may have the same custom fqdn_id. However, if another IPsec tunnel has the same value then the two tunnels cannot have the same cloudflare_endpoint.

customer_endpoint: Optional[str]

The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.

description: Optional[str]

An optional description forthe IPsec tunnel.

health_check: Optional[IPSECTunnelHealthCheck]
direction: Optional[Literal["unidirectional", "bidirectional"]]

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.

One of the following:
"unidirectional"
"bidirectional"
enabled: Optional[bool]

Determines whether to run healthchecks for a tunnel.

rate: Optional[HealthCheckRate]

How frequent the health check is run. The default value is mid.

target: Optional[IPSECTunnelHealthCheckTarget]

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.

One of the following:
class IPSECTunnelHealthCheckTargetMagicHealthCheckTarget:

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.

effective: Optional[str]

The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.

saved: Optional[str]

The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.

str
type: Optional[HealthCheckType]

The type of healthcheck to run, reply or request. The default value is reply.

interface_address6: Optional[str]

A 127 bit IPV6 prefix from within the virtual_subnet6 prefix space with the address being the first IP of the subnet and not same as the address of virtual_subnet6. Eg if virtual_subnet6 is 2606:54c1:7:0:a9fe:12d2::/127 , interface_address6 could be 2606:54c1:7:0:a9fe:12d2:1:200/127

modified_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.

replay_protection: Optional[bool]

If true, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.

class IPSECTunnelCreateResponse:
id: str

Identifier

maxLength32
cloudflare_endpoint: str

The IP address assigned to the Cloudflare side of the IPsec tunnel.

interface_address: str

A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.

name: str

The name of the IPsec tunnel. The name cannot share a name with other tunnels.

allow_null_cipher: Optional[bool]

When true, the tunnel can use a null-cipher (ENCR_NULL) in the ESP tunnel (Phase 2).

automatic_return_routing: Optional[bool]

True if automatic stateful return routing should be enabled for a tunnel, false otherwise.

bgp: Optional[BGP]
customer_asn: int

ASN used on the customer end of the BGP session

formatint32
minimum0
extra_prefixes: Optional[List[str]]

Prefixes in this list will be advertised to the customer device, in addition to the routes in the Magic routing table.

md5_key: Optional[str]

MD5 key to use for session authentication.

Note that this is not a security measure. MD5 is not a valid security mechanism, and the key is not treated as a secret value. This is only supported for preventing misconfiguration, not for defending against malicious attacks.

The MD5 key, if set, must be of non-zero length and consist only of the following types of character:

  • ASCII alphanumerics: [a-zA-Z0-9]
  • Special characters in the set '!@#$%^&*()+[]{}<>/.,;:_-~= |`

In other words, MD5 keys may contain any printable ASCII character aside from newline (0x0A), quotation mark ("), vertical tab (0x0B), carriage return (0x0D), tab (0x09), form feed (0x0C), and the question mark (?). Requests specifying an MD5 key with one or more of these disallowed characters will be rejected.

bgp_status: Optional[BGPStatus]
state: Literal["BGP_DOWN", "BGP_UP", "BGP_ESTABLISHING"]
One of the following:
"BGP_DOWN"
"BGP_UP"
"BGP_ESTABLISHING"
tcp_established: bool
updated_at: datetime
formatdate-time
bgp_state: Optional[str]
cf_speaker_ip: Optional[str]
formatipv4
cf_speaker_port: Optional[int]
maximum65535
minimum1
customer_speaker_ip: Optional[str]
formatipv4
customer_speaker_port: Optional[int]
maximum65535
minimum1
created_on: Optional[datetime]

The date and time the tunnel was created.

formatdate-time
custom_remote_identities: Optional[CustomRemoteIdentities]
fqdn_id: Optional[str]

A custom IKE ID of type FQDN that may be used to identity the IPsec tunnel. The generated IKE IDs can still be used even if this custom value is specified.

Must be of the form <custom label>.<account ID>.custom.ipsec.cloudflare.com.

This custom ID does not need to be unique. Two IPsec tunnels may have the same custom fqdn_id. However, if another IPsec tunnel has the same value then the two tunnels cannot have the same cloudflare_endpoint.

customer_endpoint: Optional[str]

The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.

description: Optional[str]

An optional description forthe IPsec tunnel.

health_check: Optional[HealthCheck]
direction: Optional[Literal["unidirectional", "bidirectional"]]

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.

One of the following:
"unidirectional"
"bidirectional"
enabled: Optional[bool]

Determines whether to run healthchecks for a tunnel.

rate: Optional[HealthCheckRate]

How frequent the health check is run. The default value is mid.

target: Optional[HealthCheckTarget]

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.

One of the following:
class HealthCheckTargetMagicHealthCheckTarget:

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.

effective: Optional[str]

The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.

saved: Optional[str]

The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.

str
type: Optional[HealthCheckType]

The type of healthcheck to run, reply or request. The default value is reply.

interface_address6: Optional[str]

A 127 bit IPV6 prefix from within the virtual_subnet6 prefix space with the address being the first IP of the subnet and not same as the address of virtual_subnet6. Eg if virtual_subnet6 is 2606:54c1:7:0:a9fe:12d2::/127 , interface_address6 could be 2606:54c1:7:0:a9fe:12d2:1:200/127

modified_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.

replay_protection: Optional[bool]

If true, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.

class IPSECTunnelUpdateResponse:
modified: Optional[bool]
modified_ipsec_tunnel: Optional[ModifiedIPSECTunnel]
id: str

Identifier

maxLength32
cloudflare_endpoint: str

The IP address assigned to the Cloudflare side of the IPsec tunnel.

interface_address: str

A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.

name: str

The name of the IPsec tunnel. The name cannot share a name with other tunnels.

allow_null_cipher: Optional[bool]

When true, the tunnel can use a null-cipher (ENCR_NULL) in the ESP tunnel (Phase 2).

automatic_return_routing: Optional[bool]

True if automatic stateful return routing should be enabled for a tunnel, false otherwise.

bgp: Optional[ModifiedIPSECTunnelBGP]
customer_asn: int

ASN used on the customer end of the BGP session

formatint32
minimum0
extra_prefixes: Optional[List[str]]

Prefixes in this list will be advertised to the customer device, in addition to the routes in the Magic routing table.

md5_key: Optional[str]

MD5 key to use for session authentication.

Note that this is not a security measure. MD5 is not a valid security mechanism, and the key is not treated as a secret value. This is only supported for preventing misconfiguration, not for defending against malicious attacks.

The MD5 key, if set, must be of non-zero length and consist only of the following types of character:

  • ASCII alphanumerics: [a-zA-Z0-9]
  • Special characters in the set '!@#$%^&*()+[]{}<>/.,;:_-~= |`

In other words, MD5 keys may contain any printable ASCII character aside from newline (0x0A), quotation mark ("), vertical tab (0x0B), carriage return (0x0D), tab (0x09), form feed (0x0C), and the question mark (?). Requests specifying an MD5 key with one or more of these disallowed characters will be rejected.

bgp_status: Optional[ModifiedIPSECTunnelBGPStatus]
state: Literal["BGP_DOWN", "BGP_UP", "BGP_ESTABLISHING"]
One of the following:
"BGP_DOWN"
"BGP_UP"
"BGP_ESTABLISHING"
tcp_established: bool
updated_at: datetime
formatdate-time
bgp_state: Optional[str]
cf_speaker_ip: Optional[str]
formatipv4
cf_speaker_port: Optional[int]
maximum65535
minimum1
customer_speaker_ip: Optional[str]
formatipv4
customer_speaker_port: Optional[int]
maximum65535
minimum1
created_on: Optional[datetime]

The date and time the tunnel was created.

formatdate-time
custom_remote_identities: Optional[ModifiedIPSECTunnelCustomRemoteIdentities]
fqdn_id: Optional[str]

A custom IKE ID of type FQDN that may be used to identity the IPsec tunnel. The generated IKE IDs can still be used even if this custom value is specified.

Must be of the form <custom label>.<account ID>.custom.ipsec.cloudflare.com.

This custom ID does not need to be unique. Two IPsec tunnels may have the same custom fqdn_id. However, if another IPsec tunnel has the same value then the two tunnels cannot have the same cloudflare_endpoint.

customer_endpoint: Optional[str]

The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.

description: Optional[str]

An optional description forthe IPsec tunnel.

health_check: Optional[ModifiedIPSECTunnelHealthCheck]
direction: Optional[Literal["unidirectional", "bidirectional"]]

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.

One of the following:
"unidirectional"
"bidirectional"
enabled: Optional[bool]

Determines whether to run healthchecks for a tunnel.

rate: Optional[HealthCheckRate]

How frequent the health check is run. The default value is mid.

target: Optional[ModifiedIPSECTunnelHealthCheckTarget]

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.

One of the following:
class ModifiedIPSECTunnelHealthCheckTargetMagicHealthCheckTarget:

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.

effective: Optional[str]

The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.

saved: Optional[str]

The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.

str
type: Optional[HealthCheckType]

The type of healthcheck to run, reply or request. The default value is reply.

interface_address6: Optional[str]

A 127 bit IPV6 prefix from within the virtual_subnet6 prefix space with the address being the first IP of the subnet and not same as the address of virtual_subnet6. Eg if virtual_subnet6 is 2606:54c1:7:0:a9fe:12d2::/127 , interface_address6 could be 2606:54c1:7:0:a9fe:12d2:1:200/127

modified_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.

replay_protection: Optional[bool]

If true, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.

class IPSECTunnelDeleteResponse:
deleted: Optional[bool]
deleted_ipsec_tunnel: Optional[DeletedIPSECTunnel]
id: str

Identifier

maxLength32
cloudflare_endpoint: str

The IP address assigned to the Cloudflare side of the IPsec tunnel.

interface_address: str

A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.

name: str

The name of the IPsec tunnel. The name cannot share a name with other tunnels.

allow_null_cipher: Optional[bool]

When true, the tunnel can use a null-cipher (ENCR_NULL) in the ESP tunnel (Phase 2).

automatic_return_routing: Optional[bool]

True if automatic stateful return routing should be enabled for a tunnel, false otherwise.

bgp: Optional[DeletedIPSECTunnelBGP]
customer_asn: int

ASN used on the customer end of the BGP session

formatint32
minimum0
extra_prefixes: Optional[List[str]]

Prefixes in this list will be advertised to the customer device, in addition to the routes in the Magic routing table.

md5_key: Optional[str]

MD5 key to use for session authentication.

Note that this is not a security measure. MD5 is not a valid security mechanism, and the key is not treated as a secret value. This is only supported for preventing misconfiguration, not for defending against malicious attacks.

The MD5 key, if set, must be of non-zero length and consist only of the following types of character:

  • ASCII alphanumerics: [a-zA-Z0-9]
  • Special characters in the set '!@#$%^&*()+[]{}<>/.,;:_-~= |`

In other words, MD5 keys may contain any printable ASCII character aside from newline (0x0A), quotation mark ("), vertical tab (0x0B), carriage return (0x0D), tab (0x09), form feed (0x0C), and the question mark (?). Requests specifying an MD5 key with one or more of these disallowed characters will be rejected.

bgp_status: Optional[DeletedIPSECTunnelBGPStatus]
state: Literal["BGP_DOWN", "BGP_UP", "BGP_ESTABLISHING"]
One of the following:
"BGP_DOWN"
"BGP_UP"
"BGP_ESTABLISHING"
tcp_established: bool
updated_at: datetime
formatdate-time
bgp_state: Optional[str]
cf_speaker_ip: Optional[str]
formatipv4
cf_speaker_port: Optional[int]
maximum65535
minimum1
customer_speaker_ip: Optional[str]
formatipv4
customer_speaker_port: Optional[int]
maximum65535
minimum1
created_on: Optional[datetime]

The date and time the tunnel was created.

formatdate-time
custom_remote_identities: Optional[DeletedIPSECTunnelCustomRemoteIdentities]
fqdn_id: Optional[str]

A custom IKE ID of type FQDN that may be used to identity the IPsec tunnel. The generated IKE IDs can still be used even if this custom value is specified.

Must be of the form <custom label>.<account ID>.custom.ipsec.cloudflare.com.

This custom ID does not need to be unique. Two IPsec tunnels may have the same custom fqdn_id. However, if another IPsec tunnel has the same value then the two tunnels cannot have the same cloudflare_endpoint.

customer_endpoint: Optional[str]

The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.

description: Optional[str]

An optional description forthe IPsec tunnel.

health_check: Optional[DeletedIPSECTunnelHealthCheck]
direction: Optional[Literal["unidirectional", "bidirectional"]]

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.

One of the following:
"unidirectional"
"bidirectional"
enabled: Optional[bool]

Determines whether to run healthchecks for a tunnel.

rate: Optional[HealthCheckRate]

How frequent the health check is run. The default value is mid.

target: Optional[DeletedIPSECTunnelHealthCheckTarget]

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.

One of the following:
class DeletedIPSECTunnelHealthCheckTargetMagicHealthCheckTarget:

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.

effective: Optional[str]

The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.

saved: Optional[str]

The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.

str
type: Optional[HealthCheckType]

The type of healthcheck to run, reply or request. The default value is reply.

interface_address6: Optional[str]

A 127 bit IPV6 prefix from within the virtual_subnet6 prefix space with the address being the first IP of the subnet and not same as the address of virtual_subnet6. Eg if virtual_subnet6 is 2606:54c1:7:0:a9fe:12d2::/127 , interface_address6 could be 2606:54c1:7:0:a9fe:12d2:1:200/127

modified_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.

replay_protection: Optional[bool]

If true, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.

class IPSECTunnelBulkUpdateResponse:
modified: Optional[bool]
modified_ipsec_tunnels: Optional[List[ModifiedIPSECTunnel]]
id: str

Identifier

maxLength32
cloudflare_endpoint: str

The IP address assigned to the Cloudflare side of the IPsec tunnel.

interface_address: str

A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side of the tunnel. Select the subnet from the following private IP space: 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.

name: str

The name of the IPsec tunnel. The name cannot share a name with other tunnels.

allow_null_cipher: Optional[bool]

When true, the tunnel can use a null-cipher (ENCR_NULL) in the ESP tunnel (Phase 2).

automatic_return_routing: Optional[bool]

True if automatic stateful return routing should be enabled for a tunnel, false otherwise.

bgp: Optional[ModifiedIPSECTunnelBGP]
customer_asn: int

ASN used on the customer end of the BGP session

formatint32
minimum0
extra_prefixes: Optional[List[str]]

Prefixes in this list will be advertised to the customer device, in addition to the routes in the Magic routing table.

md5_key: Optional[str]

MD5 key to use for session authentication.

Note that this is not a security measure. MD5 is not a valid security mechanism, and the key is not treated as a secret value. This is only supported for preventing misconfiguration, not for defending against malicious attacks.

The MD5 key, if set, must be of non-zero length and consist only of the following types of character:

  • ASCII alphanumerics: [a-zA-Z0-9]
  • Special characters in the set '!@#$%^&*()+[]{}<>/.,;:_-~= |`

In other words, MD5 keys may contain any printable ASCII character aside from newline (0x0A), quotation mark ("), vertical tab (0x0B), carriage return (0x0D), tab (0x09), form feed (0x0C), and the question mark (?). Requests specifying an MD5 key with one or more of these disallowed characters will be rejected.

bgp_status: Optional[ModifiedIPSECTunnelBGPStatus]
state: Literal["BGP_DOWN", "BGP_UP", "BGP_ESTABLISHING"]
One of the following:
"BGP_DOWN"
"BGP_UP"
"BGP_ESTABLISHING"
tcp_established: bool
updated_at: datetime
formatdate-time
bgp_state: Optional[str]
cf_speaker_ip: Optional[str]
formatipv4
cf_speaker_port: Optional[int]
maximum65535
minimum1
customer_speaker_ip: Optional[str]
formatipv4
customer_speaker_port: Optional[int]
maximum65535
minimum1
created_on: Optional[datetime]

The date and time the tunnel was created.

formatdate-time
custom_remote_identities: Optional[ModifiedIPSECTunnelCustomRemoteIdentities]
fqdn_id: Optional[str]

A custom IKE ID of type FQDN that may be used to identity the IPsec tunnel. The generated IKE IDs can still be used even if this custom value is specified.

Must be of the form <custom label>.<account ID>.custom.ipsec.cloudflare.com.

This custom ID does not need to be unique. Two IPsec tunnels may have the same custom fqdn_id. However, if another IPsec tunnel has the same value then the two tunnels cannot have the same cloudflare_endpoint.

customer_endpoint: Optional[str]

The IP address assigned to the customer side of the IPsec tunnel. Not required, but must be set for proactive traceroutes to work.

description: Optional[str]

An optional description forthe IPsec tunnel.

health_check: Optional[ModifiedIPSECTunnelHealthCheck]
direction: Optional[Literal["unidirectional", "bidirectional"]]

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel.

One of the following:
"unidirectional"
"bidirectional"
enabled: Optional[bool]

Determines whether to run healthchecks for a tunnel.

rate: Optional[HealthCheckRate]

How frequent the health check is run. The default value is mid.

target: Optional[ModifiedIPSECTunnelHealthCheckTarget]

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target. Must be in object form if the x-magic-new-hc-target header is set to true and string form if x-magic-new-hc-target is absent or set to false.

One of the following:
class ModifiedIPSECTunnelHealthCheckTargetMagicHealthCheckTarget:

The destination address in a request type health check. After the healthcheck is decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded to this address. This field defaults to customer_gre_endpoint address. This field is ignored for bidirectional healthchecks as the interface_address (not assigned to the Cloudflare side of the tunnel) is used as the target.

effective: Optional[str]

The effective health check target. If 'saved' is empty, then this field will be populated with the calculated default value on GET requests. Ignored in POST, PUT, and PATCH requests.

saved: Optional[str]

The saved health check target. Setting the value to the empty string indicates that the calculated default value will be used.

str
type: Optional[HealthCheckType]

The type of healthcheck to run, reply or request. The default value is reply.

interface_address6: Optional[str]

A 127 bit IPV6 prefix from within the virtual_subnet6 prefix space with the address being the first IP of the subnet and not same as the address of virtual_subnet6. Eg if virtual_subnet6 is 2606:54c1:7:0:a9fe:12d2::/127 , interface_address6 could be 2606:54c1:7:0:a9fe:12d2:1:200/127

modified_on: Optional[datetime]

The date and time the tunnel was last modified.

formatdate-time
psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.

replay_protection: Optional[bool]

If true, then IPsec replay protection will be supported in the Cloudflare-to-customer direction.

class IPSECTunnelPSKGenerateResponse:
ipsec_tunnel_id: Optional[str]

Identifier

maxLength32
psk: Optional[str]

A randomly generated or provided string for use in the IPsec tunnel.

psk_metadata: Optional[PSKMetadata]

The PSK metadata that includes when the PSK was generated.