> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/api-reference/network-services/vpn-gateway/models.md).

# Models

## The Connection object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The CIDR object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The IPV6CIDR object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The IPV4CIDR object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"}}}}
```

## The GatewayIP object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"}}}}
```

## The IPPort object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535}}}}
```

## The DiffieHellmanGroup object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"}}}}
```

## The EncryptionAlgorithm object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"}}}}
```

## The IntegrityAlgorithm object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"}}}}
```

## The IKEEncryption object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IKEEncryption":{"type":"object","description":"Settings for the initial security exchange phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":86400,"minimum":3600,"maximum":86400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"}}}}
```

## The ESPEncryption object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"ESPEncryption":{"type":"object","description":"Settings for the IPSec SA (ESP) phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":3600,"minimum":600,"maximum":14400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"}}}}
```

## The Tier object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"}}}}
```

## The WireguardGatewayReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardGatewayReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of WireguardGateway resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of WireguardGateway resources.","type":"string"},"items":{"description":"The list of WireguardGateway resources.","type":"array","items":{"$ref":"#/components/schemas/WireguardGatewayRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"WireguardGatewayRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the WireguardGateway.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["wireguardgateway"]},"href":{"description":"The URL of the WireguardGateway.","type":"string"},"metadata":{"$ref":"#/components/schemas/WireguardGatewayMetadata"},"properties":{"$ref":"#/components/schemas/WireguardGateway"}}},"WireguardGatewayMetadata":{"description":"WireGuard Gateway Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"},{"type":"object","required":["publicKey"],"properties":{"publicKey":{"type":"string","description":"Public key correspondng to the WireGuard Server private key.\n"}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"WireguardGateway":{"description":"Properties with all data needed to create a new WireGuard Gateway.\n","required":["name","gatewayIP","connections","privateKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"interfaceIPv4CIDR":{"description":"The IPV4 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv4CIDR or interfaceIPv6CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"interfaceIPv6CIDR":{"description":"The IPV6 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv6CIDR or interfaceIPv4CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"privateKey":{"type":"string","writeOnly":true,"description":"PrivateKey used for WireGuard Server\n"},"listenPort":{"description":"Port that WireGuard Server will listen on","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}}}}}
```

## The WireguardGatewayRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardGatewayRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the WireguardGateway.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["wireguardgateway"]},"href":{"description":"The URL of the WireguardGateway.","type":"string"},"metadata":{"$ref":"#/components/schemas/WireguardGatewayMetadata"},"properties":{"$ref":"#/components/schemas/WireguardGateway"}}},"WireguardGatewayMetadata":{"description":"WireGuard Gateway Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"},{"type":"object","required":["publicKey"],"properties":{"publicKey":{"type":"string","description":"Public key correspondng to the WireGuard Server private key.\n"}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"WireguardGateway":{"description":"Properties with all data needed to create a new WireGuard Gateway.\n","required":["name","gatewayIP","connections","privateKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"interfaceIPv4CIDR":{"description":"The IPV4 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv4CIDR or interfaceIPv6CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"interfaceIPv6CIDR":{"description":"The IPV6 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv6CIDR or interfaceIPv4CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"privateKey":{"type":"string","writeOnly":true,"description":"PrivateKey used for WireGuard Server\n"},"listenPort":{"description":"Port that WireGuard Server will listen on","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The WireguardGatewayEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardGatewayEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the WireguardGateway.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/WireguardGateway"}}},"WireguardGateway":{"description":"Properties with all data needed to create a new WireGuard Gateway.\n","required":["name","gatewayIP","connections","privateKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"interfaceIPv4CIDR":{"description":"The IPV4 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv4CIDR or interfaceIPv6CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"interfaceIPv6CIDR":{"description":"The IPV6 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv6CIDR or interfaceIPv4CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"privateKey":{"type":"string","writeOnly":true,"description":"PrivateKey used for WireGuard Server\n"},"listenPort":{"description":"Port that WireGuard Server will listen on","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The WireguardGatewayCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardGatewayCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/WireguardGateway"}}},"WireguardGateway":{"description":"Properties with all data needed to create a new WireGuard Gateway.\n","required":["name","gatewayIP","connections","privateKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"interfaceIPv4CIDR":{"description":"The IPV4 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv4CIDR or interfaceIPv6CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"interfaceIPv6CIDR":{"description":"The IPV6 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv6CIDR or interfaceIPv4CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"privateKey":{"type":"string","writeOnly":true,"description":"PrivateKey used for WireGuard Server\n"},"listenPort":{"description":"Port that WireGuard Server will listen on","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The WireguardEndpoint object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardEndpoint":{"description":"Properties with all data needed to create a new WireGuard Gateway endpoint.\n","required":["host"],"type":"object","properties":{"host":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"hostname"}],"description":"Hostname or IPV4 address that the WireGuard Server will connect to."},"port":{"description":"Port that the WireGuard Server will connect to.","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535}}}}
```

## The WireguardGateway object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardGateway":{"description":"Properties with all data needed to create a new WireGuard Gateway.\n","required":["name","gatewayIP","connections","privateKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"interfaceIPv4CIDR":{"description":"The IPV4 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv4CIDR or interfaceIPv6CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"interfaceIPv6CIDR":{"description":"The IPV6 address (with CIDR mask) to be assigned to the WireGuard interface.\n__Note__: either interfaceIPv6CIDR or interfaceIPv4CIDR is __required__.\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"privateKey":{"type":"string","writeOnly":true,"description":"PrivateKey used for WireGuard Server\n"},"listenPort":{"description":"Port that WireGuard Server will listen on","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The WireguardPeerReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardPeerReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of WireguardPeer resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of WireguardPeer resources.","type":"string"},"items":{"description":"The list of WireguardPeer resources.","type":"array","items":{"$ref":"#/components/schemas/WireguardPeerRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"WireguardPeerRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the WireguardPeer.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["wireguardpeer"]},"href":{"description":"The URL of the WireguardPeer.","type":"string"},"metadata":{"$ref":"#/components/schemas/WireguardPeerMetadata"},"properties":{"$ref":"#/components/schemas/WireguardPeer"}}},"WireguardPeerMetadata":{"description":"WireGuard Peer Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"WireguardPeer":{"description":"Properties with all data needed to create a new WireGuard Gateway Peer.\\\n__Note__: there is a limit to the total number of peers.  Please refer to product documentation.\n","required":["name","allowedIPs","publicKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway Peer.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway Peer.","maxLength":1024},"endpoint":{"$ref":"#/components/schemas/WireguardEndpoint"},"allowedIPs":{"type":"array","description":"The subnet CIDRs that are allowed to connect to the WireGuard Gateway.  Specify \"a.b.c.d/32\" for an individual IP address.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"},"minItems":1,"maxItems":20},"publicKey":{"type":"string","description":"WireGuard public key of the connecting peer"}}},"WireguardEndpoint":{"description":"Properties with all data needed to create a new WireGuard Gateway endpoint.\n","required":["host"],"type":"object","properties":{"host":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"hostname"}],"description":"Hostname or IPV4 address that the WireGuard Server will connect to."},"port":{"description":"Port that the WireGuard Server will connect to.","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}}}}}
```

## The WireguardPeerRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardPeerRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the WireguardPeer.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["wireguardpeer"]},"href":{"description":"The URL of the WireguardPeer.","type":"string"},"metadata":{"$ref":"#/components/schemas/WireguardPeerMetadata"},"properties":{"$ref":"#/components/schemas/WireguardPeer"}}},"WireguardPeerMetadata":{"description":"WireGuard Peer Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"WireguardPeer":{"description":"Properties with all data needed to create a new WireGuard Gateway Peer.\\\n__Note__: there is a limit to the total number of peers.  Please refer to product documentation.\n","required":["name","allowedIPs","publicKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway Peer.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway Peer.","maxLength":1024},"endpoint":{"$ref":"#/components/schemas/WireguardEndpoint"},"allowedIPs":{"type":"array","description":"The subnet CIDRs that are allowed to connect to the WireGuard Gateway.  Specify \"a.b.c.d/32\" for an individual IP address.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"},"minItems":1,"maxItems":20},"publicKey":{"type":"string","description":"WireGuard public key of the connecting peer"}}},"WireguardEndpoint":{"description":"Properties with all data needed to create a new WireGuard Gateway endpoint.\n","required":["host"],"type":"object","properties":{"host":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"hostname"}],"description":"Hostname or IPV4 address that the WireGuard Server will connect to."},"port":{"description":"Port that the WireGuard Server will connect to.","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The WireguardPeerEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardPeerEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the WireguardPeer.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/WireguardPeer"}}},"WireguardPeer":{"description":"Properties with all data needed to create a new WireGuard Gateway Peer.\\\n__Note__: there is a limit to the total number of peers.  Please refer to product documentation.\n","required":["name","allowedIPs","publicKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway Peer.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway Peer.","maxLength":1024},"endpoint":{"$ref":"#/components/schemas/WireguardEndpoint"},"allowedIPs":{"type":"array","description":"The subnet CIDRs that are allowed to connect to the WireGuard Gateway.  Specify \"a.b.c.d/32\" for an individual IP address.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"},"minItems":1,"maxItems":20},"publicKey":{"type":"string","description":"WireGuard public key of the connecting peer"}}},"WireguardEndpoint":{"description":"Properties with all data needed to create a new WireGuard Gateway endpoint.\n","required":["host"],"type":"object","properties":{"host":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"hostname"}],"description":"Hostname or IPV4 address that the WireGuard Server will connect to."},"port":{"description":"Port that the WireGuard Server will connect to.","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The WireguardPeerCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardPeerCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/WireguardPeer"}}},"WireguardPeer":{"description":"Properties with all data needed to create a new WireGuard Gateway Peer.\\\n__Note__: there is a limit to the total number of peers.  Please refer to product documentation.\n","required":["name","allowedIPs","publicKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway Peer.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway Peer.","maxLength":1024},"endpoint":{"$ref":"#/components/schemas/WireguardEndpoint"},"allowedIPs":{"type":"array","description":"The subnet CIDRs that are allowed to connect to the WireGuard Gateway.  Specify \"a.b.c.d/32\" for an individual IP address.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"},"minItems":1,"maxItems":20},"publicKey":{"type":"string","description":"WireGuard public key of the connecting peer"}}},"WireguardEndpoint":{"description":"Properties with all data needed to create a new WireGuard Gateway endpoint.\n","required":["host"],"type":"object","properties":{"host":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"hostname"}],"description":"Hostname or IPV4 address that the WireGuard Server will connect to."},"port":{"description":"Port that the WireGuard Server will connect to.","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The WireguardPeer object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardPeer":{"description":"Properties with all data needed to create a new WireGuard Gateway Peer.\\\n__Note__: there is a limit to the total number of peers.  Please refer to product documentation.\n","required":["name","allowedIPs","publicKey"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your WireguardGateway Peer.","maxLength":255},"description":{"type":"string","description":"Human readable description of the WireguardGateway Peer.","maxLength":1024},"endpoint":{"$ref":"#/components/schemas/WireguardEndpoint"},"allowedIPs":{"type":"array","description":"The subnet CIDRs that are allowed to connect to the WireGuard Gateway.  Specify \"a.b.c.d/32\" for an individual IP address.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"},"minItems":1,"maxItems":20},"publicKey":{"type":"string","description":"WireGuard public key of the connecting peer"}}},"WireguardEndpoint":{"description":"Properties with all data needed to create a new WireGuard Gateway endpoint.\n","required":["host"],"type":"object","properties":{"host":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"hostname"}],"description":"Hostname or IPV4 address that the WireGuard Server will connect to."},"port":{"description":"Port that the WireGuard Server will connect to.","default":51820,"allOf":[{"$ref":"#/components/schemas/IPPort"}]}}},"IPPort":{"type":"integer","description":"IP port number","minimum":0,"maximum":65535},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The IPSecGatewayReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecGatewayReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of IPSecGateway resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of IPSecGateway resources.","type":"string"},"items":{"description":"The list of IPSecGateway resources.","type":"array","items":{"$ref":"#/components/schemas/IPSecGatewayRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"IPSecGatewayRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the IPSecGateway.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["ipsecgateway"]},"href":{"description":"The URL of the IPSecGateway.","type":"string"},"metadata":{"$ref":"#/components/schemas/IPSecGatewayMetadata"},"properties":{"$ref":"#/components/schemas/IPSecGateway"}}},"IPSecGatewayMetadata":{"description":"IPSec Gateway Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"IPSecGateway":{"description":"Properties with all data needed to create a new IPSec Gateway.\n","required":["name","gatewayIP","connections"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSecGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSecGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"version":{"type":"string","description":"The IKE version that is permitted for the VPN tunnels.\\\nOptions:\n - IKEv2\n","default":"IKEv2"},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}}}}}
```

## The IPSecGatewayRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecGatewayRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the IPSecGateway.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["ipsecgateway"]},"href":{"description":"The URL of the IPSecGateway.","type":"string"},"metadata":{"$ref":"#/components/schemas/IPSecGatewayMetadata"},"properties":{"$ref":"#/components/schemas/IPSecGateway"}}},"IPSecGatewayMetadata":{"description":"IPSec Gateway Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"IPSecGateway":{"description":"Properties with all data needed to create a new IPSec Gateway.\n","required":["name","gatewayIP","connections"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSecGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSecGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"version":{"type":"string","description":"The IKE version that is permitted for the VPN tunnels.\\\nOptions:\n - IKEv2\n","default":"IKEv2"},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The IPSecGatewayEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecGatewayEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the IPSecGateway.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/IPSecGateway"}}},"IPSecGateway":{"description":"Properties with all data needed to create a new IPSec Gateway.\n","required":["name","gatewayIP","connections"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSecGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSecGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"version":{"type":"string","description":"The IKE version that is permitted for the VPN tunnels.\\\nOptions:\n - IKEv2\n","default":"IKEv2"},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The IPSecGatewayCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecGatewayCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/IPSecGateway"}}},"IPSecGateway":{"description":"Properties with all data needed to create a new IPSec Gateway.\n","required":["name","gatewayIP","connections"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSecGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSecGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"version":{"type":"string","description":"The IKE version that is permitted for the VPN tunnels.\\\nOptions:\n - IKEv2\n","default":"IKEv2"},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The IPSecGateway object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecGateway":{"description":"Properties with all data needed to create a new IPSec Gateway.\n","required":["name","gatewayIP","connections"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSecGateway.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSecGateway.","maxLength":1024},"gatewayIP":{"$ref":"#/components/schemas/GatewayIP"},"connections":{"type":"array","minItems":1,"description":"The network connection for your gateway.\n__Note__: all connections must belong to the same datacenterId. There is a limit to the total number of connections. Please refer to product documentation.\n","items":{"$ref":"#/components/schemas/Connection"}},"version":{"type":"string","description":"The IKE version that is permitted for the VPN tunnels.\\\nOptions:\n - IKEv2\n","default":"IKEv2"},"tier":{"$ref":"#/components/schemas/Tier"},"maintenanceWindow":{"$ref":"#/components/schemas/MaintenanceWindow"}}},"GatewayIP":{"type":"string","anyOf":[{"format":"ipv4"}],"description":"Public IP address to be assigned to the gateway.\n__Note__: This must be an IP address in the same datacenter as the connections.\n"},"Connection":{"description":"Details about the network connection for your VPN Gateway.","required":["datacenterId","lanId","ipv4CIDR"],"type":"object","properties":{"datacenterId":{"description":"The datacenter to connect your VPN Gateway to.\n","type":"string"},"lanId":{"description":"The numeric LAN ID to connect your VPN Gateway to.","type":"string"},"ipv4CIDR":{"description":"A LAN IPv4 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV4CIDR"}]},"ipv6CIDR":{"description":"A LAN IPv6 address in CIDR notation that will be assigned to the VPN Gateway.\nThis will be the private gateway address for LAN clients to route traffic over the VPN Gateway.\n__Note__: this should be within the subnet already assigned to the LAN\n","allOf":[{"$ref":"#/components/schemas/IPV6CIDR"}]}}},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Tier":{"type":"string","description":"Gateway performance options.  See product documentation for full details.\\\nOptions:\n- STANDARD\n- STANDARD_HA\n- ENHANCED\n- ENHANCED_HA\n- PREMIUM\n- PREMIUM_HA\n","default":"STANDARD"},"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The IPSecTunnelReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnelReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of IPSecTunnel resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of IPSecTunnel resources.","type":"string"},"items":{"description":"The list of IPSecTunnel resources.","type":"array","items":{"$ref":"#/components/schemas/IPSecTunnelRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"IPSecTunnelRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the IPSecTunnel.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["ipsectunnel"]},"href":{"description":"The URL of the IPSecTunnel.","type":"string"},"metadata":{"$ref":"#/components/schemas/IPSecTunnelMetadata"},"properties":{"$ref":"#/components/schemas/IPSecTunnel"}}},"IPSecTunnelMetadata":{"description":"IPSec Tunnel Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"IPSecTunnel":{"description":"Properties with all data needed to create a new IPSec Gateway Tunnel.\\\n__Note__: there is a limit to the total number of tunnels.  Please refer to product documentation.\n","required":["name","remoteHost","auth","cloudNetworkCIDRs","peerNetworkCIDRs","ike","esp"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSec Gateway Tunnel.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSec Gateway Tunnel.","maxLength":1024},"remoteHost":{"type":"string","description":"The remote peer host fully qualified domain name or IPV4 IP to connect to.\n* __Note__: This should be the public IP of the remote peer.\n* Tunnels only support IPV4 or hostname (fully qualified DNS name).\n","anyOf":[{"format":"ipv4"},{"format":"hostname"}]},"auth":{"$ref":"#/components/schemas/IPSecTunnelAuth"},"ike":{"$ref":"#/components/schemas/IKEEncryption"},"esp":{"$ref":"#/components/schemas/ESPEncryption"},"cloudNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Left\" side that are allowed to connect to the IPSec tunnel,\ni.e., the CIDRs within your IONOS CLOUD LAN. Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"}},"peerNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Right\" side that are allowed to connect to the IPSec tunnel.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.","items":{"$ref":"#/components/schemas/CIDR"}}}},"IPSecTunnelAuth":{"description":"Properties with all data needed to define IPSec Authentication.\n","required":["method"],"type":"object","properties":{"method":{"type":"string","description":"The Authentication Method to use for IPSec Authentication.\\\nOptions:\n  - PSK\n","default":"PSK"},"psk":{"$ref":"#/components/schemas/IPSecPSK"}}},"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}},"IKEEncryption":{"type":"object","description":"Settings for the initial security exchange phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":86400,"minimum":3600,"maximum":86400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"},"ESPEncryption":{"type":"object","description":"Settings for the IPSec SA (ESP) phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":3600,"minimum":600,"maximum":14400}}},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"},"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}}}}}
```

## The IPSecTunnelRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnelRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the IPSecTunnel.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["ipsectunnel"]},"href":{"description":"The URL of the IPSecTunnel.","type":"string"},"metadata":{"$ref":"#/components/schemas/IPSecTunnelMetadata"},"properties":{"$ref":"#/components/schemas/IPSecTunnel"}}},"IPSecTunnelMetadata":{"description":"IPSec Tunnel Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"IPSecTunnel":{"description":"Properties with all data needed to create a new IPSec Gateway Tunnel.\\\n__Note__: there is a limit to the total number of tunnels.  Please refer to product documentation.\n","required":["name","remoteHost","auth","cloudNetworkCIDRs","peerNetworkCIDRs","ike","esp"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSec Gateway Tunnel.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSec Gateway Tunnel.","maxLength":1024},"remoteHost":{"type":"string","description":"The remote peer host fully qualified domain name or IPV4 IP to connect to.\n* __Note__: This should be the public IP of the remote peer.\n* Tunnels only support IPV4 or hostname (fully qualified DNS name).\n","anyOf":[{"format":"ipv4"},{"format":"hostname"}]},"auth":{"$ref":"#/components/schemas/IPSecTunnelAuth"},"ike":{"$ref":"#/components/schemas/IKEEncryption"},"esp":{"$ref":"#/components/schemas/ESPEncryption"},"cloudNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Left\" side that are allowed to connect to the IPSec tunnel,\ni.e., the CIDRs within your IONOS CLOUD LAN. Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"}},"peerNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Right\" side that are allowed to connect to the IPSec tunnel.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.","items":{"$ref":"#/components/schemas/CIDR"}}}},"IPSecTunnelAuth":{"description":"Properties with all data needed to define IPSec Authentication.\n","required":["method"],"type":"object","properties":{"method":{"type":"string","description":"The Authentication Method to use for IPSec Authentication.\\\nOptions:\n  - PSK\n","default":"PSK"},"psk":{"$ref":"#/components/schemas/IPSecPSK"}}},"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}},"IKEEncryption":{"type":"object","description":"Settings for the initial security exchange phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":86400,"minimum":3600,"maximum":86400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"},"ESPEncryption":{"type":"object","description":"Settings for the IPSec SA (ESP) phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":3600,"minimum":600,"maximum":14400}}},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The IPSecTunnelEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnelEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the IPSecTunnel.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/IPSecTunnel"}}},"IPSecTunnel":{"description":"Properties with all data needed to create a new IPSec Gateway Tunnel.\\\n__Note__: there is a limit to the total number of tunnels.  Please refer to product documentation.\n","required":["name","remoteHost","auth","cloudNetworkCIDRs","peerNetworkCIDRs","ike","esp"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSec Gateway Tunnel.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSec Gateway Tunnel.","maxLength":1024},"remoteHost":{"type":"string","description":"The remote peer host fully qualified domain name or IPV4 IP to connect to.\n* __Note__: This should be the public IP of the remote peer.\n* Tunnels only support IPV4 or hostname (fully qualified DNS name).\n","anyOf":[{"format":"ipv4"},{"format":"hostname"}]},"auth":{"$ref":"#/components/schemas/IPSecTunnelAuth"},"ike":{"$ref":"#/components/schemas/IKEEncryption"},"esp":{"$ref":"#/components/schemas/ESPEncryption"},"cloudNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Left\" side that are allowed to connect to the IPSec tunnel,\ni.e., the CIDRs within your IONOS CLOUD LAN. Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"}},"peerNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Right\" side that are allowed to connect to the IPSec tunnel.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.","items":{"$ref":"#/components/schemas/CIDR"}}}},"IPSecTunnelAuth":{"description":"Properties with all data needed to define IPSec Authentication.\n","required":["method"],"type":"object","properties":{"method":{"type":"string","description":"The Authentication Method to use for IPSec Authentication.\\\nOptions:\n  - PSK\n","default":"PSK"},"psk":{"$ref":"#/components/schemas/IPSecPSK"}}},"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}},"IKEEncryption":{"type":"object","description":"Settings for the initial security exchange phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":86400,"minimum":3600,"maximum":86400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"},"ESPEncryption":{"type":"object","description":"Settings for the IPSec SA (ESP) phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":3600,"minimum":600,"maximum":14400}}},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The IPSecTunnelCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnelCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/IPSecTunnel"}}},"IPSecTunnel":{"description":"Properties with all data needed to create a new IPSec Gateway Tunnel.\\\n__Note__: there is a limit to the total number of tunnels.  Please refer to product documentation.\n","required":["name","remoteHost","auth","cloudNetworkCIDRs","peerNetworkCIDRs","ike","esp"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSec Gateway Tunnel.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSec Gateway Tunnel.","maxLength":1024},"remoteHost":{"type":"string","description":"The remote peer host fully qualified domain name or IPV4 IP to connect to.\n* __Note__: This should be the public IP of the remote peer.\n* Tunnels only support IPV4 or hostname (fully qualified DNS name).\n","anyOf":[{"format":"ipv4"},{"format":"hostname"}]},"auth":{"$ref":"#/components/schemas/IPSecTunnelAuth"},"ike":{"$ref":"#/components/schemas/IKEEncryption"},"esp":{"$ref":"#/components/schemas/ESPEncryption"},"cloudNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Left\" side that are allowed to connect to the IPSec tunnel,\ni.e., the CIDRs within your IONOS CLOUD LAN. Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"}},"peerNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Right\" side that are allowed to connect to the IPSec tunnel.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.","items":{"$ref":"#/components/schemas/CIDR"}}}},"IPSecTunnelAuth":{"description":"Properties with all data needed to define IPSec Authentication.\n","required":["method"],"type":"object","properties":{"method":{"type":"string","description":"The Authentication Method to use for IPSec Authentication.\\\nOptions:\n  - PSK\n","default":"PSK"},"psk":{"$ref":"#/components/schemas/IPSecPSK"}}},"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}},"IKEEncryption":{"type":"object","description":"Settings for the initial security exchange phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":86400,"minimum":3600,"maximum":86400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"},"ESPEncryption":{"type":"object","description":"Settings for the IPSec SA (ESP) phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":3600,"minimum":600,"maximum":14400}}},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The IPSecPSK object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}}}}}
```

## The IPSecTunnelAuth object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnelAuth":{"description":"Properties with all data needed to define IPSec Authentication.\n","required":["method"],"type":"object","properties":{"method":{"type":"string","description":"The Authentication Method to use for IPSec Authentication.\\\nOptions:\n  - PSK\n","default":"PSK"},"psk":{"$ref":"#/components/schemas/IPSecPSK"}}},"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}}}}}
```

## The IPSecTunnel object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnel":{"description":"Properties with all data needed to create a new IPSec Gateway Tunnel.\\\n__Note__: there is a limit to the total number of tunnels.  Please refer to product documentation.\n","required":["name","remoteHost","auth","cloudNetworkCIDRs","peerNetworkCIDRs","ike","esp"],"type":"object","properties":{"name":{"type":"string","description":"The human readable name of your IPSec Gateway Tunnel.","maxLength":255},"description":{"type":"string","description":"Human readable description of the IPSec Gateway Tunnel.","maxLength":1024},"remoteHost":{"type":"string","description":"The remote peer host fully qualified domain name or IPV4 IP to connect to.\n* __Note__: This should be the public IP of the remote peer.\n* Tunnels only support IPV4 or hostname (fully qualified DNS name).\n","anyOf":[{"format":"ipv4"},{"format":"hostname"}]},"auth":{"$ref":"#/components/schemas/IPSecTunnelAuth"},"ike":{"$ref":"#/components/schemas/IKEEncryption"},"esp":{"$ref":"#/components/schemas/ESPEncryption"},"cloudNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Left\" side that are allowed to connect to the IPSec tunnel,\ni.e., the CIDRs within your IONOS CLOUD LAN. Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.\n","items":{"$ref":"#/components/schemas/CIDR"}},"peerNetworkCIDRs":{"type":"array","minItems":1,"maxItems":20,"description":"The network CIDRs on the \"Right\" side that are allowed to connect to the IPSec tunnel.  Specify \"0.0.0.0/0\" or \"::/0\" for all addresses.","items":{"$ref":"#/components/schemas/CIDR"}}}},"IPSecTunnelAuth":{"description":"Properties with all data needed to define IPSec Authentication.\n","required":["method"],"type":"object","properties":{"method":{"type":"string","description":"The Authentication Method to use for IPSec Authentication.\\\nOptions:\n  - PSK\n","default":"PSK"},"psk":{"$ref":"#/components/schemas/IPSecPSK"}}},"IPSecPSK":{"description":"Properties with all data needed to define IPSec Authentication PSK. This is required if the method is PSK.\n","required":["key"],"type":"object","properties":{"key":{"type":"string","writeOnly":true,"description":"The Pre-Shared Key used for IPSec Authentication."}}},"IKEEncryption":{"type":"object","description":"Settings for the initial security exchange phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":86400,"minimum":3600,"maximum":86400}}},"DiffieHellmanGroup":{"type":"string","description":"The Diffie-Hellman Group to use for IPSec Encryption.\\\nOptions:\n  - 15-MODP3072\n  - 16-MODP4096\n  - 19-ECP256\n  - 20-ECP384\n  - 21-ECP521\n  - 28-ECP256BP\n  - 29-ECP384BP\n  - 30-ECP512BP\n","default":"16-MODP4096"},"EncryptionAlgorithm":{"type":"string","description":"The encryption algorithm to use for IPSec Encryption.\\\nOptions:\n- AES128-CTR\n- AES256-CTR\n- AES128-GCM-16\n- AES256-GCM-16\n- AES128-GCM-12\n- AES256-GCM-12\n- AES128-CCM-12\n- AES256-CCM-12\n- AES128\n- AES256\n","default":"AES256"},"IntegrityAlgorithm":{"type":"string","description":"The integrity algorithm to use for IPSec Encryption.\\\nOptions:\n- SHA256\n- SHA384\n- SHA512\n- AES-XCBC\n","default":"SHA256"},"ESPEncryption":{"type":"object","description":"Settings for the IPSec SA (ESP) phase.","properties":{"diffieHellmanGroup":{"allOf":[{"$ref":"#/components/schemas/DiffieHellmanGroup"}]},"encryptionAlgorithm":{"allOf":[{"$ref":"#/components/schemas/EncryptionAlgorithm"}]},"integrityAlgorithm":{"allOf":[{"$ref":"#/components/schemas/IntegrityAlgorithm"}]},"lifetime":{"type":"integer","description":"The phase lifetime in seconds.","default":3600,"minimum":600,"maximum":14400}}},"CIDR":{"type":"string","anyOf":[{"$ref":"#/components/schemas/IPV4CIDR"},{"$ref":"#/components/schemas/IPV6CIDR"}]},"IPV4CIDR":{"type":"string","pattern":"^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\/([0-9]|[1-2][0-9]|3[0-2])$","description":"Describes a range of IP V4 addresses in CIDR notation.\n"},"IPV6CIDR":{"type":"string","pattern":"^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$","description":"Describes a range of IP V6 addresses in CIDR notation.\n"}}}}
```

## The Status object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true}}}}
```

## The StatusMessage object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}}
```

## The ResourceStatus object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}}
```

## The WireguardGatewayMetadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardGatewayMetadata":{"description":"WireGuard Gateway Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"},{"type":"object","required":["publicKey"],"properties":{"publicKey":{"type":"string","description":"Public key correspondng to the WireGuard Server private key.\n"}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}}
```

## The WireguardPeerMetadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"WireguardPeerMetadata":{"description":"WireGuard Peer Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}}
```

## The IPSecGatewayMetadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecGatewayMetadata":{"description":"IPSec Gateway Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}}
```

## The IPSecTunnelMetadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"IPSecTunnelMetadata":{"description":"IPSec Tunnel Metadata","readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/ResourceStatus"}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"ResourceStatus":{"type":"object","description":"The current status of the resource.","required":["status"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"statusMessage":{"$ref":"#/components/schemas/StatusMessage"}}},"Status":{"type":"string","description":"The current status of the resource. The status can be:\n\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED`: - resource failed, details in `statusMessage`.\n","readOnly":true},"StatusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}}
```

## The MaintenanceWindow object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"MaintenanceWindow":{"description":"A weekly 4 hour-long window, during which maintenance might occur.\n","properties":{"time":{"type":"string","description":"Start of the maintenance window in UTC time."},"dayOfTheWeek":{"$ref":"#/components/schemas/DayOfTheWeek"}},"required":["time","dayOfTheWeek"],"type":"object"},"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The DayOfTheWeek object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"DayOfTheWeek":{"description":"The name of the week day.","type":"string","enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]}}}}
```

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}}}}
```

## The Metadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}}}}}
```

## The Pagination object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}}}}}
```

## The Offset object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true}}}}
```

## The Limit object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true}}}}
```

## The Links object

```json
{"openapi":"3.0.3","info":{"title":"IONOS CLOUD VPN Gateway API","version":"1.0.0"},"components":{"schemas":{"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ionos.com/cloud/api-reference/network-services/vpn-gateway/models.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
