# Models

## The DistributionReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"DistributionReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of Distribution resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of Distribution resources.","type":"string"},"items":{"description":"The list of Distribution resources.","type":"array","items":{"$ref":"#/components/schemas/DistributionRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"DistributionRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Distribution.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["distribution"]},"href":{"description":"The URL of the Distribution.","type":"string"},"metadata":{"$ref":"#/components/schemas/DistributionMetadata"},"properties":{"$ref":"#/components/schemas/Distribution"}}},"DistributionMetadata":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/IpAddresses"},{"$ref":"#/components/schemas/ResourceState"}]},"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}}},"IpAddresses":{"type":"object","description":"The IP addresses of the distribution.\nNote that the IP addresses will be included in the response only when\nthe CDN distribution is in the 'AVAILABLE' state.\n","properties":{"publicEndpointIpv4":{"type":"string","format":"ipv4","description":"IP of the distribution. It has to be included on the domain DNS Zone as A record.","readOnly":true},"publicEndpointIpv6":{"type":"string","format":"ipv6","description":"IP of the distribution, it has to be included on the domain DNS Zone as AAAA record.","readOnly":true}}},"ResourceState":{"type":"object","description":"The current status of the resource.","required":["state"],"properties":{"state":{"type":"string","description":"Represents one of the possible states of the resource.","enum":["AVAILABLE","BUSY","FAILED","UNKNOWN"],"readOnly":true},"message":{"type":"string","description":"A human readable message describing the current state.\nIn case of an error, the message will contain a detailed error message.\n","readOnly":true}}},"Distribution":{"type":"object","description":"A CDN distribution resource.\n","required":["domain","routingRules"],"properties":{"domain":{"description":"The domain of the distribution.","type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","minLength":2,"maxLength":253},"certificateId":{"description":"The ID of the certificate to use for the distribution.","type":"string","format":"uuid"},"routingRules":{"type":"array","items":{"$ref":"#/components/schemas/RoutingRule"},"description":"The routing rules for the distribution.","minItems":1,"maxItems":25}}},"RoutingRule":{"type":"object","required":["prefix","upstream","scheme"],"properties":{"scheme":{"type":"string","description":"The scheme of the routing rule.","enum":["http","https","http/https"]},"prefix":{"type":"string","description":"The prefix of the routing rule.","pattern":"^(\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*[\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*]*)$","minLength":1,"maxLength":128},"upstream":{"$ref":"#/components/schemas/Upstream"}}},"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\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 DistributionRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"DistributionRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the Distribution.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["distribution"]},"href":{"description":"The URL of the Distribution.","type":"string"},"metadata":{"$ref":"#/components/schemas/DistributionMetadata"},"properties":{"$ref":"#/components/schemas/Distribution"}}},"DistributionMetadata":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/IpAddresses"},{"$ref":"#/components/schemas/ResourceState"}]},"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}}},"IpAddresses":{"type":"object","description":"The IP addresses of the distribution.\nNote that the IP addresses will be included in the response only when\nthe CDN distribution is in the 'AVAILABLE' state.\n","properties":{"publicEndpointIpv4":{"type":"string","format":"ipv4","description":"IP of the distribution. It has to be included on the domain DNS Zone as A record.","readOnly":true},"publicEndpointIpv6":{"type":"string","format":"ipv6","description":"IP of the distribution, it has to be included on the domain DNS Zone as AAAA record.","readOnly":true}}},"ResourceState":{"type":"object","description":"The current status of the resource.","required":["state"],"properties":{"state":{"type":"string","description":"Represents one of the possible states of the resource.","enum":["AVAILABLE","BUSY","FAILED","UNKNOWN"],"readOnly":true},"message":{"type":"string","description":"A human readable message describing the current state.\nIn case of an error, the message will contain a detailed error message.\n","readOnly":true}}},"Distribution":{"type":"object","description":"A CDN distribution resource.\n","required":["domain","routingRules"],"properties":{"domain":{"description":"The domain of the distribution.","type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","minLength":2,"maxLength":253},"certificateId":{"description":"The ID of the certificate to use for the distribution.","type":"string","format":"uuid"},"routingRules":{"type":"array","items":{"$ref":"#/components/schemas/RoutingRule"},"description":"The routing rules for the distribution.","minItems":1,"maxItems":25}}},"RoutingRule":{"type":"object","required":["prefix","upstream","scheme"],"properties":{"scheme":{"type":"string","description":"The scheme of the routing rule.","enum":["http","https","http/https"]},"prefix":{"type":"string","description":"The prefix of the routing rule.","pattern":"^(\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*[\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*]*)$","minLength":1,"maxLength":128},"upstream":{"$ref":"#/components/schemas/Upstream"}}},"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The DistributionEnsure object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"DistributionEnsure":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Distribution"}}},"Distribution":{"type":"object","description":"A CDN distribution resource.\n","required":["domain","routingRules"],"properties":{"domain":{"description":"The domain of the distribution.","type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","minLength":2,"maxLength":253},"certificateId":{"description":"The ID of the certificate to use for the distribution.","type":"string","format":"uuid"},"routingRules":{"type":"array","items":{"$ref":"#/components/schemas/RoutingRule"},"description":"The routing rules for the distribution.","minItems":1,"maxItems":25}}},"RoutingRule":{"type":"object","required":["prefix","upstream","scheme"],"properties":{"scheme":{"type":"string","description":"The scheme of the routing rule.","enum":["http","https","http/https"]},"prefix":{"type":"string","description":"The prefix of the routing rule.","pattern":"^(\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*[\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*]*)$","minLength":1,"maxLength":128},"upstream":{"$ref":"#/components/schemas/Upstream"}}},"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The DistributionCreate object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"DistributionCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/Distribution"}}},"Distribution":{"type":"object","description":"A CDN distribution resource.\n","required":["domain","routingRules"],"properties":{"domain":{"description":"The domain of the distribution.","type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","minLength":2,"maxLength":253},"certificateId":{"description":"The ID of the certificate to use for the distribution.","type":"string","format":"uuid"},"routingRules":{"type":"array","items":{"$ref":"#/components/schemas/RoutingRule"},"description":"The routing rules for the distribution.","minItems":1,"maxItems":25}}},"RoutingRule":{"type":"object","required":["prefix","upstream","scheme"],"properties":{"scheme":{"type":"string","description":"The scheme of the routing rule.","enum":["http","https","http/https"]},"prefix":{"type":"string","description":"The prefix of the routing rule.","pattern":"^(\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*[\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*]*)$","minLength":1,"maxLength":128},"upstream":{"$ref":"#/components/schemas/Upstream"}}},"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The EdgeServerIpInfoReadList object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"EdgeServerIpInfoReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of EdgeServerIpInfo resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of EdgeServerIpInfo resources.","type":"string"},"items":{"description":"The list of EdgeServerIpInfo resources.","type":"array","items":{"$ref":"#/components/schemas/EdgeServerIpInfoRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"EdgeServerIpInfoRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the EdgeServerIpInfo.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["edgeserveripinfo"]},"href":{"description":"The URL of the EdgeServerIpInfo.","type":"string"},"metadata":{"$ref":"#/components/schemas/NoMetadata"},"properties":{"$ref":"#/components/schemas/EdgeServerIpInfo"}}},"NoMetadata":{"type":"object"},"EdgeServerIpInfo":{"type":"object","description":"A CDN edge IP information resource.","properties":{"type":{"type":"string","description":"Represents one of the possible types of IP of CDN edge.","enum":["ipv6","ipv4"],"readOnly":true},"cidr":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"ipv6"}],"description":"the range of ip addresses for the CDN network\n","readOnly":true},"description":{"type":"string","description":"A short description\n","readOnly":true}}},"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 EdgeServerIpInfoRead object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"EdgeServerIpInfoRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the EdgeServerIpInfo.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["edgeserveripinfo"]},"href":{"description":"The URL of the EdgeServerIpInfo.","type":"string"},"metadata":{"$ref":"#/components/schemas/NoMetadata"},"properties":{"$ref":"#/components/schemas/EdgeServerIpInfo"}}},"NoMetadata":{"type":"object"},"EdgeServerIpInfo":{"type":"object","description":"A CDN edge IP information resource.","properties":{"type":{"type":"string","description":"Represents one of the possible types of IP of CDN edge.","enum":["ipv6","ipv4"],"readOnly":true},"cidr":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"ipv6"}],"description":"the range of ip addresses for the CDN network\n","readOnly":true},"description":{"type":"string","description":"A short description\n","readOnly":true}}}}}}
```

## The Distribution object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"Distribution":{"type":"object","description":"A CDN distribution resource.\n","required":["domain","routingRules"],"properties":{"domain":{"description":"The domain of the distribution.","type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","minLength":2,"maxLength":253},"certificateId":{"description":"The ID of the certificate to use for the distribution.","type":"string","format":"uuid"},"routingRules":{"type":"array","items":{"$ref":"#/components/schemas/RoutingRule"},"description":"The routing rules for the distribution.","minItems":1,"maxItems":25}}},"RoutingRule":{"type":"object","required":["prefix","upstream","scheme"],"properties":{"scheme":{"type":"string","description":"The scheme of the routing rule.","enum":["http","https","http/https"]},"prefix":{"type":"string","description":"The prefix of the routing rule.","pattern":"^(\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*[\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*]*)$","minLength":1,"maxLength":128},"upstream":{"$ref":"#/components/schemas/Upstream"}}},"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The RoutingRule object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"RoutingRule":{"type":"object","required":["prefix","upstream","scheme"],"properties":{"scheme":{"type":"string","description":"The scheme of the routing rule.","enum":["http","https","http/https"]},"prefix":{"type":"string","description":"The prefix of the routing rule.","pattern":"^(\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*[\\/[\\w\\;\\:\\@\\&\\=\\$\\+\\.\\-]*]*)$","minLength":1,"maxLength":128},"upstream":{"$ref":"#/components/schemas/Upstream"}}},"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The Upstream object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"Upstream":{"type":"object","required":["host","caching","waf","rateLimitClass","sniMode"],"properties":{"host":{"type":"string","pattern":"^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}\\.?$","description":"The upstream host that handles the requests if not already cached.\nThis host will be protected by the WAF if the option is enabled.\n"},"caching":{"type":"boolean","description":"Enable or disable caching.\nIf enabled, the CDN will cache the responses from the upstream host.\nSubsequent requests for the same resource will be served from the cache.\n"},"waf":{"type":"boolean","description":"Enable or disable WAF to protect the upstream host."},"geoRestrictions":{"description":"This field manages the list of countries that are allowed or blocked from accessing the resource\nfrom the upstream host based on their ISO 3166-1 alpha-2 codes.\n","oneOf":[{"type":"object","required":["blockList"],"properties":{"blockList":{"$ref":"#/components/schemas/CountryCodes"}}},{"type":"object","required":["allowList"],"properties":{"allowList":{"$ref":"#/components/schemas/CountryCodes"}}}]},"rateLimitClass":{"type":"string","enum":["R1","R5","R10","R25","R50","R100","R250","R500"],"description":"Rate limit class that will be applied to limit the number of incoming requests per IP."},"sniMode":{"type":"string","description":"The SNI (Server Name Indication) mode of the upstream host. It supports two modes:\n- distribution: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate\nthat matches the configured domain of the CDN distribution.\n- origin: for outgoing connections to the upstream host, the CDN requires the upstream host to present a valid certificate that\nmatches the configured upstream/origin hostname.\n","enum":["distribution","origin"]}}},"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The DistributionMetadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"DistributionMetadata":{"readOnly":true,"allOf":[{"$ref":"#/components/schemas/Metadata"},{"$ref":"#/components/schemas/IpAddresses"},{"$ref":"#/components/schemas/ResourceState"}]},"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}}},"IpAddresses":{"type":"object","description":"The IP addresses of the distribution.\nNote that the IP addresses will be included in the response only when\nthe CDN distribution is in the 'AVAILABLE' state.\n","properties":{"publicEndpointIpv4":{"type":"string","format":"ipv4","description":"IP of the distribution. It has to be included on the domain DNS Zone as A record.","readOnly":true},"publicEndpointIpv6":{"type":"string","format":"ipv6","description":"IP of the distribution, it has to be included on the domain DNS Zone as AAAA record.","readOnly":true}}},"ResourceState":{"type":"object","description":"The current status of the resource.","required":["state"],"properties":{"state":{"type":"string","description":"Represents one of the possible states of the resource.","enum":["AVAILABLE","BUSY","FAILED","UNKNOWN"],"readOnly":true},"message":{"type":"string","description":"A human readable message describing the current state.\nIn case of an error, the message will contain a detailed error message.\n","readOnly":true}}}}}}
```

## The CountryCodes object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"CountryCodes":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},"description":"Country codes, the format should be based on ISO 3166-1 alpha-2 codes standard.\nThese codes are used to either block or allow countries in geoIPBlock.\n"}}}}
```

## The IpAddresses object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"IpAddresses":{"type":"object","description":"The IP addresses of the distribution.\nNote that the IP addresses will be included in the response only when\nthe CDN distribution is in the 'AVAILABLE' state.\n","properties":{"publicEndpointIpv4":{"type":"string","format":"ipv4","description":"IP of the distribution. It has to be included on the domain DNS Zone as A record.","readOnly":true},"publicEndpointIpv6":{"type":"string","format":"ipv6","description":"IP of the distribution, it has to be included on the domain DNS Zone as AAAA record.","readOnly":true}}}}}}
```

## The ResourceState object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"ResourceState":{"type":"object","description":"The current status of the resource.","required":["state"],"properties":{"state":{"type":"string","description":"Represents one of the possible states of the resource.","enum":["AVAILABLE","BUSY","FAILED","UNKNOWN"],"readOnly":true},"message":{"type":"string","description":"A human readable message describing the current state.\nIn case of an error, the message will contain a detailed error message.\n","readOnly":true}}}}}}
```

## The EdgeServerIpInfo object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"EdgeServerIpInfo":{"type":"object","description":"A CDN edge IP information resource.","properties":{"type":{"type":"string","description":"Represents one of the possible types of IP of CDN edge.","enum":["ipv6","ipv4"],"readOnly":true},"cidr":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"ipv6"}],"description":"the range of ip addresses for the CDN network\n","readOnly":true},"description":{"type":"string","description":"A short description\n","readOnly":true}}}}}}
```

## The NoMetadata object

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - CDN Distribution API","version":"1.2.0"},"components":{"schemas":{"NoMetadata":{"type":"object"}}}}
```

## The Error object

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

## The Metadata object

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

## The Pagination object

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

## The Offset object

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

## The Limit object

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

## The Links object

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