> 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/api-gateway/models.md).

# Models

## The GatewayReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"GatewayReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of Gateway resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of Gateway resources.","type":"string"},"items":{"description":"The list of Gateway resources.","type":"array","items":{"$ref":"#/components/schemas/GatewayRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"GatewayRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Gateway.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["gateway"]},"href":{"description":"The URL of the Gateway.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithEndpoint"},"properties":{"$ref":"#/components/schemas/Gateway"}}},"MetadataWithEndpoint":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["publicEndpoint"],"properties":{"publicEndpoint":{"type":"string","description":"The public endpoint of the API Gateway instance.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\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 `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}]},"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}}},"Gateway":{"type":"object","description":"An API gateway consists of the generic rules and configurations of an API Gateway.\n","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$"},"logs":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of logs for observability of this instance."},"metrics":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of metrics for observability of this instance."},"customDomains":{"type":"array","maxItems":5,"items":{"type":"object","description":"The custom domain that the API Gateway instance should listen on.\n","properties":{"name":{"type":"string","description":"The domain name of the distribution. Field is validated as FQDN [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"fqdn"},"certificateId":{"type":"string","format":"uuid","description":"The ID of the certificate to use for the distribution."}}}},"cache":{"allOf":[{"$ref":"#/components/schemas/Cache"},{"type":"object","properties":{"override":{"type":"boolean","default":false,"description":"To enable users to override the cache settings for the routes with the this configuration."}}}]}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\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 GatewayRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"GatewayRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Gateway.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["gateway"]},"href":{"description":"The URL of the Gateway.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithEndpoint"},"properties":{"$ref":"#/components/schemas/Gateway"}}},"MetadataWithEndpoint":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["publicEndpoint"],"properties":{"publicEndpoint":{"type":"string","description":"The public endpoint of the API Gateway instance.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\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 `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}]},"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}}},"Gateway":{"type":"object","description":"An API gateway consists of the generic rules and configurations of an API Gateway.\n","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$"},"logs":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of logs for observability of this instance."},"metrics":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of metrics for observability of this instance."},"customDomains":{"type":"array","maxItems":5,"items":{"type":"object","description":"The custom domain that the API Gateway instance should listen on.\n","properties":{"name":{"type":"string","description":"The domain name of the distribution. Field is validated as FQDN [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"fqdn"},"certificateId":{"type":"string","format":"uuid","description":"The ID of the certificate to use for the distribution."}}}},"cache":{"allOf":[{"$ref":"#/components/schemas/Cache"},{"type":"object","properties":{"override":{"type":"boolean","default":false,"description":"To enable users to override the cache settings for the routes with the this configuration."}}}]}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The GatewayEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"GatewayEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Gateway.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Gateway"}}},"Gateway":{"type":"object","description":"An API gateway consists of the generic rules and configurations of an API Gateway.\n","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$"},"logs":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of logs for observability of this instance."},"metrics":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of metrics for observability of this instance."},"customDomains":{"type":"array","maxItems":5,"items":{"type":"object","description":"The custom domain that the API Gateway instance should listen on.\n","properties":{"name":{"type":"string","description":"The domain name of the distribution. Field is validated as FQDN [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"fqdn"},"certificateId":{"type":"string","format":"uuid","description":"The ID of the certificate to use for the distribution."}}}},"cache":{"allOf":[{"$ref":"#/components/schemas/Cache"},{"type":"object","properties":{"override":{"type":"boolean","default":false,"description":"To enable users to override the cache settings for the routes with the this configuration."}}}]}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The GatewayCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"GatewayCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Gateway"}}},"Gateway":{"type":"object","description":"An API gateway consists of the generic rules and configurations of an API Gateway.\n","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$"},"logs":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of logs for observability of this instance."},"metrics":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of metrics for observability of this instance."},"customDomains":{"type":"array","maxItems":5,"items":{"type":"object","description":"The custom domain that the API Gateway instance should listen on.\n","properties":{"name":{"type":"string","description":"The domain name of the distribution. Field is validated as FQDN [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"fqdn"},"certificateId":{"type":"string","format":"uuid","description":"The ID of the certificate to use for the distribution."}}}},"cache":{"allOf":[{"$ref":"#/components/schemas/Cache"},{"type":"object","properties":{"override":{"type":"boolean","default":false,"description":"To enable users to override the cache settings for the routes with the this configuration."}}}]}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The RouteReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"RouteReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of Route resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of Route resources.","type":"string"},"items":{"description":"The list of Route resources.","type":"array","items":{"$ref":"#/components/schemas/RouteRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"RouteRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Route.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["route"]},"href":{"description":"The URL of the Route.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithEndpoint"},"properties":{"$ref":"#/components/schemas/Route"}}},"MetadataWithEndpoint":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["publicEndpoint"],"properties":{"publicEndpoint":{"type":"string","description":"The public endpoint of the API Gateway instance.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\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 `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}]},"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}}},"Route":{"type":"object","description":"A route is a rule that maps an incoming request to a specific backend service.\n","required":["name","type","paths","methods","upstreams"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$","description":"The name of the route."},"type":{"type":"string","description":"This field specifies the protocol used by the ingress to route traffic to the backend service.","default":"http"},"paths":{"type":"array","minItems":1,"items":{"type":"string","format":"path"},"description":"The paths that the route should match.\n"},"methods":{"type":"array","items":{"type":"string","enum":["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]},"description":"The HTTP methods that the route should match.\n"},"websocket":{"type":"boolean","default":false,"description":"To enable websocket support."},"upstreams":{"type":"array","minItems":1,"items":{"required":["scheme","loadbalancer","host","port"],"type":"object","properties":{"scheme":{"type":"string","description":"The target URL of the upstream.","enum":["http","https","grpc","grpcs"],"default":"http"},"loadbalancer":{"type":"string","description":"The load balancer algorithm.","default":"roundrobin"},"host":{"type":"string","description":"The host of the upstream. Field is validated as hostname [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"host"},"port":{"type":"integer","description":"The port of the upstream.","default":80,"minimum":1,"maximum":65535},"weight":{"type":"integer","description":"Weight with which to split traffic to the upstream.","default":100}}}},"cache":{"$ref":"#/components/schemas/Cache"}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\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 RouteRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"RouteRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Route.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["route"]},"href":{"description":"The URL of the Route.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithEndpoint"},"properties":{"$ref":"#/components/schemas/Route"}}},"MetadataWithEndpoint":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["publicEndpoint"],"properties":{"publicEndpoint":{"type":"string","description":"The public endpoint of the API Gateway instance.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\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 `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}]},"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}}},"Route":{"type":"object","description":"A route is a rule that maps an incoming request to a specific backend service.\n","required":["name","type","paths","methods","upstreams"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$","description":"The name of the route."},"type":{"type":"string","description":"This field specifies the protocol used by the ingress to route traffic to the backend service.","default":"http"},"paths":{"type":"array","minItems":1,"items":{"type":"string","format":"path"},"description":"The paths that the route should match.\n"},"methods":{"type":"array","items":{"type":"string","enum":["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]},"description":"The HTTP methods that the route should match.\n"},"websocket":{"type":"boolean","default":false,"description":"To enable websocket support."},"upstreams":{"type":"array","minItems":1,"items":{"required":["scheme","loadbalancer","host","port"],"type":"object","properties":{"scheme":{"type":"string","description":"The target URL of the upstream.","enum":["http","https","grpc","grpcs"],"default":"http"},"loadbalancer":{"type":"string","description":"The load balancer algorithm.","default":"roundrobin"},"host":{"type":"string","description":"The host of the upstream. Field is validated as hostname [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"host"},"port":{"type":"integer","description":"The port of the upstream.","default":80,"minimum":1,"maximum":65535},"weight":{"type":"integer","description":"Weight with which to split traffic to the upstream.","default":100}}}},"cache":{"$ref":"#/components/schemas/Cache"}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The RouteEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"RouteEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Route.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Route"}}},"Route":{"type":"object","description":"A route is a rule that maps an incoming request to a specific backend service.\n","required":["name","type","paths","methods","upstreams"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$","description":"The name of the route."},"type":{"type":"string","description":"This field specifies the protocol used by the ingress to route traffic to the backend service.","default":"http"},"paths":{"type":"array","minItems":1,"items":{"type":"string","format":"path"},"description":"The paths that the route should match.\n"},"methods":{"type":"array","items":{"type":"string","enum":["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]},"description":"The HTTP methods that the route should match.\n"},"websocket":{"type":"boolean","default":false,"description":"To enable websocket support."},"upstreams":{"type":"array","minItems":1,"items":{"required":["scheme","loadbalancer","host","port"],"type":"object","properties":{"scheme":{"type":"string","description":"The target URL of the upstream.","enum":["http","https","grpc","grpcs"],"default":"http"},"loadbalancer":{"type":"string","description":"The load balancer algorithm.","default":"roundrobin"},"host":{"type":"string","description":"The host of the upstream. Field is validated as hostname [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"host"},"port":{"type":"integer","description":"The port of the upstream.","default":80,"minimum":1,"maximum":65535},"weight":{"type":"integer","description":"Weight with which to split traffic to the upstream.","default":100}}}},"cache":{"$ref":"#/components/schemas/Cache"}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The RouteCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"RouteCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Route"}}},"Route":{"type":"object","description":"A route is a rule that maps an incoming request to a specific backend service.\n","required":["name","type","paths","methods","upstreams"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$","description":"The name of the route."},"type":{"type":"string","description":"This field specifies the protocol used by the ingress to route traffic to the backend service.","default":"http"},"paths":{"type":"array","minItems":1,"items":{"type":"string","format":"path"},"description":"The paths that the route should match.\n"},"methods":{"type":"array","items":{"type":"string","enum":["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]},"description":"The HTTP methods that the route should match.\n"},"websocket":{"type":"boolean","default":false,"description":"To enable websocket support."},"upstreams":{"type":"array","minItems":1,"items":{"required":["scheme","loadbalancer","host","port"],"type":"object","properties":{"scheme":{"type":"string","description":"The target URL of the upstream.","enum":["http","https","grpc","grpcs"],"default":"http"},"loadbalancer":{"type":"string","description":"The load balancer algorithm.","default":"roundrobin"},"host":{"type":"string","description":"The host of the upstream. Field is validated as hostname [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"host"},"port":{"type":"integer","description":"The port of the upstream.","default":80,"minimum":1,"maximum":65535},"weight":{"type":"integer","description":"Weight with which to split traffic to the upstream.","default":100}}}},"cache":{"$ref":"#/components/schemas/Cache"}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The Cache object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The Gateway object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"Gateway":{"type":"object","description":"An API gateway consists of the generic rules and configurations of an API Gateway.\n","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$"},"logs":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of logs for observability of this instance."},"metrics":{"type":"boolean","default":false,"description":"This field enables or disables the collection and reporting of metrics for observability of this instance."},"customDomains":{"type":"array","maxItems":5,"items":{"type":"object","description":"The custom domain that the API Gateway instance should listen on.\n","properties":{"name":{"type":"string","description":"The domain name of the distribution. Field is validated as FQDN [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"fqdn"},"certificateId":{"type":"string","format":"uuid","description":"The ID of the certificate to use for the distribution."}}}},"cache":{"allOf":[{"$ref":"#/components/schemas/Cache"},{"type":"object","properties":{"override":{"type":"boolean","default":false,"description":"To enable users to override the cache settings for the routes with the this configuration."}}}]}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The Route object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"Route":{"type":"object","description":"A route is a rule that maps an incoming request to a specific backend service.\n","required":["name","type","paths","methods","upstreams"],"properties":{"name":{"type":"string","minLength":1,"maxLength":25,"pattern":"^[a-zA-Z0-9 _-]+$","description":"The name of the route."},"type":{"type":"string","description":"This field specifies the protocol used by the ingress to route traffic to the backend service.","default":"http"},"paths":{"type":"array","minItems":1,"items":{"type":"string","format":"path"},"description":"The paths that the route should match.\n"},"methods":{"type":"array","items":{"type":"string","enum":["GET","POST","PUT","DELETE","PATCH","OPTIONS","HEAD","CONNECT","TRACE"]},"description":"The HTTP methods that the route should match.\n"},"websocket":{"type":"boolean","default":false,"description":"To enable websocket support."},"upstreams":{"type":"array","minItems":1,"items":{"required":["scheme","loadbalancer","host","port"],"type":"object","properties":{"scheme":{"type":"string","description":"The target URL of the upstream.","enum":["http","https","grpc","grpcs"],"default":"http"},"loadbalancer":{"type":"string","description":"The load balancer algorithm.","default":"roundrobin"},"host":{"type":"string","description":"The host of the upstream. Field is validated as hostname [according to RFC1123](https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Hostname_RFC_1123).","format":"host"},"port":{"type":"integer","description":"The port of the upstream.","default":80,"minimum":1,"maximum":65535},"weight":{"type":"integer","description":"Weight with which to split traffic to the upstream.","default":100}}}},"cache":{"$ref":"#/components/schemas/Cache"}}},"Cache":{"type":"object","description":"The cache configuration for the API Gateway instance. The TTL is 60 seconds.\n","properties":{"enable":{"type":"boolean","default":false,"description":"To enable caching."},"httpMethods":{"type":"array","items":{"type":"string","enum":["GET","POST","HEAD"]},"description":"The HTTP methods that the cache should match.\n"},"httpCodes":{"type":"array","items":{"type":"integer","minimum":200,"maximum":599},"description":"The HTTP status codes that the cache should match.\n"}}}}}}
```

## The MetadataWithStatus object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\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 `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}]},"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 MetadataWithEndpoint object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"components":{"schemas":{"MetadataWithEndpoint":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["publicEndpoint"],"properties":{"publicEndpoint":{"type":"string","description":"The public endpoint of the API Gateway instance.\n","readOnly":true}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\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 `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true}}}]},"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 Error object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - API Gateway","version":"0.0.1"},"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 - API Gateway","version":"0.0.1"},"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 - API Gateway","version":"0.0.1"},"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 - API Gateway","version":"0.0.1"},"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 - API Gateway","version":"0.0.1"},"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 - API Gateway","version":"0.0.1"},"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/api-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.
