# WireguardGateways

Operations to create and manage WireGuard VPN Gateways.

This tag groups all operations for wireguardgateways.

## Retrieve all WireguardGateways

> This endpoint enables retrieving all WireguardGateways using\
> pagination and optional filters.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud VPN Gateway API","version":"1.0.0"},"tags":[{"name":"WireguardGateways","description":"Operations to create and manage WireGuard VPN Gateways.\n\nThis tag groups all operations for wireguardgateways.\n"}],"servers":[{"url":"https://vpn.de-fra.ionos.com","description":"Production de-fra"},{"url":"https://vpn.de-txl.ionos.com","description":"Production de-txl"},{"url":"https://vpn.es-vit.ionos.com","description":"Production es-vit"},{"url":"https://vpn.gb-bhx.ionos.com","description":"Production gb-bhx"},{"url":"https://vpn.gb-lhr.ionos.com","description":"Production gb-lhr"},{"url":"https://vpn.us-ewr.ionos.com","description":"Production us-ewr"},{"url":"https://vpn.us-las.ionos.com","description":"Production us-las"},{"url":"https://vpn.us-mci.ionos.com","description":"Production us-mci"},{"url":"https://vpn.fr-par.ionos.com","description":"Production fr-par"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"parameters":{"paginationOffset":{"name":"offset","in":"query","description":"The first element (of the total list of elements) to include in the response. Use together with limit for pagination.","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},"paginationLimit":{"name":"limit","in":"query","description":"The maximum number of elements to return. Use together with offset for pagination.","required":false,"schema":{"type":"integer","format":"int32","default":100,"minimum":1,"maximum":1000}}},"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}}},"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"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/wireguardgateways":{"get":{"operationId":"wireguardgatewaysGet","summary":"Retrieve all WireguardGateways","description":"This endpoint enables retrieving all WireguardGateways using\npagination and optional filters.\n","parameters":[{"$ref":"#/components/parameters/paginationOffset"},{"$ref":"#/components/parameters/paginationLimit"}],"tags":["WireguardGateways"],"responses":{"200":{"description":"Returned all requested WireguardGateways successfully.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayReadList"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Create WireguardGateway

> Creates a new WireguardGateway.\
> \
> The full WireguardGateway needs to be provided to create the object.\
> Optional data will be filled with defaults or left empty.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud VPN Gateway API","version":"1.0.0"},"tags":[{"name":"WireguardGateways","description":"Operations to create and manage WireGuard VPN Gateways.\n\nThis tag groups all operations for wireguardgateways.\n"}],"servers":[{"url":"https://vpn.de-fra.ionos.com","description":"Production de-fra"},{"url":"https://vpn.de-txl.ionos.com","description":"Production de-txl"},{"url":"https://vpn.es-vit.ionos.com","description":"Production es-vit"},{"url":"https://vpn.gb-bhx.ionos.com","description":"Production gb-bhx"},{"url":"https://vpn.gb-lhr.ionos.com","description":"Production gb-lhr"},{"url":"https://vpn.us-ewr.ionos.com","description":"Production us-ewr"},{"url":"https://vpn.us-las.ionos.com","description":"Production us-las"},{"url":"https://vpn.us-mci.ionos.com","description":"Production us-mci"},{"url":"https://vpn.fr-par.ionos.com","description":"Production fr-par"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"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"]},"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},"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"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"### Unsupported Media Type\nThe request has an unsupported media type.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"### Unprocessable Entity\nThe request was well-formed but was unable to be followed due to semantic errors.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/wireguardgateways":{"post":{"operationId":"wireguardgatewaysPost","summary":"Create WireguardGateway","tags":["WireguardGateways"],"description":"Creates a new WireguardGateway.\n\nThe full WireguardGateway needs to be provided to create the object.\nOptional data will be filled with defaults or left empty.\n","requestBody":{"description":"WireguardGateway to create.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayCreate"}}}},"responses":{"201":{"description":"WireguardGateway successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Retrieve WireguardGateway

> Returns the WireguardGateway by ID.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud VPN Gateway API","version":"1.0.0"},"tags":[{"name":"WireguardGateways","description":"Operations to create and manage WireGuard VPN Gateways.\n\nThis tag groups all operations for wireguardgateways.\n"}],"servers":[{"url":"https://vpn.de-fra.ionos.com","description":"Production de-fra"},{"url":"https://vpn.de-txl.ionos.com","description":"Production de-txl"},{"url":"https://vpn.es-vit.ionos.com","description":"Production es-vit"},{"url":"https://vpn.gb-bhx.ionos.com","description":"Production gb-bhx"},{"url":"https://vpn.gb-lhr.ionos.com","description":"Production gb-lhr"},{"url":"https://vpn.us-ewr.ionos.com","description":"Production us-ewr"},{"url":"https://vpn.us-las.ionos.com","description":"Production us-las"},{"url":"https://vpn.us-mci.ionos.com","description":"Production us-mci"},{"url":"https://vpn.fr-par.ionos.com","description":"Production fr-par"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"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"]},"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"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/wireguardgateways/{gatewayId}":{"get":{"operationId":"wireguardgatewaysFindById","summary":"Retrieve WireguardGateway","tags":["WireguardGateways"],"description":"Returns the WireguardGateway by ID.","parameters":[{"name":"gatewayId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the WireguardGateway."}],"responses":{"200":{"description":"Getting WireguardGateway was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Ensure WireguardGateway

> Ensures that the WireguardGateway with the provided ID is created or modified.\
> The full WireguardGateway needs to be provided to ensure\
> (either update or create) the WireguardGateway. Non present data will\
> only be filled with defaults or left empty, but not take\
> previous values into consideration.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud VPN Gateway API","version":"1.0.0"},"tags":[{"name":"WireguardGateways","description":"Operations to create and manage WireGuard VPN Gateways.\n\nThis tag groups all operations for wireguardgateways.\n"}],"servers":[{"url":"https://vpn.de-fra.ionos.com","description":"Production de-fra"},{"url":"https://vpn.de-txl.ionos.com","description":"Production de-txl"},{"url":"https://vpn.es-vit.ionos.com","description":"Production es-vit"},{"url":"https://vpn.gb-bhx.ionos.com","description":"Production gb-bhx"},{"url":"https://vpn.gb-lhr.ionos.com","description":"Production gb-lhr"},{"url":"https://vpn.us-ewr.ionos.com","description":"Production us-ewr"},{"url":"https://vpn.us-las.ionos.com","description":"Production us-las"},{"url":"https://vpn.us-mci.ionos.com","description":"Production us-mci"},{"url":"https://vpn.fr-par.ionos.com","description":"Production fr-par"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"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"]},"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},"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"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"### Conflict\nThe UUID is already taken by another party, follow the guides to generate UUIDs uniquely.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"### Unsupported Media Type\nThe request has an unsupported media type.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"### Unprocessable Entity\nThe request was well-formed but was unable to be followed due to semantic errors.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/wireguardgateways/{gatewayId}":{"put":{"operationId":"wireguardgatewaysPut","summary":"Ensure WireguardGateway","tags":["WireguardGateways"],"description":"Ensures that the WireguardGateway with the provided ID is created or modified.\nThe full WireguardGateway needs to be provided to ensure\n(either update or create) the WireguardGateway. Non present data will\nonly be filled with defaults or left empty, but not take\nprevious values into consideration.\n","parameters":[{"name":"gatewayId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the WireguardGateway."}],"requestBody":{"description":"update WireguardGateway","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayEnsure"}}}},"responses":{"200":{"description":"WireguardGateway successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayRead"}}}},"201":{"description":"WireguardGateway successfully ensured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireguardGatewayRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Delete WireguardGateway

> Deletes the specified WireguardGateway.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud VPN Gateway API","version":"1.0.0"},"tags":[{"name":"WireguardGateways","description":"Operations to create and manage WireGuard VPN Gateways.\n\nThis tag groups all operations for wireguardgateways.\n"}],"servers":[{"url":"https://vpn.de-fra.ionos.com","description":"Production de-fra"},{"url":"https://vpn.de-txl.ionos.com","description":"Production de-txl"},{"url":"https://vpn.es-vit.ionos.com","description":"Production es-vit"},{"url":"https://vpn.gb-bhx.ionos.com","description":"Production gb-bhx"},{"url":"https://vpn.gb-lhr.ionos.com","description":"Production gb-lhr"},{"url":"https://vpn.us-ewr.ionos.com","description":"Production us-ewr"},{"url":"https://vpn.us-las.ionos.com","description":"Production us-las"},{"url":"https://vpn.us-mci.ionos.com","description":"Production us-mci"},{"url":"https://vpn.fr-par.ionos.com","description":"Production fr-par"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"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"}}}}}}}},"paths":{"/wireguardgateways/{gatewayId}":{"delete":{"operationId":"wireguardgatewaysDelete","summary":"Delete WireguardGateway","tags":["WireguardGateways"],"description":"Deletes the specified WireguardGateway.","parameters":[{"name":"gatewayId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the WireguardGateway."}],"responses":{"202":{"description":"Deleting WireguardGateway was successful."},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```
