{
  "openapi": "3.0.0",
  "info": {
    "title": "bunny.net API",
    "description": "<img src='https://bunny.net/v2/images/bunnynet-logo-dark.svg' style='width: 200px;' alt='bunny.net Logo'>\n               Learn how to use the [bunny.net](https://bunny.net \"bunny.net - The content delivery platform that truly hops.\") API. Everything that can be done with the control panel can also be achieved with our API documented on this page. To learn how to use the storage API, have a look at our <a href='https://bunnycdnstorage.docs.apiary.io/#'>storage API documentation</a>\n               <h2>Third party API clients:</h2> \n               <br/>\n               We currently do not maintain an official API library, but you can use one of the third party ones provided here:<br/><br/>\n               <a rel='nofollow' href='https://github.com/codewithmark/bunnycdn'>https://github.com/codewithmark/bunnycdn</a> (bunny.net PHP library, thanks to <a rel=\"nofollow\" href='https://codewithmark.com'>Code With Mark</a>)\n               <br/><br/>\n               <i style='font-size: 11px;'><b>Note that third party clients are not maintained or developed by bunny.net so we unfortunately cannot offer support for them.</b></i>",
    "termsOfService": "https://bunny.net/tos",
    "contact": {
      "name": "bunny.net",
      "url": "https://docs.bunny.net",
      "email": "support@bunny.net"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.bunny.net",
      "description": "bunny.net API Server"
    }
  ],
  "security": [
    {
      "AccessKey": []
    }
  ],
  "paths": {
    "/country": {
      "get": {
        "tags": [
          "Countries"
        ],
        "summary": "Get Country List",
        "operationId": "CountriesPublic_GetCountryList",
        "responses": {
          "200": {
            "description": "The list of countries and tax rates",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone": {
      "get": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "List DNS Zones",
        "operationId": "DnsZonePublic_Index",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "maximum": 2147483647.0,
              "minimum": 1.0
            },
            "x-position": 1
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "maximum": 1000.0,
              "minimum": 5.0
            },
            "x-position": 2
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search term that will be used to filter the results",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "The list of DNS Zones on the account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationListModelOfDnsZoneModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Add DNS Zone",
        "operationId": "DnsZonePublic_Add",
        "requestBody": {
          "x-name": "dnsZoneModel",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsZoneAddModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "The DNS Zone was successfuly added"
          },
          "400": {
            "description": "Failed adding the DNS Zone. Model validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone/{id}": {
      "get": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Get DNS Zone",
        "operationId": "DnsZonePublic_Index2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS Zone that will be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "The DNS Zone with the requested ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist."
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Update DNS Zones",
        "operationId": "DnsZonePublic_Update",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS Zone that will be updated",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "The configuration that should be applied to the DNS zone",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDnsZoneModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The DNS Zone with the requested ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist."
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Delete DNS Zone",
        "operationId": "DnsZonePublic_Delete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID that will be deleted.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The DNS Zone was successfuly deleted."
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist."
          },
          "400": {
            "description": "Failed deleting the DNS Zone. See error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone/{id}/export": {
      "get": {
        "tags": [
          "DNS Zone"
        ],
        "operationId": "DnsZonePublic_Export",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/dnszone/checkavailability": {
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Check the DNS zone availability",
        "operationId": "DnsZonePublic_CheckAvailability",
        "requestBody": {
          "x-name": "dnsZoneRequest",
          "description": "The zone that will be checked",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ZoneAvailabilityRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Returns the model determinining if the zone is available or not"
          },
          "400": {
            "description": "Failed checking the zone availability",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone/{zoneId}/records": {
      "put": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Add DNS Record",
        "operationId": "DnsZonePublic_AddRecord",
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID to which the record will be added.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "recordModel",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddDnsRecordModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "201": {
            "description": "The DNS record was successfuly added.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecordModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist."
          },
          "400": {
            "description": "Failed adding the DNS record. Model validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone/{zoneId}/records/{id}": {
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Update DNS Record",
        "operationId": "DnsZonePublic_UpdateRecord",
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID that contains the record.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS record that will be updated.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 2
          }
        ],
        "requestBody": {
          "x-name": "recordModel",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDnsRecordModel"
              }
            }
          },
          "required": true,
          "x-position": 3
        },
        "responses": {
          "204": {
            "description": "The DNS record was successfuly updated."
          },
          "404": {
            "description": "The DNS Zone or DNS Record with the requested ID does not exist."
          },
          "400": {
            "description": "Failed updating the DNS record. Model validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Delete DNS Record",
        "operationId": "DnsZonePublic_DeleteRecord",
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID that contains the record.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS record that will be deleted.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 2
          }
        ],
        "responses": {
          "204": {
            "description": "The DNS record was successfuly deleted."
          },
          "404": {
            "description": "The DNS Zone or DNS Record with the requested ID does not exist."
          },
          "400": {
            "description": "Failed deleting the DNS Record. See error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone/{zoneId}/import": {
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Import DNS Records",
        "operationId": "DnsZonePublic_Import",
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID that should import the data.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "The import operation has finished successfuly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneImportResultModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist."
          },
          "400": {
            "description": "Failed importing data. See error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/dnszone/{zoneId}/certificate/issue": {
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Issue new wildcard certificate",
        "operationId": "DnsZonePublic_IssueWildcardCertificate",
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID requiring a new certificate.",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "requestModel",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IssueWildcardCertificateRequestModel"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "A certificate has been issued successfully"
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist."
          },
          "400": {
            "description": "Failed to issue a new certificate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone": {
      "get": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "List Pull Zones",
        "operationId": "PullZonePublic_IndexAll",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "The page number to return. When set to 0 (default), all items are returned as a plain array. When set to a value greater than 0, items are returned in a paginated response object.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0,
              "maximum": 2147483647.0,
              "minimum": 1.0
            },
            "x-position": 1
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "maximum": 1000.0,
              "minimum": 5.0
            },
            "x-position": 2
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search term that will be used to filter the results",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 3
          },
          {
            "name": "includeCertificate",
            "in": "query",
            "description": "Determines if the result hostnames should contain the SSL certificate",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 4
          }
        ],
        "responses": {
          "200": {
            "description": "The list of all the pull zones on the account. When the page parameter is set to a value greater than 0, the response will be a paginated object with Items, CurrentPage, TotalItems and HasMoreItems properties instead of a plain array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PullZoneModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add Pull Zone",
        "operationId": "PullZonePublic_Add",
        "requestBody": {
          "x-name": "pullZoneModel",
          "description": "The Pull Zone that will be added",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PullZoneAddModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "The Pull Zone was successfuly added"
          },
          "400": {
            "description": "Failed adding Pull Zone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}": {
      "get": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Get Pull Zone",
        "operationId": "PullZonePublic_Index",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone that should be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "includeCertificate",
            "in": "query",
            "description": "Determines if the result hostnames should contain the SSL certificate",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "The Pull Zone with the requested ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PullZoneModel"
                }
              }
            }
          },
          "404": {
            "description": "The Pull Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Update Pull Zone",
        "operationId": "PullZonePublic_UpdatePullZone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone that should be updated",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "The Pull Zone update configuration",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PullZoneSettingsModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The Pull Zone was successfuly updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PullZoneModel"
                }
              }
            }
          },
          "400": {
            "description": "Failed configuring the Storage Zone. Model validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "404": {
            "description": "The Storage Zone with the requested ID does not exist."
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Delete Pull Zone",
        "operationId": "PullZonePublic_Delete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone that should be deleted",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The Pull Zone was successfully deleted"
          },
          "404": {
            "description": "The Pull Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{pullZoneId}/edgerules/{edgeRuleId}": {
      "delete": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Delete Edge Rule",
        "operationId": "PullZonePublic_DeleteEdgeRule",
        "parameters": [
          {
            "name": "pullZoneId",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone that contains the Edge Rule",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "edgeRuleId",
            "in": "path",
            "required": true,
            "description": "The ID of the Edge Rule that should be deleted",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "204": {
            "description": "The Edge Rule was successfuly deleted"
          },
          "404": {
            "description": "The Pull Zone or Edge Rule with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{pullZoneId}/edgerules/addOrUpdate": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add/Update Edge Rule",
        "operationId": "PullZonePublic_AddEdgeRule",
        "parameters": [
          {
            "name": "pullZoneId",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone where the Edge Rule will be created",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "edgeRuleModel",
          "description": "The Edge Rule that will be added",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EdgeRuleV2Model"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "201": {
            "description": "The Edge Rule was successfuly added"
          },
          "404": {
            "description": "The Pull Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{pullZoneId}/edgerules/{edgeRuleId}/setEdgeRuleEnabled": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Set Edge Rule Enabled",
        "operationId": "PullZonePublic_SetEdgeRuleEnabled",
        "parameters": [
          {
            "name": "pullZoneId",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone that contains the Edge Rule",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "edgeRuleId",
            "in": "path",
            "required": true,
            "description": "The ID of the Edge Rule that should be updated",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 2
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "The toggle switch model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToggleRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 3
        },
        "responses": {
          "204": {
            "description": "The Edge Rule was successfuly updated"
          },
          "404": {
            "description": "The Pull Zone or Edge Rule with the requested ID does not exist."
          },
          "400": {
            "description": "Failed configuring the Edge Rule. Model validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{pullZoneId}/originshield/queuestatistics": {
      "get": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Get Origin Shield Queue Statistics",
        "operationId": "PullZonePublic_OriginShieldConcurrencyStatistics",
        "parameters": [
          {
            "name": "pullZoneId",
            "in": "path",
            "required": true,
            "description": "(Optional) If set, the statistics will be only returned for the given Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          },
          {
            "name": "hourly",
            "in": "query",
            "description": "(Optional) If true, the statistics data will be returned in hourly groupping.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 4
          }
        ],
        "responses": {
          "200": {
            "description": "The statistics data for the passed parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OriginShieldConcurrencyStatisticsModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{pullZoneId}/safehop/statistics": {
      "get": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Get SafeHop Statistics",
        "operationId": "PullZonePublic_SafeHopStatistics",
        "parameters": [
          {
            "name": "pullZoneId",
            "in": "path",
            "required": true,
            "description": "(Optional) If set, the statistics will be only returned for the given Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          },
          {
            "name": "hourly",
            "in": "query",
            "description": "(Optional) If true, the statistics data will be returned in hourly groupping.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 4
          }
        ],
        "responses": {
          "200": {
            "description": "The statistics data for the passed parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SafeHopStatisticsModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{pullZoneId}/optimizer/statistics": {
      "get": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Get Optimizer Statistics",
        "operationId": "PullZonePublic_OptimizerStatistics",
        "parameters": [
          {
            "name": "pullZoneId",
            "in": "path",
            "required": true,
            "description": "(Optional) If set, the statistics will be only returned for the given Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          },
          {
            "name": "hourly",
            "in": "query",
            "description": "(Optional) If true, the statistics data will be returned in hourly groupping.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 4
          }
        ],
        "responses": {
          "200": {
            "description": "The statistics data for the passed parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptimizerStatisticsModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/updatePrivateKeyType": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Change hostname private key type",
        "operationId": "PullZonePublic_UpdatePrivateKeyType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The hostname that the private key type will be updated on",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrivateKeyUpdateModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The key type was changed successfully"
          },
          "400": {
            "description": "Failed to update key type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "404": {
            "description": "The hostname was not found in the account"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/loadFreeCertificate": {
      "get": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Load Free Certificate",
        "operationId": "PullZonePublic_LoadFreeCertificate",
        "parameters": [
          {
            "name": "hostname",
            "in": "query",
            "required": true,
            "description": "The hostname that the certificate will be loaded for",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 1
          },
          {
            "name": "useOnlyHttp01",
            "in": "query",
            "description": "If false and a Bunny DNS Zone exists for the domain, DNS01 validation we be attempted. This has no effect on wildcard domains, as this can only use DNS01",
            "schema": {
              "type": "boolean",
              "default": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "The certificate was successfuly loaded"
          },
          "400": {
            "description": "Failed configuring the certificate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "404": {
            "description": "The hostname was not found in the account"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/purgeCache": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Purge Cache",
        "operationId": "PullZonePublic_PurgeCachePostByTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Pull Zone that should be cleared",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "purgeModel",
          "content": {
            "application/json": {
              "schema": {
                "nullable": true,
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PullZonePurgeModel"
                  }
                ]
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The cache was successfuly purged"
          },
          "404": {
            "description": "The Pull Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/checkavailability": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Check the pull zone availability",
        "operationId": "PullZonePublic_CheckAvailability",
        "requestBody": {
          "x-name": "pullZoneRequest",
          "description": "The zone that will be checked",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ZoneAvailabilityRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Returns the model determinining if the zone is available or not"
          },
          "400": {
            "description": "Failed checking the zone availability",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/addCertificate": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add Custom Certificate",
        "operationId": "PullZonePublic_AddCertificate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "requestModel",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCertificateRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The certificate was successfuly added"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed adding the certificate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/removeCertificate": {
      "delete": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Remove Certificate",
        "operationId": "PullZonePublic_RemoveCertificate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "requestModel",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveCertificateRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The certificate was successfuly removed"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed removing certificate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/addHostname": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add Custom Hostname",
        "operationId": "PullZonePublic_AddHostname",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "requestModel",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddHostnameRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The hostname was successfully added"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/removeHostname": {
      "delete": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Remove Custom Hostname",
        "operationId": "PullZonePublic_RemoveHostname",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveHostnameRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The hostname was successfully removed"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed removing hostname",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/setForceSSL": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Set Force SSL",
        "operationId": "PullZonePublic_SetForceSSL",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForceSSLRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "Force SSL was successfully updated"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to configure Force SSL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/resetSecurityKey": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Reset Token Key",
        "operationId": "ResetSecurityKeyEndpoint_ResetSecurityKey",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Custom security key",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPullZoneSecurityKeyModel"
              }
            }
          },
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The key was successfully reset"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to reset the security key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIPullZones",
              "SubuserPullZones",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIPullZones",
              "SubuserPullZones",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/pullzone/{id}/addAllowedReferrer": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add Allowed Referer",
        "operationId": "PullZonePublic_AddAllowedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAllowedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The allowed referer was successfuly added"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to configure allowed referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/removeAllowedReferrer": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Remove Allowed Referer",
        "operationId": "PullZonePublic_RemoveAllowedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveAllowedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The allowed referer was successfuly removed"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to remove allowed referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/addBlockedReferrer": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add Blocked Referer",
        "operationId": "PullZonePublic_AddBlockedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddBlockedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The blocked referer was successfuly added"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to configure blocked referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/removeBlockedReferrer": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Remove Blocked Referer",
        "operationId": "PullZonePublic_RemoveBlockedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveAllowedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The blocked referer was successfuly removed"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to remove blocked referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/addBlockedIp": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Add Blocked IP",
        "operationId": "PullZonePublic_AddBlockedIp",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddBlockedIpRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The blocked IP was successfuly added"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to configure blocked IP",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/pullzone/{id}/removeBlockedIp": {
      "post": {
        "tags": [
          "Pull Zone"
        ],
        "summary": "Remove Blocked IP",
        "operationId": "PullZonePublic_RemoveBlockedIp",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveBlockedIpRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The blocked IP was successfuly removed"
          },
          "404": {
            "description": "The Pull Zone with the requested ID was not found"
          },
          "400": {
            "description": "Failed to remove blocked IP",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/purge": {
      "post": {
        "tags": [
          "Purge"
        ],
        "summary": "Purge URL",
        "operationId": "PurgePublic_IndexPost",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "The URL that will be purged from cache.",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 1
          },
          {
            "name": "async",
            "in": "query",
            "description": "(Optional) Determines if the call should wait for the purge logic to complete",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 2
          },
          {
            "name": "exactPath",
            "in": "query",
            "description": "(Optional) When true and the URL ends with '/', purges only the exact path without adding a wildcard suffix. Only applies when the pull zone has IgnoreQueryStrings disabled.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "The purge request was successfully processed."
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/region": {
      "get": {
        "tags": [
          "Region"
        ],
        "summary": "Region list",
        "operationId": "RegionPublic_Index",
        "responses": {
          "200": {
            "description": "Returns the list of region codes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionModel"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/storagezone": {
      "get": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "List Storage Zones",
        "operationId": "StorageZonePublic_IndexAll",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "The page number to return. When set to 0 (default), all items are returned as a plain array. When set to a value greater than 0, items are returned in a paginated response object.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0,
              "maximum": 2147483647.0,
              "minimum": 1.0
            },
            "x-position": 1
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "maximum": 1000.0,
              "minimum": 5.0
            },
            "x-position": 2
          },
          {
            "name": "includeDeleted",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 3
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search term that will be used to filter the results",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 4
          }
        ],
        "responses": {
          "200": {
            "description": "The list of storage zones on the account. When the page parameter is set to a value greater than 0, the response will be a paginated object with Items, CurrentPage, TotalItems and HasMoreItems properties instead of a plain array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StorageZoneModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Add Storage Zone",
        "operationId": "StorageZonePublic_Add",
        "requestBody": {
          "x-name": "storageZoneModel",
          "description": "The storage zone that will be added",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageZoneModelAdd"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "The storage zone that was added",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageZoneModel"
                }
              }
            }
          },
          "400": {
            "description": "Failed adding the Storage Zone. Model validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/storagezone/checkavailability": {
      "post": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Check the storage zone availability",
        "operationId": "StorageZonePublic_CheckAvailability",
        "requestBody": {
          "x-name": "storageZoneRequest",
          "description": "The zone that will be checked",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ZoneAvailabilityRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Returns the model determinining if the zone is available or not"
          },
          "400": {
            "description": "Failed checking the zone availability",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/storagezone/{id}": {
      "get": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Get Storage Zone",
        "operationId": "StorageZonePublic_Index",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Storage Zone that should be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "The Storage Zone with the given ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageZoneModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "404": {
            "description": "The Storage Zone with the requested ID does not exist"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Update Storage Zone",
        "operationId": "StorageZonePublic_Update",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the storage zone that should be updated",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "The configuration that should be applied to the storage zone",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageZoneSettingsModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "204": {
            "description": "The storage zone was successfuly updated"
          },
          "400": {
            "description": "Failed configuring the Storage Zone. Model validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "404": {
            "description": "The Storage Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "delete": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Delete Storage Zone",
        "operationId": "StorageZonePublic_Delete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The Storage Zone ID that should be deleted",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "deleteLinkedPullZones",
            "in": "query",
            "description": "Deletes all pull zones linked to this storage zone (default behavior)",
            "schema": {
              "type": "boolean",
              "default": true
            },
            "x-position": 2
          }
        ],
        "responses": {
          "204": {
            "description": "The Storage Zone was successfully deleted"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "404": {
            "description": "The Storage Zone with the requested ID does not exist"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/storagezone/{id}/resetPassword": {
      "post": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Reset Password",
        "operationId": "StorageZonePublic_ResetPassword",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the storage zone that should have the password reset",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The password has been successfuly changed"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "404": {
            "description": "The Storage Zone with the requested ID does not exist"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/storagezone/resetReadOnlyPassword": {
      "post": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Reset Read-Only Password",
        "operationId": "StorageZonePublic_ResetReadOnlyPassword",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "The ID of the storage zone that should have the read-only password reset",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The read-only password has been successfuly changed."
          },
          "401": {
            "description": "The request authorization failed"
          },
          "404": {
            "description": "The Storage Zone with the requested ID does not exist"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/videolibrary": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Add Video Library",
        "operationId": "AddVideoLibraryEndpoint_AddVideoLibrary",
        "requestBody": {
          "x-name": "videoLibraryModel",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoLibraryCreateModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "The added video library",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoLibraryModel"
                }
              }
            }
          },
          "400": {
            "description": "Failed to add video library",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "List Video Libraries",
        "operationId": "ListVideoLibrariesEndpoint_ListVideoLibraries",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0,
              "maximum": 2147483647.0,
              "minimum": 1.0
            },
            "x-position": 1
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "maximum": 1000.0,
              "minimum": 5.0
            },
            "x-position": 2
          },
          {
            "name": "search",
            "in": "query",
            "description": "The search term that will be used to filter the results",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "The list of Video Libraries on the account. When the page parameter is set to a value greater than 0, the response will be a paginated object with Items, CurrentPage, TotalItems and HasMoreItems properties instead of a plain array.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationListModelOfVideoLibraryModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}": {
      "delete": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Delete Video Library",
        "operationId": "DeleteVideoLibraryEndpoint_DeleteVideoLibrary",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Video Library that should be deleted",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The requested video library has been successfully deleted"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Get Video Library",
        "operationId": "GetVideoLibraryEndpoint_GetVideoLibrary",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Video Library that will be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "The requested video library",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoLibraryModel"
                }
              }
            }
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "403": {
            "description": "The Video Library is not accessible for the authenticated account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Update Video Library",
        "operationId": "UpdateVideoLibraryEndpoint_UpdateVideoLibrary",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the Video Library to update",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoLibraryUpdateModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The updated video library",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoLibraryModel"
                }
              }
            }
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/languages": {
      "get": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Get Languages",
        "operationId": "GetVideoLibraryLanguagesEndpoint_GetVideoLibraryLanguages",
        "responses": {
          "200": {
            "description": "A list of language information objects",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VideoLibraryLanguage"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/resetApiKey": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Reset API Key",
        "operationId": "ResetVideoLibraryApiKeyEndpoint_ResetVideoLibraryApiKey",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the video library that should have the API key reset",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The API key has been successfully changed"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/resetReadOnlyApiKey": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Reset Read Only API Key",
        "operationId": "ResetVideoLibraryReadOnlyApiKeyEndpoint_ResetVideoLibraryReadOnlyApiKey",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the video library that should have the read only API key reset",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The Read Only API key has been successfully changed"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/watermark": {
      "put": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Add Watermark",
        "operationId": "AddWatermarkEndpoint_AddWatermark",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The watermark has been successfully uploaded"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "413": {
            "description": "The uploaded file was too large"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Delete Watermark",
        "operationId": "DeleteWatermarkEndpoint_DeleteWatermark",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The watermark has been successfully deleted"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/addAllowedReferrer": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Add Allowed Referer",
        "operationId": "AddAllowedReferrerEndpoint_AddAllowedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAllowedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The allowed referer was successfully added"
          },
          "404": {
            "description": "The Video Library with the requested ID was not found"
          },
          "400": {
            "description": "Failed to add allowed referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/removeAllowedReferrer": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Remove Allowed Referer",
        "operationId": "RemoveAllowedReferrerEndpoint_RemoveAllowedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveAllowedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The allowed referer was successfully removed"
          },
          "404": {
            "description": "The Video Library with the requested ID was not found"
          },
          "400": {
            "description": "Failed to remove allowed referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/addBlockedReferrer": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Add Blocked Referer",
        "operationId": "AddBlockedReferrerEndpoint_AddBlockedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddBlockedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The blocked referer was successfully added"
          },
          "404": {
            "description": "The Video Library with the requested ID was not found"
          },
          "400": {
            "description": "Failed to add blocked referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/removeBlockedReferrer": {
      "post": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Remove Blocked Referer",
        "operationId": "RemoveBlockedReferrerEndpoint_RemoveBlockedReferrer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "requestBody": {
          "x-name": "model",
          "description": "Request model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveBlockedReferrerRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 2
        },
        "responses": {
          "200": {
            "description": "The blocked referer was successfully removed"
          },
          "404": {
            "description": "The Video Library with the requested ID was not found"
          },
          "400": {
            "description": "Failed to remove blocked referer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/transcribing/statistics": {
      "get": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Get Video Library Transcribing Statistics",
        "operationId": "GetTranscribingStatisticsEndpoint_Statistics",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the video library for which the transcribing statistics will be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 14 days will be returned",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, current date will be used",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the statistics for the video library with the given ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoLibraryTranscriptionStatisticsModel"
                }
              }
            }
          },
          "404": {
            "description": "The video library with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/videolibrary/{id}/live/thumbnail": {
      "put": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Add Live Thumbnail",
        "operationId": "AddLiveThumbnailEndpoint_AddThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The thumbnail has been successfully uploaded"
          },
          "400": {
            "description": "The request body is empty or invalid"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "413": {
            "description": "The uploaded file was too large (max 10 MB)"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ],
        "x-hidden": true
      },
      "delete": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Delete Live Thumbnail",
        "operationId": "DeleteLiveThumbnailEndpoint_DeleteThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The thumbnail has been successfully deleted"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ],
        "x-hidden": true
      }
    },
    "/videolibrary/{id}/live/watermark": {
      "put": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Add Live Watermark",
        "operationId": "AddLiveWatermarkEndpoint_AddWatermark",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The watermark has been successfully uploaded"
          },
          "400": {
            "description": "The request body is empty or invalid"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "413": {
            "description": "The uploaded file was too large (max 10 MB)"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ],
        "x-hidden": true
      },
      "delete": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Delete Live Watermark",
        "operationId": "DeleteLiveWatermarkEndpoint_DeleteWatermark",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the requested Video Library",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "204": {
            "description": "The watermark has been successfully deleted"
          },
          "404": {
            "description": "The Video Library with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ],
        "x-hidden": true
      }
    },
    "/videolibrary/{id}/drm/statistics": {
      "get": {
        "tags": [
          "Stream Video Library"
        ],
        "summary": "Get Video Library DRM Statistics",
        "operationId": "GetDrmStatisticsEndpoint_Statistics",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the video library for which the DRM statistics will be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 14 days will be returned",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, current date will be used",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the statistics for the video library with the given ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoLibraryDrmStatisticsModel"
                }
              }
            }
          },
          "404": {
            "description": "The video library with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStream",
              "SubuserStream",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/user/closeaccount": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Close the account",
        "description": "Close the current user account",
        "operationId": "CloseAccountEndpoint_CloseAccount",
        "requestBody": {
          "x-name": "model",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloseAccountRequestModel"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "The account was successfully closed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloseAccountResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Failed closing the account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloseAccountResponseModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi"
            ]
          }
        ]
      }
    },
    "/user/audit/{date}": {
      "get": {
        "tags": [
          "AuditLog"
        ],
        "operationId": "GetUserAuditLogEndpoint_GetUserAuditLog",
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "x-position": 1
          },
          {
            "name": "Product",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            },
            "x-position": 2
          },
          {
            "name": "ResourceType",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            },
            "x-position": 3
          },
          {
            "name": "ResourceId",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            },
            "x-position": 4
          },
          {
            "name": "ActorId",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "nullable": true,
              "items": {
                "type": "string"
              }
            },
            "x-position": 5
          },
          {
            "name": "Order",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/LogOrdering"
            },
            "x-position": 6
          },
          {
            "name": "ContinuationToken",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 7
          },
          {
            "name": "Limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "maximum": 10000.0,
              "minimum": 1.0
            },
            "x-position": 8
          }
        ],
        "responses": {
          "200": {
            "description": "The list of audit log entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserAuditLogResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorData"
                }
              }
            }
          },
          "401": {
            "description": "The request authentication failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "Subuser"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "Subuser"
            ]
          }
        ]
      }
    },
    "/storagezone/{id}/statistics": {
      "get": {
        "tags": [
          "Storage Zone"
        ],
        "summary": "Get Storage Zone Statistics",
        "operationId": "GetStoragezoneStatisticsEndpoint_StorageZoneStatistics",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the storage zone",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "The statistics data for the passed parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageZoneStatisticsModel"
                }
              }
            }
          },
          "404": {
            "description": "The StorageZone has not been found"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "403": {
            "description": "The user does not have rights to access this resource"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStatistics",
              "SubuserStatistics",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStatistics",
              "SubuserStatistics",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/statistics": {
      "get": {
        "tags": [
          "Statistics"
        ],
        "summary": "Get Statistics",
        "operationId": "StatisticsPublic_GetStatistics",
        "parameters": [
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 1
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "pullZone",
            "in": "query",
            "description": "(Optional) If set, the statistics will be only returned for the given Pull Zone",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": -1
            },
            "x-position": 3
          },
          {
            "name": "serverZoneId",
            "in": "query",
            "description": "(Optional) If set, the statistics will be only returned for the given region ID",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": -1
            },
            "x-position": 4
          },
          {
            "name": "loadErrors",
            "in": "query",
            "description": "(Optional) If set, the respose will contain the non-2xx response",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 5
          },
          {
            "name": "hourly",
            "in": "query",
            "description": "(Optional) If true, the statistics data will be returned in hourly groupping.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 6
          },
          {
            "name": "exactRange",
            "in": "query",
            "description": "(Optional) If true and hourly=true, the exact hour components of dateFrom and dateTo will be preserved instead of rounding to full-day boundaries.",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 7
          },
          {
            "name": "loadOriginResponseTimes",
            "in": "query",
            "description": "Load Origin Response Times",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 8
          },
          {
            "name": "loadOriginTraffic",
            "in": "query",
            "description": "Load Origin Traffic",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 9
          },
          {
            "name": "loadRequestsServed",
            "in": "query",
            "description": "Load Requests Served",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 10
          },
          {
            "name": "loadBandwidthUsed",
            "in": "query",
            "description": "Load Bandwidth Used",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 11
          },
          {
            "name": "loadOriginShieldBandwidth",
            "in": "query",
            "description": "Load Origin Shield Bandwidth",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 12
          },
          {
            "name": "loadGeographicTrafficDistribution",
            "in": "query",
            "description": "Load Geographic Traffic Distribution",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 13
          },
          {
            "name": "loadUserBalanceHistory",
            "in": "query",
            "description": "Load User Balance History",
            "schema": {
              "type": "boolean",
              "default": false
            },
            "x-position": 14
          }
        ],
        "responses": {
          "200": {
            "description": "The statistics data for the passed parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatisticsModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIStatistics",
              "SubuserStatistics",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIStatistics",
              "SubuserStatistics",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Global Search",
        "operationId": "SearchPublic_GlobalSearchEndpoint",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true
            },
            "x-position": 1
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "x-position": 2
          },
          {
            "name": "size",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "The list of platfom-wide search results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResultsModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "429": {
            "description": "Too Many Requests"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/dnszone/{id}/statistics": {
      "get": {
        "tags": [
          "DNS Zone",
          "Statistics"
        ],
        "summary": "Get DNS Query Statistics",
        "operationId": "GetDnsZoneStatisticsEndpoint_Statistics",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS Zone for which the statistics will be returned",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 2
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-position": 3
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the statistics for the DNS Zone with the given ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneStatisticsModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/dnszone/{id}/dnssec": {
      "post": {
        "tags": [
          "DNS Zone",
          "DNSSEC"
        ],
        "summary": "Enable DNSSEC on a DNS Zone",
        "operationId": "ManageDnsZoneDnsSecEndpoint_EnableDnsSecDnsZone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS Zone for which DNSSEC will be enabled",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the DS record information for the DNS Zone with the given ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsSecDsRecordModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "DNS Zone",
          "DNSSEC"
        ],
        "summary": "Disable DNSSEC on a DNS Zone",
        "operationId": "ManageDnsZoneDnsSecEndpoint_DisableDnsSecDnsZone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The ID of the DNS Zone for which DNSSEC will be disabled",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Disables DNSSEC for the DNS Zone with the given ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsSecDsRecordModel"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist"
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/dnszone/records/scan": {
      "post": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Trigger a background scan for pre-existing DNS records. Can use ZoneId for existing zones or Domain for pre-zone creation scenarios.",
        "operationId": "TriggerDnsZoneRecordScanEndpoint_TriggerScan",
        "requestBody": {
          "x-name": "request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriggerDnsZoneRecordScanRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "DNS record scan job triggered successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneRecordScanTriggerResponse"
                }
              }
            }
          },
          "404": {
            "description": "The DNS Zone with the requested ID does not exist"
          },
          "400": {
            "description": "Invalid request - either ZoneId or Domain must be provided, but not both"
          },
          "401": {
            "description": "The request authorization failed"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/dnszone/{zoneId}/records/scan": {
      "get": {
        "tags": [
          "DNS Zone"
        ],
        "summary": "Get the latest DNS record scan result for a DNS Zone",
        "operationId": "TriggerDnsZoneRecordScanEndpoint_GetLatestScan",
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "description": "The DNS Zone ID",
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Latest DNS record scan job details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneRecordScanJobResponse"
                }
              }
            }
          },
          "404": {
            "description": "No scan found or DNS Zone not found"
          },
          "401": {
            "description": "The request authorization failed"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIDns",
              "SubuserDns",
              "SubuserManage",
              "SubuserAPIManage"
            ]
          }
        ]
      }
    },
    "/billing": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Get Billing Details",
        "description": "Get the billing status details",
        "operationId": "GetBillingDetailsEndpoint_GetBillingDetails",
        "responses": {
          "200": {
            "description": "Get the billing status details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          }
        ]
      }
    },
    "/billing/payment-request-invoice/{id}/pdf": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Download Payment Request Invoice PDF",
        "operationId": "DownloadPaymentRequestInvoicePdfEndpoint_DownloadPaymentRequestInvoicePdf",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          }
        ]
      }
    },
    "/billing/payment-requests": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Get Pending Payment Requests",
        "operationId": "GetPaymentRequestsEndpoint_GetPaymentRequests",
        "responses": {
          "200": {
            "description": "A list of pending payment requests\nor\nA list of pending payment requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentRequestModel"
                  }
                }
              }
            },
            "x-expectedSchemas": [
              {
                "description": "A list of pending payment requests",
                "schema": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "$ref": "#/components/schemas/PaymentRequestModel"
                  }
                }
              },
              {
                "description": "A list of pending payment requests",
                "schema": {
                  "type": "array",
                  "nullable": true,
                  "items": {
                    "$ref": "#/components/schemas/PaymentRequestModel"
                  }
                }
              }
            ]
          },
          "401": {
            "description": "The request authorization failed\nor\nThe request authorization failed"
          },
          "500": {
            "description": "Internal Server Error\nor\nInternal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          }
        ]
      }
    },
    "/billing/summary/{billingRecordId}/pdf": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Get Billing Summary Document",
        "operationId": "BillingSummaryPublic_GetBillingSummaryPdf",
        "parameters": [
          {
            "name": "billingRecordId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-position": 1
          }
        ],
        "responses": {
          "200": {
            "description": "The PDF version of the summary"
          },
          "404": {
            "description": "The billing record was not found or was not the correct type"
          },
          "403": {
            "description": "The request authorization failed"
          },
          "503": {
            "description": "The service is currently unavailable"
          }
        },
        "security": [
          {
            "AccessKey": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/billing/summary": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Get Billing Summary",
        "operationId": "GetBillingSummaryEndpoint_GetSummaryEndpoint",
        "responses": {
          "200": {
            "description": "Get the billing summary with data report for each Pull Zone",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BillingSummaryItem"
                  }
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/apikey": {
      "get": {
        "tags": [
          "API Keys"
        ],
        "summary": "List API Keys",
        "operationId": "ApiKeyPublic_GetApiKeysByAccountEndpoint",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1,
              "maximum": 2147483647.0,
              "minimum": 1.0
            },
            "x-position": 1
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "maximum": 1000.0,
              "minimum": 5.0
            },
            "x-position": 2
          }
        ],
        "responses": {
          "200": {
            "description": "The list of all API keys on the account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginationListModelOfApiKeyModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi"
            ]
          }
        ]
      }
    },
    "/billing/affiliate": {
      "get": {
        "tags": [
          "Affiliate",
          "Billing"
        ],
        "summary": "Get affiliate details",
        "operationId": "GetAffiliateDetailsEndpoint_AffiliateDetails",
        "responses": {
          "200": {
            "description": "Get the affiliate details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingAffiliateDetailsModel"
                }
              }
            }
          },
          "401": {
            "description": "The request authorization failed"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "AccessKey": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          },
          {
            "bearer": [
              "User",
              "UserApi",
              "SubuserAPIBilling",
              "SubuserBilling"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "BillingSummaryItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "PullZoneId": {
            "type": "integer",
            "description": "The ID of the pull zone",
            "format": "int64"
          },
          "MonthlyUsage": {
            "type": "number",
            "description": "The total credit amount used in this month by the Pull Zone",
            "format": "decimal"
          },
          "MonthlyBandwidthUsed": {
            "type": "integer",
            "description": "The total monthly bandwidth used by the pull zone",
            "format": "int64"
          }
        }
      },
      "ApiErrorData": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ErrorKey": {
            "type": "string",
            "nullable": true
          },
          "Field": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CountryModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "IsoCode": {
            "type": "string",
            "nullable": true
          },
          "IsEU": {
            "type": "boolean"
          },
          "TaxRate": {
            "type": "number",
            "format": "decimal"
          },
          "TaxPrefix": {
            "type": "string",
            "nullable": true
          },
          "FlagUrl": {
            "type": "string",
            "nullable": true
          },
          "PopList": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PaginationListModelOfDnsZoneModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DnsZoneModel"
            }
          },
          "CurrentPage": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "HasMoreItems": {
            "type": "boolean"
          }
        }
      },
      "DnsZoneModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Domain": {
            "type": "string",
            "nullable": true
          },
          "Records": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DnsRecordModel"
            }
          },
          "DateModified": {
            "type": "string",
            "format": "date-time"
          },
          "DateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "NameserversDetected": {
            "type": "boolean"
          },
          "CustomNameserversEnabled": {
            "type": "boolean"
          },
          "Nameserver1": {
            "type": "string",
            "nullable": true
          },
          "Nameserver2": {
            "type": "string",
            "nullable": true
          },
          "SoaEmail": {
            "type": "string",
            "nullable": true
          },
          "NameserversNextCheck": {
            "type": "string",
            "format": "date-time"
          },
          "LoggingEnabled": {
            "type": "boolean"
          },
          "LoggingIPAnonymizationEnabled": {
            "type": "boolean",
            "description": "Determines if the TLS 1 is enabled on the DNS Zone"
          },
          "LogAnonymizationType": {
            "description": "Sets the log anonymization type for this zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LogAnonymizationType"
              }
            ]
          },
          "DnsSecEnabled": {
            "type": "boolean",
            "description": "Determines if DNSSEC is enabled for this DNS Zone"
          },
          "CertificateKeyType": {
            "description": "The private key type to use for automatic certificates",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PrivateKeyType"
              }
            ]
          }
        }
      },
      "DnsRecordModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Type": {
            "$ref": "#/components/schemas/DnsRecordTypes"
          },
          "Ttl": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Weight": {
            "type": "integer",
            "format": "int32"
          },
          "Priority": {
            "type": "integer",
            "format": "int32"
          },
          "Port": {
            "type": "integer",
            "format": "int32"
          },
          "Flags": {
            "type": "integer",
            "format": "byte"
          },
          "Tag": {
            "type": "string",
            "nullable": true
          },
          "Accelerated": {
            "type": "boolean"
          },
          "AcceleratedPullZoneId": {
            "type": "integer",
            "format": "int64"
          },
          "LinkName": {
            "type": "string",
            "nullable": true
          },
          "IPGeoLocationInfo": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GeoDnsLocationModel"
              }
            ]
          },
          "GeolocationInfo": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsRecordGeoLocationInfo"
              }
            ]
          },
          "MonitorStatus": {
            "$ref": "#/components/schemas/DnsMonitoringStatus"
          },
          "MonitorType": {
            "$ref": "#/components/schemas/DnsMonitoringType"
          },
          "GeolocationLatitude": {
            "type": "number",
            "format": "double"
          },
          "GeolocationLongitude": {
            "type": "number",
            "format": "double"
          },
          "EnviromentalVariables": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DnsRecordEnviromentalVariableModel"
            }
          },
          "LatencyZone": {
            "type": "string",
            "nullable": true
          },
          "SmartRoutingType": {
            "$ref": "#/components/schemas/DnsSmartRoutingType"
          },
          "Disabled": {
            "type": "boolean"
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "AutoSslIssuance": {
            "type": "boolean"
          },
          "AccelerationStatus": {
            "$ref": "#/components/schemas/AcceleratedStatus"
          }
        }
      },
      "DnsRecordTypes": {
        "type": "integer",
        "description": "0 = A\n1 = AAAA\n2 = CNAME\n3 = TXT\n4 = MX\n5 = Redirect\n6 = Flatten\n7 = PullZone\n8 = SRV\n9 = CAA\n10 = PTR\n11 = Script\n12 = NS\n13 = SVCB\n14 = HTTPS\n15 = TLSA",
        "x-enumNames": [
          "A",
          "AAAA",
          "CNAME",
          "TXT",
          "MX",
          "Redirect",
          "Flatten",
          "PullZone",
          "SRV",
          "CAA",
          "PTR",
          "Script",
          "NS",
          "SVCB",
          "HTTPS",
          "TLSA"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15
        ]
      },
      "GeoDnsLocationModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CountryCode": {
            "type": "string",
            "description": "The ISO country code of the location",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "The name of the country of the location",
            "nullable": true
          },
          "ASN": {
            "type": "integer",
            "description": "The ASN of the IP organization",
            "format": "int64"
          },
          "OrganizationName": {
            "type": "string",
            "description": "The mame of the organization that owns the IP",
            "nullable": true
          },
          "City": {
            "type": "string",
            "description": "The name of the city of the location",
            "nullable": true
          }
        }
      },
      "DnsRecordGeoLocationInfo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Country": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "Latitude": {
            "type": "number",
            "format": "double"
          },
          "Longitude": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "DnsMonitoringStatus": {
        "type": "integer",
        "description": "0 = Unknown\n1 = Online\n2 = Offline",
        "x-enumNames": [
          "Unknown",
          "Online",
          "Offline"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "DnsMonitoringType": {
        "type": "integer",
        "description": "0 = None\n1 = Ping\n2 = Http\n3 = Monitor",
        "x-enumNames": [
          "None",
          "Ping",
          "Http",
          "Monitor"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "DnsRecordEnviromentalVariableModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "DnsSmartRoutingType": {
        "type": "integer",
        "description": "0 = None\n1 = Latency\n2 = Geolocation",
        "x-enumNames": [
          "None",
          "Latency",
          "Geolocation"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "AcceleratedStatus": {
        "type": "integer",
        "description": "0 = None\n1 = Pending\n2 = Processing\n3 = Completed\n4 = Failed",
        "x-enumNames": [
          "None",
          "Pending",
          "Processing",
          "Completed",
          "Failed"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4
        ]
      },
      "LogAnonymizationType": {
        "type": "integer",
        "description": "0 = OneDigit\n1 = Drop",
        "x-enumNames": [
          "OneDigit",
          "Drop"
        ],
        "enum": [
          0,
          1
        ]
      },
      "PrivateKeyType": {
        "type": "integer",
        "description": "0 = Ecdsa\n1 = Rsa",
        "x-enumNames": [
          "Ecdsa",
          "Rsa"
        ],
        "enum": [
          0,
          1
        ]
      },
      "UpdateDnsZoneModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CustomNameserversEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "Nameserver1": {
            "type": "string",
            "nullable": true
          },
          "Nameserver2": {
            "type": "string",
            "nullable": true
          },
          "SoaEmail": {
            "type": "string",
            "nullable": true
          },
          "LoggingEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "LogAnonymizationType": {
            "description": "Gets the log anonymization type for this zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LogAnonymizationType"
              }
            ]
          },
          "CertificateKeyType": {
            "description": "Sets the certificate private key type for wildcard certificates for this zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PrivateKeyType"
              }
            ]
          },
          "LoggingIPAnonymizationEnabled": {
            "type": "boolean",
            "description": "Determines if the log anonoymization should be enabled",
            "nullable": true
          }
        }
      },
      "ZoneAvailabilityRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "description": "Determines the name of the zone that we are checking",
            "nullable": true
          }
        }
      },
      "DnsZoneAddModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Domain"
        ],
        "properties": {
          "Domain": {
            "type": "string",
            "description": "The domain that will be added.",
            "minLength": 1
          },
          "Records": {
            "type": "array",
            "description": "Optional array of DNS records to add when creating the zone.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AddDnsRecordModel"
            }
          }
        }
      },
      "AddDnsRecordModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsRecordTypes"
              }
            ]
          },
          "Ttl": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Weight": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Priority": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Flags": {
            "type": "integer",
            "format": "byte",
            "nullable": true
          },
          "Tag": {
            "type": "string",
            "nullable": true
          },
          "Port": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PullZoneId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "ScriptId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Accelerated": {
            "type": "boolean",
            "nullable": true
          },
          "MonitorType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsMonitoringType"
              }
            ]
          },
          "GeolocationLatitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "GeolocationLongitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "LatencyZone": {
            "type": "string",
            "nullable": true
          },
          "SmartRoutingType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsSmartRoutingType"
              }
            ]
          },
          "Disabled": {
            "type": "boolean",
            "nullable": true
          },
          "EnviromentalVariables": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DnsRecordEnviromentalVariableModel"
            }
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "AutoSslIssuance": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "UpdateDnsRecordModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsRecordTypes"
              }
            ]
          },
          "Ttl": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Weight": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Priority": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Flags": {
            "type": "integer",
            "format": "byte",
            "nullable": true
          },
          "Tag": {
            "type": "string",
            "nullable": true
          },
          "Port": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PullZoneId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "ScriptId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Accelerated": {
            "type": "boolean",
            "nullable": true
          },
          "MonitorType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsMonitoringType"
              }
            ]
          },
          "GeolocationLatitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "GeolocationLongitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "LatencyZone": {
            "type": "string",
            "nullable": true
          },
          "SmartRoutingType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsSmartRoutingType"
              }
            ]
          },
          "Disabled": {
            "type": "boolean",
            "nullable": true
          },
          "EnviromentalVariables": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DnsRecordEnviromentalVariableModel"
            }
          },
          "Comment": {
            "type": "string",
            "nullable": true
          },
          "AutoSslIssuance": {
            "type": "boolean",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "DnsZoneImportResultModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RecordsSuccessful": {
            "type": "integer",
            "format": "int32"
          },
          "RecordsFailed": {
            "type": "integer",
            "format": "int32"
          },
          "RecordsSkipped": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "IssueWildcardCertificateRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Domain": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PullZoneModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The unique ID of the pull zone.",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "The name of the pull zone.",
            "nullable": true
          },
          "OriginUrl": {
            "type": "string",
            "description": "The origin URL of the pull zone where the files are fetched from.",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean",
            "description": "True unless reached resource limits or account owning it ran out of funds."
          },
          "Suspended": {
            "type": "boolean"
          },
          "Hostnames": {
            "type": "array",
            "description": "The list of hostnames linked to this Pull Zone",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/HostnameModel"
            }
          },
          "StorageZoneId": {
            "type": "integer",
            "description": "The ID of the storage zone that the pull zone is linked to",
            "format": "int64"
          },
          "EdgeScriptId": {
            "type": "integer",
            "description": "The ID of the edge script that the pull zone is linked to",
            "format": "int64"
          },
          "EdgeScriptExecutionPhase": {
            "description": "The phase of the request where the script will be executed",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExecutionPhase"
              }
            ]
          },
          "MiddlewareScriptId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "MagicContainersAppId": {
            "type": "string",
            "description": "The ID of the Magic Container application the pull zone is linked to",
            "nullable": true
          },
          "MagicContainersEndpointId": {
            "type": "string",
            "description": "The ID of the Magic Container Endpoint the pull zone is linked to",
            "nullable": true
          },
          "AllowedReferrers": {
            "type": "array",
            "description": "The list of referrer hostnames that are allowed to access the pull zone.Requests containing the header Referer: hostname that is not on the list will be rejected.If empty, all the referrers are allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedReferrers": {
            "type": "array",
            "description": "The list of referrer hostnames that are allowed to access the pull zone. Requests containing the header Referer: hostname that is not on the list will be rejected. If empty, all the referrers are allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedIps": {
            "type": "array",
            "description": "The list of IPs that are blocked from accessing the pull zone. Requests coming from the following IPs will be rejected. If empty, all the IPs will be allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableGeoZoneUS": {
            "type": "boolean",
            "description": "Determines if the delivery from the North American region is enabled for this pull zone"
          },
          "EnableGeoZoneEU": {
            "type": "boolean",
            "description": "Determines if the delivery from the European region is enabled for this pull zone"
          },
          "EnableGeoZoneASIA": {
            "type": "boolean",
            "description": "Determines if the delivery from the Asian / Oceanian region is enabled for this pull zone"
          },
          "EnableGeoZoneSA": {
            "type": "boolean",
            "description": "Determines if the delivery from the South American region is enabled for this pull zone"
          },
          "EnableGeoZoneAF": {
            "type": "boolean",
            "description": "Determines if the delivery from the Africa region is enabled for this pull zone"
          },
          "ZoneSecurityEnabled": {
            "type": "boolean",
            "description": "True if the URL secure token authentication security is enabled"
          },
          "ZoneSecurityKey": {
            "type": "string",
            "description": "The security key used for secure URL token authentication",
            "nullable": true
          },
          "ZoneSecurityIncludeHashRemoteIP": {
            "type": "boolean",
            "description": "True if the zone security hash should include the remote IP"
          },
          "IgnoreQueryStrings": {
            "type": "boolean",
            "description": "True if the Pull Zone is ignoring query strings when serving cached objects"
          },
          "MonthlyBandwidthLimit": {
            "type": "integer",
            "description": "The monthly limit of bandwidth in bytes that the pullzone is allowed to use",
            "format": "int64"
          },
          "MonthlyBandwidthUsed": {
            "type": "integer",
            "description": "The amount of bandwidth in bytes that the pull zone used this month",
            "format": "int64"
          },
          "MonthlyCharges": {
            "type": "number",
            "description": "The total monthly charges for this so zone so far",
            "format": "decimal"
          },
          "AddHostHeader": {
            "type": "boolean",
            "description": "Determines if the Pull Zone should forward the current hostname to the origin"
          },
          "OriginHostHeader": {
            "type": "string",
            "description": "Determines the host header that will be sent to the origin",
            "nullable": true
          },
          "Type": {
            "description": "The type of the pull zone. Premium = 0, Volume = 1",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneType"
              }
            ]
          },
          "AccessControlOriginHeaderExtensions": {
            "type": "array",
            "description": "The list of extensions that will return the CORS headers",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableAccessControlOriginHeader": {
            "type": "boolean",
            "description": "Determines if the CORS headers should be enabled"
          },
          "DisableCookies": {
            "type": "boolean",
            "description": "Determines if the cookies are disabled for the pull zone"
          },
          "BudgetRedirectedCountries": {
            "type": "array",
            "description": "The list of budget redirected countries with the two-letter Alpha2 ISO codes",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedCountries": {
            "type": "array",
            "description": "The list of blocked countries with the two-letter Alpha2 ISO codes",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableOriginShield": {
            "type": "boolean",
            "description": "If true the server will use the origin shield feature"
          },
          "CacheControlMaxAgeOverride": {
            "type": "integer",
            "description": "The override cache time for the pull zone",
            "format": "int64"
          },
          "CacheControlPublicMaxAgeOverride": {
            "type": "integer",
            "description": "The override cache time for the pull zone for the end client",
            "format": "int64"
          },
          "BurstSize": {
            "type": "integer",
            "description": "Excessive requests are delayed until their number exceeds the maximum burst size.",
            "format": "int32"
          },
          "RequestLimit": {
            "type": "integer",
            "description": "Max number of requests per IP per second",
            "format": "int32"
          },
          "BlockRootPathAccess": {
            "type": "boolean",
            "description": "If true, access to root path will return a 403 error"
          },
          "BlockPostRequests": {
            "type": "boolean",
            "description": "If true, POST requests to the zone will be blocked"
          },
          "LimitRatePerSecond": {
            "type": "number",
            "description": "The maximum rate at which the zone will transfer data in kb/s. 0 for unlimited",
            "format": "double"
          },
          "LimitRateAfter": {
            "type": "number",
            "description": "The amount of data after the rate limit will be activated",
            "format": "double"
          },
          "ConnectionLimitPerIPCount": {
            "type": "integer",
            "description": "The number of connections limited per IP for this zone",
            "format": "int32"
          },
          "PriceOverride": {
            "type": "number",
            "description": "The custom price override for this zone. Unit is $/Byte.",
            "format": "decimal"
          },
          "OptimizerPricing": {
            "type": "number",
            "description": "Monthly pricing for Bunny Optimizer for this pull zone",
            "format": "decimal"
          },
          "AddCanonicalHeader": {
            "type": "boolean",
            "description": "Determines if the Add Canonical Header is enabled for this Pull Zone"
          },
          "EnableLogging": {
            "type": "boolean",
            "description": "Determines if the logging is enabled for this Pull Zone"
          },
          "EnableCacheSlice": {
            "type": "boolean",
            "description": "Determines if the cache slice (Optimize for video) feature is enabled for the Pull Zone"
          },
          "EnableSmartCache": {
            "type": "boolean",
            "description": "Determines if smart caching is enabled for this zone"
          },
          "EdgeRules": {
            "type": "array",
            "description": "The list of edge rules on this Pull Zone",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/EdgeRuleV2Model"
            }
          },
          "EnableWebPVary": {
            "type": "boolean",
            "description": "Determines if the WebP Vary feature is enabled."
          },
          "EnableAvifVary": {
            "type": "boolean",
            "description": "Determines if the AVIF Vary feature is enabled."
          },
          "EnableCountryCodeVary": {
            "type": "boolean",
            "description": "Determines if the Country Code Vary feature is enabled."
          },
          "EnableCountryStateCodeVary": {
            "type": "boolean",
            "description": "Determines if the Country State Code Vary feature should be enabled."
          },
          "EnableMobileVary": {
            "type": "boolean",
            "description": "Determines if the Mobile Vary feature is enabled."
          },
          "EnableCookieVary": {
            "type": "boolean",
            "description": "Determines if the Cookie Vary feature is enabled."
          },
          "CookieVaryParameters": {
            "type": "array",
            "description": "Contains the list of vary parameters that will be used for vary cache by cookie string. If empty, cookie vary will not be used.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableHostnameVary": {
            "type": "boolean",
            "description": "Determines if the Hostname Vary feature is enabled."
          },
          "CnameDomain": {
            "type": "string",
            "description": "The CNAME domain of the pull zone for setting up custom hostnames",
            "nullable": true
          },
          "AWSSigningEnabled": {
            "type": "boolean",
            "description": "Determines if the AWS Signing is enabled"
          },
          "AWSSigningKey": {
            "type": "string",
            "description": "The AWS Signing region key",
            "nullable": true
          },
          "AWSSigningSecret": {
            "type": "string",
            "description": "The AWS Signing region secret",
            "nullable": true
          },
          "AWSSigningRegionName": {
            "type": "string",
            "description": "The AWS Signing region name",
            "nullable": true
          },
          "LoggingIPAnonymizationEnabled": {
            "type": "boolean",
            "description": "Determines if the TLS 1 is enabled on the Pull Zone"
          },
          "EnableTLS1": {
            "type": "boolean",
            "description": "Determines if the TLS 1 is enabled on the Pull Zone"
          },
          "EnableTLS1_1": {
            "type": "boolean",
            "description": "Determines if the TLS 1.1 is enabled on the Pull Zone"
          },
          "VerifyOriginSSL": {
            "type": "boolean",
            "description": "Determines if the Pull Zone should verify the origin SSL certificate"
          },
          "ErrorPageEnableCustomCode": {
            "type": "boolean",
            "description": "Determines if custom error page code should be enabled."
          },
          "ErrorPageCustomCode": {
            "type": "string",
            "description": "Contains the custom error page code that will be returned",
            "nullable": true
          },
          "ErrorPageEnableStatuspageWidget": {
            "type": "boolean",
            "description": "Determines if the statuspage widget should be displayed on the error pages"
          },
          "ErrorPageStatuspageCode": {
            "type": "string",
            "description": "The statuspage code that will be used to build the status widget",
            "nullable": true
          },
          "ErrorPageWhitelabel": {
            "type": "boolean",
            "description": "Determines if the error pages should be whitelabel or not"
          },
          "OriginShieldZoneCode": {
            "type": "string",
            "description": "The zone code of the origin shield",
            "nullable": true
          },
          "LogForwardingEnabled": {
            "type": "boolean",
            "description": "Determines if the log forawrding is enabled"
          },
          "LogForwardingHostname": {
            "type": "string",
            "description": "The log forwarding hostname",
            "nullable": true
          },
          "LogForwardingPort": {
            "type": "integer",
            "description": "The log forwarding port",
            "format": "int32"
          },
          "LogForwardingToken": {
            "type": "string",
            "description": "The log forwarding token value",
            "nullable": true
          },
          "LogForwardingProtocol": {
            "description": "Determines the log forwarding protocol type",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogForwarderProtocolType"
              }
            ]
          },
          "LoggingSaveToStorage": {
            "type": "boolean",
            "description": "Determines if the permanent logging feature is enabled"
          },
          "LoggingStorageZoneId": {
            "type": "integer",
            "description": "The ID of the logging storage zone that is configured for this Pull Zone",
            "format": "int64"
          },
          "FollowRedirects": {
            "type": "boolean",
            "description": "Determines if the zone will follow origin redirects"
          },
          "VideoLibraryId": {
            "type": "integer",
            "description": "The ID of the video library that the zone is linked to",
            "format": "int64"
          },
          "DnsRecordId": {
            "type": "integer",
            "description": "The ID of the DNS record tied to this pull zone",
            "format": "int64"
          },
          "DnsZoneId": {
            "type": "integer",
            "description": "The ID of the DNS zone tied to this pull zone",
            "format": "int64"
          },
          "DnsRecordValue": {
            "type": "string",
            "description": "The cached version of the DNS record value",
            "nullable": true
          },
          "OptimizerEnabled": {
            "type": "boolean",
            "description": "Determines if the optimizer should be enabled for this zone"
          },
          "OptimizerTunnelEnabled": {
            "type": "boolean",
            "description": "Determines if the optimizer origin tunnel system is enabled for this zone"
          },
          "OptimizerDesktopMaxWidth": {
            "type": "integer",
            "description": "Determines the maximum automatic image size for desktop clients",
            "format": "int32",
            "maximum": 5000.0,
            "minimum": 0.0
          },
          "OptimizerMobileMaxWidth": {
            "type": "integer",
            "description": "Determines the maximum automatic image size for mobile clients",
            "format": "int32",
            "maximum": 5000.0,
            "minimum": 0.0
          },
          "OptimizerImageQuality": {
            "type": "integer",
            "description": "Determines the image quality for desktop clients",
            "format": "int32",
            "maximum": 100.0,
            "minimum": 1.0
          },
          "OptimizerMobileImageQuality": {
            "type": "integer",
            "description": "Determines the image quality for mobile clients",
            "format": "int32",
            "maximum": 100.0,
            "minimum": 1.0
          },
          "OptimizerEnableWebP": {
            "type": "boolean",
            "description": "Determines if the WebP optimization should be enabled"
          },
          "OptimizerPrerenderHtml": {
            "type": "boolean",
            "description": "Determines if the SEO HTML prerender is enabled"
          },
          "OptimizerEnableManipulationEngine": {
            "type": "boolean",
            "description": "Determines the image manipulation should be enabled"
          },
          "OptimizerMinifyCSS": {
            "type": "boolean",
            "description": "Determines if the CSS minifcation should be enabled"
          },
          "OptimizerMinifyJavaScript": {
            "type": "boolean",
            "description": "Determines if the JavaScript minifcation should be enabled"
          },
          "OptimizerWatermarkEnabled": {
            "type": "boolean",
            "description": "Determines if image watermarking should be enabled"
          },
          "OptimizerWatermarkUrl": {
            "type": "string",
            "description": "Sets the URL of the watermark image",
            "nullable": true
          },
          "OptimizerWatermarkPosition": {
            "description": "Sets the position of the watermark image",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OptimizerWatermarkPosition"
              }
            ]
          },
          "OptimizerWatermarkOffset": {
            "type": "number",
            "description": "Sets the offset of the watermark image",
            "format": "double"
          },
          "OptimizerWatermarkMinImageSize": {
            "type": "integer",
            "description": "Sets the minimum image size to which the watermark will be added",
            "format": "int32"
          },
          "OptimizerAutomaticOptimizationEnabled": {
            "type": "boolean",
            "description": "Determines if the automatic image optimization should be enabled"
          },
          "PermaCacheStorageZoneId": {
            "type": "integer",
            "description": "The IP of the storage zone used for Perma-Cache",
            "format": "int64"
          },
          "PermaCacheType": {
            "description": "Determines Perma-Cache behavior",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PermaCacheType"
              }
            ]
          },
          "OriginRetries": {
            "type": "integer",
            "description": "The number of retries to the origin server",
            "format": "int32"
          },
          "OriginConnectTimeout": {
            "type": "integer",
            "description": "The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry.",
            "format": "int32"
          },
          "OriginResponseTimeout": {
            "type": "integer",
            "description": "The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry.",
            "format": "int32"
          },
          "UseStaleWhileUpdating": {
            "type": "boolean",
            "description": "Determines if we should use stale cache while cache is updating"
          },
          "UseStaleWhileOffline": {
            "type": "boolean",
            "description": "Determines if we should use stale cache while the origin is offline"
          },
          "OriginRetry5XXResponses": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a 5XX response."
          },
          "OriginRetryConnectionTimeout": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a connection timeout."
          },
          "OriginRetryResponseTimeout": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a response timeout."
          },
          "OriginRetryDelay": {
            "type": "integer",
            "description": "Determines the amount of time that the CDN should wait before retrying an origin request.",
            "format": "int32"
          },
          "QueryStringVaryParameters": {
            "type": "array",
            "description": "Contains the list of vary parameters that will be used for vary cache by query string. If empty, all parameters will be used to construct the key",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "OriginShieldEnableConcurrencyLimit": {
            "type": "boolean",
            "description": "Determines if the origin shield concurrency limit is enabled."
          },
          "OriginShieldMaxConcurrentRequests": {
            "type": "integer",
            "description": "Determines the number of maximum concurrent requests allowed to the origin.",
            "format": "int32"
          },
          "EnableSafeHop": {
            "type": "boolean"
          },
          "CacheErrorResponses": {
            "type": "boolean",
            "description": "Determines if bunny.net should be caching error responses"
          },
          "OriginShieldQueueMaxWaitTime": {
            "type": "integer",
            "description": "Determines the max queue wait time",
            "format": "int32"
          },
          "OriginShieldMaxQueuedRequests": {
            "type": "integer",
            "description": "Determines the max number of origin requests that will remain in the queu",
            "format": "int32"
          },
          "OptimizerClasses": {
            "type": "array",
            "description": "Contains the list of optimizer classes",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/OptimizerClassModel"
            }
          },
          "OptimizerForceClasses": {
            "type": "boolean",
            "description": "Determines if the optimizer class list should be enforced"
          },
          "OptimizerStaticHtmlEnabled": {
            "type": "boolean",
            "description": "Determines whether optimizer static html feature enabled"
          },
          "OptimizerStaticHtmlWordPressPath": {
            "type": "string",
            "description": "Wordpress html path which should be bypassed by permacache in edge rule",
            "nullable": true
          },
          "OptimizerStaticHtmlWordPressBypassCookie": {
            "type": "string",
            "description": "Wordpress cookie which should be bypassed by permacache in edge rule",
            "nullable": true
          },
          "UseBackgroundUpdate": {
            "type": "boolean",
            "description": "Determines if cache update is performed in the background."
          },
          "EnableAutoSSL": {
            "type": "boolean",
            "description": "If set to true, any hostnames added to this Pull Zone will automatically enable SSL."
          },
          "EnableQueryStringOrdering": {
            "type": "boolean",
            "description": "If set to true the query string ordering property is enabled."
          },
          "LogAnonymizationType": {
            "description": "Gets the log anonymization type for this pull zone",
            "oneOf": [
              {
                "$ref": "#/components/schemas/LogAnonymizationType"
              }
            ]
          },
          "LogFormat": {
            "$ref": "#/components/schemas/PullZoneLogFormat"
          },
          "LogForwardingFormat": {
            "$ref": "#/components/schemas/PullZoneLogFormat"
          },
          "ShieldDDosProtectionType": {
            "$ref": "#/components/schemas/ShieldDDosProtectionType"
          },
          "ShieldDDosProtectionEnabled": {
            "type": "boolean"
          },
          "OriginType": {
            "description": "The type of the origin for this Pull Zone",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneOriginType"
              }
            ]
          },
          "EnableRequestCoalescing": {
            "type": "boolean",
            "description": "Determines if request coalescing is currently enabled."
          },
          "RequestCoalescingTimeout": {
            "type": "integer",
            "description": "Determines the lock time for coalesced requests.",
            "format": "int32"
          },
          "OriginLinkValue": {
            "type": "string",
            "description": "Returns the link short preview value for the pull zone origin connection.",
            "nullable": true
          },
          "DisableLetsEncrypt": {
            "type": "boolean",
            "description": "If true, the built-in let's encrypt is disabled and requests are passed to the origin."
          },
          "EnableBunnyImageAi": {
            "type": "boolean"
          },
          "BunnyAiImageBlueprints": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BunnyAiImageBlueprintModel"
            }
          },
          "PreloadingScreenEnabled": {
            "type": "boolean",
            "description": "Determines if the preloading screen is currently enabled"
          },
          "PreloadingScreenShowOnFirstVisit": {
            "type": "boolean",
            "description": "Determines if the preloading screen is shown on the first load from a user."
          },
          "PreloadingScreenCode": {
            "type": "string",
            "description": "The custom preloading screen code",
            "nullable": true
          },
          "PreloadingScreenLogoUrl": {
            "type": "string",
            "description": "The preloading screen logo URL",
            "nullable": true
          },
          "PreloadingScreenCodeEnabled": {
            "type": "boolean",
            "description": "Determines if the custom preloader screen is enabled"
          },
          "PreloadingScreenTheme": {
            "description": "The currently configured preloading screem theme. (0 - Light, 1 - Dark)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PreloadingScreenTheme"
              }
            ]
          },
          "PreloadingScreenDelay": {
            "type": "integer",
            "description": "The delay in miliseconds after which the preloading screen will be desplayed",
            "format": "int32"
          },
          "EUUSDiscount": {
            "type": "integer",
            "description": "The Pull Zone specific pricing discount for EU and US region.",
            "format": "int32"
          },
          "SouthAmericaDiscount": {
            "type": "integer",
            "description": "The Pull Zone specific pricing discount for South America region.",
            "format": "int32"
          },
          "AfricaDiscount": {
            "type": "integer",
            "description": "The Pull Zone specific pricing discount for Africa region.",
            "format": "int32"
          },
          "AsiaOceaniaDiscount": {
            "type": "integer",
            "description": "The Pull Zone specific pricing discount for Asia & Oceania region.",
            "format": "int32"
          },
          "RoutingFilters": {
            "type": "array",
            "description": "The list of routing filters enabled for this zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockNoneReferrer": {
            "type": "boolean",
            "description": "Determines if direct access to files will be blocked if not coming from allowed referrers"
          },
          "StickySessionType": {
            "description": "Whether to use a Sticky Session mechanism for this pull zone",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StickySessionType"
              }
            ]
          },
          "StickySessionCookieName": {
            "type": "string",
            "description": "Sticky Session Cookie Name",
            "nullable": true
          },
          "StickySessionClientHeaders": {
            "type": "string",
            "description": "A set of comma-separated header names used to identify clients",
            "nullable": true
          },
          "UserId": {
            "type": "string",
            "description": "User Id of the pull zone owner",
            "nullable": true
          },
          "CacheVersion": {
            "type": "integer",
            "format": "int64"
          },
          "OptimizerEnableUpscaling": {
            "type": "boolean",
            "description": "Whether to automatically upscale assets when using Optimizer."
          },
          "EnableWebSockets": {
            "type": "boolean",
            "description": "Determines if WebSocket connections are allowed for this Pull Zone."
          },
          "MaxWebSocketConnections": {
            "type": "integer",
            "description": "The maximum global simultaneous WebSocket connections allowed for this Pull Zone.",
            "format": "int32"
          },
          "EnableExtendedLogging": {
            "type": "boolean",
            "description": "Determines if extended logging with additional details is enabled for this Pull Zone."
          }
        }
      },
      "HostnameModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The unique ID of the hostname",
            "format": "int64"
          },
          "Value": {
            "type": "string",
            "description": "The hostname value for the domain name",
            "nullable": true
          },
          "ForceSSL": {
            "type": "boolean",
            "description": "Determines if the Force SSL feature is enabled"
          },
          "IsSystemHostname": {
            "type": "boolean",
            "description": "Determines if this is a system hostname controlled by bunny.net"
          },
          "IsManagedHostname": {
            "type": "boolean",
            "description": "Determines if this is a managed hostname controlled by bunny.net"
          },
          "HasCertificate": {
            "type": "boolean",
            "description": "Determines if the hostname has an SSL certificate configured"
          },
          "Certificate": {
            "type": "string",
            "description": "Contains the Base64Url encoded certificate for the hostname",
            "nullable": true
          },
          "CertificateKey": {
            "type": "string",
            "description": "Contains the Base64Url encoded certificate key for the hostname",
            "nullable": true
          },
          "CertificateKeyType": {
            "description": "The private key type to use for automatic certificates",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PrivateKeyType"
              }
            ]
          },
          "CertificateProvisionType": {
            "description": "The provisioned certificate type",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CertificateProvisionType"
              }
            ]
          }
        }
      },
      "CertificateProvisionType": {
        "type": "integer",
        "description": "0 = Unknown\n1 = Http01\n2 = Dns01\n3 = Custom",
        "x-enumNames": [
          "Unknown",
          "Http01",
          "Dns01",
          "Custom"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "ExecutionPhase": {
        "type": "integer",
        "description": "0 = Cache\n1 = LoadBalancer",
        "x-enumNames": [
          "Cache",
          "LoadBalancer"
        ],
        "enum": [
          0,
          1
        ]
      },
      "PullZoneType": {
        "type": "integer",
        "description": "0 = Premium\n1 = Volume",
        "x-enumNames": [
          "Premium",
          "Volume"
        ],
        "enum": [
          0,
          1
        ]
      },
      "EdgeRuleV2Model": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Guid": {
            "type": "string",
            "description": "The unique GUID of the edge rule",
            "nullable": true
          },
          "ActionType": {
            "description": "The action type of the edge rule. ForceSSL = 0, Redirect = 1, OriginUrl = 2, OverrideCacheTime = 3, BlockRequest = 4, SetResponseHeader = 5, SetRequestHeader = 6, ForceDownload = 7, DisableTokenAuthentication = 8, EnableTokenAuthentication = 9, OverrideCacheTimePublic = 10, IgnoreQueryString = 11, DisableOptimizer = 12, ForceCompression = 13, SetStatusCode = 14, BypassPermaCache = 15, OverrideBrowserCacheTime = 16",
            "oneOf": [
              {
                "$ref": "#/components/schemas/EdgeRuleActionType"
              }
            ]
          },
          "ActionParameter1": {
            "type": "string",
            "description": "The Action parameter 1. The value depends on other parameters of the edge rule.",
            "nullable": true
          },
          "ActionParameter2": {
            "type": "string",
            "description": "The Action parameter 2. The value depends on other parameters of the edge rule.",
            "nullable": true
          },
          "ActionParameter3": {
            "type": "string",
            "description": "The Action parameter 3. The value depends on other parameters of the edge rule.",
            "nullable": true
          },
          "Triggers": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Trigger"
            }
          },
          "ExtraActions": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/EdgeRuleV2ActionModel"
            }
          },
          "TriggerMatchingType": {
            "description": "The trigger matching type. MatchAny = 0, MatchAll = 1, MatchNone = 2",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TriggerMatchingTypes"
              }
            ]
          },
          "Description": {
            "type": "string",
            "description": "The description of the edge rule",
            "nullable": true
          },
          "Enabled": {
            "type": "boolean",
            "description": "Determines if the edge rule is currently enabled or not"
          },
          "OrderIndex": {
            "type": "integer",
            "description": "The index of the edge rule in the list of execution priority",
            "format": "int32"
          },
          "ReadOnly": {
            "type": "boolean",
            "description": "Determines if the edge rule is read-only and cannot be modified or deleted"
          }
        }
      },
      "EdgeRuleActionType": {
        "type": "integer",
        "description": "0 = ForceSSL\n1 = Redirect\n2 = OriginUrl\n3 = OverrideCacheTime\n4 = BlockRequest\n5 = SetResponseHeader\n6 = SetRequestHeader\n7 = ForceDownload\n8 = DisableTokenAuthentication\n9 = EnableTokenAuthentication\n10 = OverrideCacheTimePublic\n11 = IgnoreQueryString\n12 = DisableOptimizer\n13 = ForceCompression\n14 = SetStatusCode\n15 = BypassPermaCache\n16 = OverrideBrowserCacheTime\n17 = OriginStorage\n18 = SetNetworkRateLimit\n19 = SetConnectionLimit\n20 = SetRequestsPerSecondLimit\n21 = RunEdgeScript\n22 = OriginMagicContainers\n23 = DisableWAF\n24 = RetryOrigin\n25 = OverrideBrowserCacheResponseHeader\n26 = RemoveBrowserCacheResponseHeader\n27 = DisableShieldChallenge\n28 = DisableShield\n29 = DisableShieldBotDetection\n30 = BypassAwsS3Authentication\n31 = DisableShieldAccessLists\n32 = DisableShieldRateLimiting\n33 = EnableRequestCoalescing\n34 = DisableRequestCoalescing",
        "x-enumNames": [
          "ForceSSL",
          "Redirect",
          "OriginUrl",
          "OverrideCacheTime",
          "BlockRequest",
          "SetResponseHeader",
          "SetRequestHeader",
          "ForceDownload",
          "DisableTokenAuthentication",
          "EnableTokenAuthentication",
          "OverrideCacheTimePublic",
          "IgnoreQueryString",
          "DisableOptimizer",
          "ForceCompression",
          "SetStatusCode",
          "BypassPermaCache",
          "OverrideBrowserCacheTime",
          "OriginStorage",
          "SetNetworkRateLimit",
          "SetConnectionLimit",
          "SetRequestsPerSecondLimit",
          "RunEdgeScript",
          "OriginMagicContainers",
          "DisableWAF",
          "RetryOrigin",
          "OverrideBrowserCacheResponseHeader",
          "RemoveBrowserCacheResponseHeader",
          "DisableShieldChallenge",
          "DisableShield",
          "DisableShieldBotDetection",
          "BypassAwsS3Authentication",
          "DisableShieldAccessLists",
          "DisableShieldRateLimiting",
          "EnableRequestCoalescing",
          "DisableRequestCoalescing"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34
        ]
      },
      "Trigger": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "description": "The type of the trigger. Url = 0, RequestHeader = 1, ResponseHeader = 2, UrlExtension = 3, CountryCode = 4, RemoteIP = 5, UrlQueryString = 6, RandomChance = 7",
            "oneOf": [
              {
                "$ref": "#/components/schemas/TriggerTypes"
              }
            ]
          },
          "PatternMatches": {
            "type": "array",
            "description": "The list of pattern matches that will trigger the edge rule",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "PatternMatchingType": {
            "description": "The type of pattern matching. MatchAny = 0, MatchAll = 1, MatchNone = 2",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PatternMatchingTypes"
              }
            ]
          },
          "Parameter1": {
            "type": "string",
            "description": "The trigger parameter 1. The value depends on the type of trigger.",
            "nullable": true
          }
        }
      },
      "TriggerTypes": {
        "type": "integer",
        "description": "0 = Url\n1 = RequestHeader\n2 = ResponseHeader\n3 = UrlExtension\n4 = CountryCode\n5 = RemoteIP\n6 = UrlQueryString\n7 = RandomChance\n8 = StatusCode\n9 = RequestMethod\n10 = CookieValue\n11 = CountryStateCode\n12 = OriginRetryAttemptCount\n13 = OriginConnectionError",
        "x-enumNames": [
          "Url",
          "RequestHeader",
          "ResponseHeader",
          "UrlExtension",
          "CountryCode",
          "RemoteIP",
          "UrlQueryString",
          "RandomChance",
          "StatusCode",
          "RequestMethod",
          "CookieValue",
          "CountryStateCode",
          "OriginRetryAttemptCount",
          "OriginConnectionError"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13
        ]
      },
      "PatternMatchingTypes": {
        "type": "integer",
        "description": "0 = MatchAny\n1 = MatchAll\n2 = MatchNone",
        "x-enumNames": [
          "MatchAny",
          "MatchAll",
          "MatchNone"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "EdgeRuleV2ActionModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ActionType": {
            "$ref": "#/components/schemas/EdgeRuleActionType"
          },
          "ActionParameter1": {
            "type": "string",
            "nullable": true
          },
          "ActionParameter2": {
            "type": "string",
            "nullable": true
          },
          "ActionParameter3": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TriggerMatchingTypes": {
        "type": "integer",
        "description": "0 = MatchAny\n1 = MatchAll\n2 = MatchNone",
        "x-enumNames": [
          "MatchAny",
          "MatchAll",
          "MatchNone"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "PullZoneLogForwarderProtocolType": {
        "type": "integer",
        "description": "0 = UDP\n1 = TCP\n2 = TCPEncrypted\n3 = DataDog",
        "x-enumNames": [
          "UDP",
          "TCP",
          "TCPEncrypted",
          "DataDog"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "OptimizerWatermarkPosition": {
        "type": "integer",
        "description": "0 = BottomLeft\n1 = BottomRight\n2 = TopLeft\n3 = TopRight\n4 = Center\n5 = CenterStretch",
        "x-enumNames": [
          "BottomLeft",
          "BottomRight",
          "TopLeft",
          "TopRight",
          "Center",
          "CenterStretch"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ]
      },
      "PermaCacheType": {
        "type": "integer",
        "description": "0 = Automatic\n1 = Manual",
        "x-enumNames": [
          "Automatic",
          "Manual"
        ],
        "enum": [
          0,
          1
        ]
      },
      "OptimizerClassModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Properties": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PullZoneLogFormat": {
        "type": "integer",
        "description": "0 = Plain\n1 = JSON",
        "x-enumNames": [
          "Plain",
          "JSON"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ShieldDDosProtectionType": {
        "type": "integer",
        "description": "0 = DetectOnly\n1 = ActiveStandard\n2 = ActiveAggressive",
        "x-enumNames": [
          "DetectOnly",
          "ActiveStandard",
          "ActiveAggressive"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "PullZoneOriginType": {
        "type": "integer",
        "description": "0 = OriginUrl\n1 = DnsAccelerate\n2 = StorageZone\n3 = LoadBalancer\n4 = EdgeScript\n5 = MagicContainers\n6 = PushZone",
        "x-enumNames": [
          "OriginUrl",
          "DnsAccelerate",
          "StorageZone",
          "LoadBalancer",
          "EdgeScript",
          "MagicContainers",
          "PushZone"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ]
      },
      "BunnyAiImageBlueprintModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "nullable": true
          },
          "Properties": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PreloadingScreenTheme": {
        "type": "integer",
        "description": "0 = Light\n1 = Dark",
        "x-enumNames": [
          "Light",
          "Dark"
        ],
        "enum": [
          0,
          1
        ]
      },
      "StickySessionType": {
        "type": "integer",
        "description": "0 = Off\n1 = On",
        "x-enumNames": [
          "Off",
          "On"
        ],
        "enum": [
          0,
          1
        ]
      },
      "ToggleRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Value": {
            "type": "boolean"
          }
        }
      },
      "PullZoneSettingsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "OriginUrl": {
            "type": "string",
            "description": "Sets the origin URL of the Pull Zone",
            "nullable": true
          },
          "AllowedReferrers": {
            "type": "array",
            "description": "Sets the list of referrer hostnames that are allowed to access the pull zone. Requests containing the header Referer: hostname that is not on the list will be rejected. If empty, all the referrers are allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedReferrers": {
            "type": "array",
            "description": "Sets the list of referrer hostnames that are blocked from accessing the pull zone.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockNoneReferrer": {
            "type": "boolean",
            "nullable": true
          },
          "BlockedIps": {
            "type": "array",
            "description": "Sets the list of IPs that are blocked from accessing the pull zone. Requests coming from the following IPs will be rejected. If empty, all the IPs will be allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableGeoZoneUS": {
            "type": "boolean",
            "description": "Determines if the delivery from the North America region should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneEU": {
            "type": "boolean",
            "description": "Determines if the delivery from the Europe region should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneASIA": {
            "type": "boolean",
            "description": "Determines if the delivery from the Asia / Oceania regions should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneSA": {
            "type": "boolean",
            "description": "Determines if the delivery from the South America region should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneAF": {
            "type": "boolean",
            "description": "Determines if the delivery from the Africa region should be enabled for this pull zone",
            "nullable": true
          },
          "BlockRootPathAccess": {
            "type": "boolean",
            "description": "Determines if the zone should block requests to the root of the zone.",
            "nullable": true
          },
          "BlockPostRequests": {
            "type": "boolean",
            "description": "Determines if the POST requests to this zone should be rejected.",
            "nullable": true
          },
          "EnableQueryStringOrdering": {
            "type": "boolean",
            "description": "Determines if the query string ordering should be enabled.",
            "nullable": true
          },
          "EnableWebpVary": {
            "type": "boolean",
            "description": "Determines if the WebP Vary feature should be enabled.",
            "nullable": true
          },
          "EnableAvifVary": {
            "type": "boolean",
            "description": "Determines if the AVIF Vary feature should be enabled.",
            "nullable": true
          },
          "EnableMobileVary": {
            "type": "boolean",
            "description": "Determines if the Mobile Vary feature is enabled.",
            "nullable": true
          },
          "EnableCountryCodeVary": {
            "type": "boolean",
            "description": "Determines if the Country Code Vary feature should be enabled.",
            "nullable": true
          },
          "EnableCountryStateCodeVary": {
            "type": "boolean",
            "description": "Determines if the Country State Code Vary feature should be enabled.",
            "nullable": true
          },
          "EnableHostnameVary": {
            "type": "boolean",
            "description": "Determines if the Hostname Vary feature should be enabled.",
            "nullable": true
          },
          "EnableCacheSlice": {
            "type": "boolean",
            "description": "Determines if cache slicing (Optimize for video) should be enabled for this zone",
            "nullable": true
          },
          "ZoneSecurityEnabled": {
            "type": "boolean",
            "description": "Determines if the zone token authentication security should be enabled",
            "nullable": true
          },
          "ZoneSecurityIncludeHashRemoteIP": {
            "type": "boolean",
            "description": "Determines if the token authentication IP validation should be enabled",
            "nullable": true
          },
          "IgnoreQueryStrings": {
            "type": "boolean",
            "description": "Determines if the Pull Zone should ignore query strings when serving cached objects (Vary by Query String)",
            "nullable": true
          },
          "MonthlyBandwidthLimit": {
            "type": "integer",
            "description": "Sets the monthly limit of bandwidth in bytes that the pullzone is allowed to use",
            "format": "int64",
            "nullable": true
          },
          "AccessControlOriginHeaderExtensions": {
            "type": "array",
            "description": "Sets the list of extensions that will return the CORS headers",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableAccessControlOriginHeader": {
            "type": "boolean",
            "description": "Determines if CORS headers should be enabled",
            "nullable": true
          },
          "DisableCookies": {
            "type": "boolean",
            "description": "Determines if the Pull Zone should automatically remove cookies from the responses",
            "nullable": true
          },
          "BudgetRedirectedCountries": {
            "type": "array",
            "description": "Sets the list of two letter Alpha2 country codes that will be redirected to the cheapest possible region",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedCountries": {
            "type": "array",
            "description": "Sets the list of two letter Alpha2 country codes that will be blocked from accessing the zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "CacheControlMaxAgeOverride": {
            "type": "integer",
            "description": "Sets the cache control override setting for this zone",
            "format": "int64",
            "nullable": true
          },
          "CacheControlPublicMaxAgeOverride": {
            "type": "integer",
            "description": "Sets the browser cache control override setting for this zone",
            "format": "int64",
            "nullable": true
          },
          "CacheControlBrowserMaxAgeOverride": {
            "type": "integer",
            "description": "(Deprecated) Sets the browser cache control override setting for this zone",
            "format": "int64",
            "nullable": true
          },
          "AddHostHeader": {
            "type": "boolean",
            "description": "Determines if the zone should forward the requested host header to the origin",
            "nullable": true
          },
          "AddCanonicalHeader": {
            "type": "boolean",
            "description": "Determines if the canonical header should be added by this zone",
            "nullable": true
          },
          "EnableLogging": {
            "type": "boolean",
            "description": "Determines if the logging should be enabled for this zone",
            "nullable": true
          },
          "LoggingIPAnonymizationEnabled": {
            "type": "boolean",
            "description": "Determines if the log anonoymization should be enabled",
            "nullable": true
          },
          "PermaCacheStorageZoneId": {
            "type": "integer",
            "description": "The ID of the storage zone that should be used as the Perma-Cache",
            "format": "int64",
            "nullable": true
          },
          "PermaCacheType": {
            "description": "Determines Perma-Cache behavior",
            "maximum": 1.0,
            "minimum": 0.0,
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PermaCacheType"
              }
            ]
          },
          "AWSSigningEnabled": {
            "type": "boolean",
            "description": "Determines if the AWS signing should be enabled or not",
            "nullable": true
          },
          "AWSSigningKey": {
            "type": "string",
            "description": "Sets the AWS signing key",
            "nullable": true
          },
          "AWSSigningRegionName": {
            "type": "string",
            "description": "Sets the AWS signing region name",
            "nullable": true
          },
          "AWSSigningSecret": {
            "type": "string",
            "description": "Sets the AWS signing secret key",
            "nullable": true
          },
          "EnableOriginShield": {
            "type": "boolean",
            "description": "Determines if the origin shield should be enabled",
            "nullable": true
          },
          "OriginShieldZoneCode": {
            "type": "string",
            "description": "Determines the zone code where the origin shield should be set up",
            "nullable": true
          },
          "EnableTLS1": {
            "type": "boolean",
            "description": "Determines if the TLS 1 should be enabled on this zone",
            "nullable": true
          },
          "EnableTLS1_1": {
            "type": "boolean",
            "description": "Determines if the TLS 1.1 should be enabled on this zone",
            "nullable": true
          },
          "CacheErrorResponses": {
            "type": "boolean",
            "description": "Determines if the cache error responses should be enabled on the zone",
            "nullable": true
          },
          "VerifyOriginSSL": {
            "type": "boolean",
            "description": "Determines if the SSL certificate should be verified when connecting to the origin",
            "nullable": true
          },
          "LogForwardingEnabled": {
            "type": "boolean",
            "description": "Sets the log forwarding token for the zone",
            "nullable": true
          },
          "LogForwardingHostname": {
            "type": "string",
            "description": "Sets the log forwarding destination hostname for the zone",
            "nullable": true
          },
          "LogForwardingPort": {
            "type": "integer",
            "description": "Sets the log forwarding port for the zone",
            "format": "int32",
            "nullable": true
          },
          "LogForwardingToken": {
            "type": "string",
            "description": "Sets the log forwarding token for the zone",
            "nullable": true
          },
          "LogForwardingProtocol": {
            "description": "Sets the log forwarding protocol type",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogForwarderProtocolType"
              }
            ]
          },
          "LoggingSaveToStorage": {
            "type": "boolean",
            "description": "Determines if the logging permanent storage should be enabled",
            "nullable": true
          },
          "LoggingStorageZoneId": {
            "type": "integer",
            "description": "Sets the Storage Zone id that should contain the logs from this Pull Zone",
            "format": "int64",
            "nullable": true
          },
          "FollowRedirects": {
            "type": "boolean",
            "description": "Determines if the zone should follow redirects return by the oprigin and cache the response",
            "nullable": true
          },
          "ConnectionLimitPerIPCount": {
            "type": "integer",
            "description": "Determines the maximum number of connections per IP that will be allowed to connect to this Pull Zone",
            "format": "int32",
            "nullable": true
          },
          "RequestLimit": {
            "type": "integer",
            "description": "Determines the maximum number of requests per second that will be allowed to connect to this Pull Zone",
            "format": "int32",
            "nullable": true
          },
          "LimitRateAfter": {
            "type": "number",
            "description": "Determines the amount of traffic transferred before the client is limited",
            "format": "double",
            "nullable": true
          },
          "LimitRatePerSecond": {
            "type": "integer",
            "description": "Determines the maximum number of requests per second coming from a single IP before it is blocked.",
            "format": "int32",
            "nullable": true
          },
          "BurstSize": {
            "type": "integer",
            "description": "Determines the maximum burst requests before an IP is blocked",
            "format": "int32",
            "nullable": true
          },
          "ErrorPageEnableCustomCode": {
            "type": "boolean",
            "description": "Determines if custom error page code should be enabled.",
            "nullable": true
          },
          "ErrorPageCustomCode": {
            "type": "string",
            "description": "Contains the custom error page code that will be returned",
            "nullable": true
          },
          "ErrorPageEnableStatuspageWidget": {
            "type": "boolean",
            "description": "Determines if the statuspage widget should be displayed on the error pages",
            "nullable": true
          },
          "ErrorPageStatuspageCode": {
            "type": "string",
            "description": "The statuspage code that will be used to build the status widget",
            "nullable": true
          },
          "ErrorPageWhitelabel": {
            "type": "boolean",
            "description": "Determines if the error pages should be whitelabel or not",
            "nullable": true
          },
          "OptimizerEnabled": {
            "type": "boolean",
            "description": "Determines if the optimizer should be enabled for this zone",
            "nullable": true
          },
          "OptimizerTunnelEnabled": {
            "type": "boolean",
            "description": "Determines if the optimizer origin tunnel system should be enabled for this zone",
            "nullable": true
          },
          "OptimizerDesktopMaxWidth": {
            "type": "integer",
            "description": "Determines the maximum automatic image size for desktop clients",
            "format": "int32",
            "maximum": 5000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "OptimizerMobileMaxWidth": {
            "type": "integer",
            "description": "Determines the maximum automatic image size for mobile clients",
            "format": "int32",
            "maximum": 5000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "OptimizerImageQuality": {
            "type": "integer",
            "description": "Determines the image quality for desktop clients",
            "format": "int32",
            "maximum": 100.0,
            "minimum": 1.0,
            "nullable": true
          },
          "OptimizerMobileImageQuality": {
            "type": "integer",
            "description": "Determines the image quality for mobile clients",
            "format": "int32",
            "maximum": 100.0,
            "minimum": 1.0,
            "nullable": true
          },
          "OptimizerEnableWebP": {
            "type": "boolean",
            "description": "Determines if the WebP optimization should be enabled",
            "nullable": true
          },
          "OptimizerPrerenderHtml": {
            "type": "boolean",
            "description": "Determines if the SEO HTML prerender should be enabled",
            "nullable": true
          },
          "OptimizerEnableManipulationEngine": {
            "type": "boolean",
            "description": "Determines the image manipulation should be enabled",
            "nullable": true
          },
          "OptimizerMinifyCSS": {
            "type": "boolean",
            "description": "Determines if the CSS minifcation should be enabled",
            "nullable": true
          },
          "OptimizerMinifyJavaScript": {
            "type": "boolean",
            "description": "Determines if the JavaScript minifcation should be enabled",
            "nullable": true
          },
          "OptimizerWatermarkEnabled": {
            "type": "boolean",
            "description": "Determines if image watermarking should be enabled",
            "nullable": true
          },
          "OptimizerWatermarkUrl": {
            "type": "string",
            "description": "Sets the URL of the watermark image",
            "nullable": true
          },
          "OptimizerWatermarkPosition": {
            "description": "Sets the position of the watermark image",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OptimizerWatermarkPosition"
              }
            ]
          },
          "OptimizerWatermarkOffset": {
            "type": "number",
            "description": "Sets the offset of the watermark image",
            "format": "double",
            "nullable": true
          },
          "OptimizerWatermarkMinImageSize": {
            "type": "integer",
            "description": "Sets the minimum image size to which the watermark will be added",
            "format": "int32",
            "nullable": true
          },
          "OptimizerAutomaticOptimizationEnabled": {
            "type": "boolean",
            "description": "Determines if the automatic image optimization should be enabled",
            "nullable": true
          },
          "OptimizerClasses": {
            "type": "array",
            "description": "Determines the list of optimizer classes",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PullZoneOptimizerClassModel"
            }
          },
          "OptimizerForceClasses": {
            "type": "boolean",
            "description": "Determines if the optimizer classes should be forced",
            "nullable": true
          },
          "OptimizerStaticHtmlEnabled": {
            "type": "boolean",
            "description": "Determines whether optimizer static html feature enabled",
            "nullable": true
          },
          "OptimizerStaticHtmlWordPressPath": {
            "type": "string",
            "description": "Wordpress html path which should be bypassed by permacache in edge rule",
            "nullable": true
          },
          "OptimizerStaticHtmlWordPressBypassCookie": {
            "type": "string",
            "description": "Wordpress cookie which should be bypassed by permacache in edge rule",
            "nullable": true
          },
          "Type": {
            "description": "The type of the pull zone. Premium = 0, Volume = 1",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneType"
              }
            ]
          },
          "OriginRetries": {
            "type": "integer",
            "description": "The number of retries to the origin server",
            "format": "int32",
            "nullable": true
          },
          "OriginConnectTimeout": {
            "type": "integer",
            "description": "The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry.",
            "format": "int32",
            "nullable": true
          },
          "OriginResponseTimeout": {
            "type": "integer",
            "description": "The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry.",
            "format": "int32",
            "nullable": true
          },
          "UseStaleWhileUpdating": {
            "type": "boolean",
            "description": "Determines if we should use stale cache while cache is updating",
            "nullable": true
          },
          "UseStaleWhileOffline": {
            "type": "boolean",
            "description": "Determines if we should use stale cache while the origin is offline",
            "nullable": true
          },
          "OriginRetry5XXResponses": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a 5XX response.",
            "nullable": true
          },
          "OriginRetryConnectionTimeout": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a connection timeout.",
            "nullable": true
          },
          "OriginRetryResponseTimeout": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a response timeout.",
            "nullable": true
          },
          "OriginRetryDelay": {
            "type": "integer",
            "description": "Determines the amount of time that the CDN should wait before retrying an origin request.",
            "format": "int32",
            "nullable": true
          },
          "DnsOriginPort": {
            "type": "integer",
            "description": "Determines the origin port of the pull zone.",
            "format": "int32",
            "nullable": true
          },
          "DnsOriginScheme": {
            "type": "string",
            "description": "Determines the origin scheme of the pull zone.",
            "nullable": true
          },
          "QueryStringVaryParameters": {
            "type": "array",
            "description": "Contains the list of vary parameters that will be used for vary cache by query string. Only alphanumeric characters, dashes and underscores are allowed (values that contain other characters are ignorred). If empty, all parameters will be used to construct the key.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "OriginShieldEnableConcurrencyLimit": {
            "type": "boolean",
            "description": "Determines if the origin shield concurrency limit is enabled.",
            "nullable": true
          },
          "OriginShieldMaxConcurrentRequests": {
            "type": "integer",
            "description": "Determines the number of maximum concurrent requests allowed to the origin.",
            "format": "int32",
            "maximum": 10000.0,
            "minimum": 1.0,
            "nullable": true
          },
          "EnableCookieVary": {
            "type": "boolean",
            "description": "Determines if the Cookie Vary feature is enabled.",
            "nullable": true
          },
          "CookieVaryParameters": {
            "type": "array",
            "description": "Contains the list of vary parameters that will be used for vary cache by cookie string.Only alphanumeric characters, dashes and underscores are allowed (values that contain other characters are ignorred). If empty, cookie vary will not be used.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableSafeHop": {
            "type": "boolean",
            "nullable": true
          },
          "OriginShieldQueueMaxWaitTime": {
            "type": "integer",
            "description": "Determines the max queue wait time",
            "format": "int32",
            "nullable": true
          },
          "OriginShieldMaxQueuedRequests": {
            "type": "integer",
            "description": "Determines the max number of origin requests that will remain in the queue",
            "format": "int32",
            "maximum": 30000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "UseBackgroundUpdate": {
            "type": "boolean",
            "description": "Determines if cache update is performed in the background.",
            "nullable": true
          },
          "EnableAutoSSL": {
            "type": "boolean",
            "description": "If set to true, any hostnames added to this Pull Zone will automatically enable SSL.",
            "nullable": true
          },
          "LogAnonymizationType": {
            "description": "Sets the log anonymization type for this pull zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LogAnonymizationType"
              }
            ]
          },
          "StorageZoneId": {
            "type": "integer",
            "description": "The ID of the storage zone that will be used as the origin",
            "format": "int64",
            "nullable": true
          },
          "EdgeScriptId": {
            "type": "integer",
            "description": "The ID of the edge script that will be used as the origin",
            "format": "int64",
            "nullable": true
          },
          "MiddlewareScriptId": {
            "type": "integer",
            "description": "The ID of the middleware script",
            "format": "int64",
            "nullable": true
          },
          "EdgeScriptExecutionPhase": {
            "description": "The execution phase of the edge script",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExecutionPhase"
              }
            ]
          },
          "OriginType": {
            "description": "Determine the type of the origin for this Pull Zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneOriginType"
              }
            ]
          },
          "MagicContainersAppId": {
            "type": "string",
            "nullable": true
          },
          "MagicContainersEndpointId": {
            "type": "string",
            "nullable": true
          },
          "LogFormat": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogFormat"
              }
            ]
          },
          "LogForwardingFormat": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogFormat"
              }
            ]
          },
          "ShieldDDosProtectionType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ShieldDDosProtectionType"
              }
            ]
          },
          "ShieldDDosProtectionEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "OriginHostHeader": {
            "type": "string",
            "description": "Sets the host header that will be sent to the origin",
            "nullable": true
          },
          "EnableSmartCache": {
            "type": "boolean",
            "nullable": true
          },
          "EnableRequestCoalescing": {
            "type": "boolean",
            "description": "Determines if request coalescing is currently enabled.",
            "nullable": true
          },
          "RequestCoalescingTimeout": {
            "type": "integer",
            "description": "Determines the lock time for coalesced requests.",
            "format": "int32",
            "nullable": true
          },
          "DisableLetsEncrypt": {
            "type": "boolean",
            "description": "If set to true, the built-in let's encrypt will be disabled and requests are passed to the origin.",
            "nullable": true
          },
          "EnableBunnyImageAi": {
            "type": "boolean",
            "nullable": true
          },
          "BunnyAiImageBlueprints": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BunnyAiImageBlueprintModel"
            }
          },
          "PreloadingScreenEnabled": {
            "type": "boolean",
            "description": "Determines if the preloading screen is currently enabled",
            "nullable": true
          },
          "PreloadingScreenCode": {
            "type": "string",
            "description": "The custom preloading screen coed",
            "nullable": true
          },
          "PreloadingScreenLogoUrl": {
            "type": "string",
            "description": "The preloading screen logo URL",
            "nullable": true
          },
          "PreloadingScreenShowOnFirstVisit": {
            "type": "boolean",
            "description": "Determines if the preloading screen is shown on the first load from a user."
          },
          "PreloadingScreenTheme": {
            "description": "The currently configured preloading screem theme. (0 - Light, 1 - Dark)",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PreloadingScreenTheme"
              }
            ]
          },
          "PreloadingScreenCodeEnabled": {
            "type": "boolean",
            "description": "Determines if the custom preloader screen should be enabled",
            "nullable": true
          },
          "PreloadingScreenDelay": {
            "type": "integer",
            "description": "The delay in miliseconds after which the preloading screen will be displayed (0 - 10000ms)",
            "format": "int32",
            "maximum": 10000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "RoutingFilters": {
            "type": "array",
            "description": "The list of routing filters enabled for this zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "StickySessionType": {
            "description": "Whether to use a Sticky Session mechanism for this pull zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/StickySessionType"
              }
            ]
          },
          "StickySessionCookieName": {
            "type": "string",
            "description": "Sticky Session Cookie Name",
            "nullable": true
          },
          "StickySessionClientHeaders": {
            "type": "string",
            "description": "A set of comma-separated header names used to identify clients",
            "nullable": true
          },
          "OptimizerEnableUpscaling": {
            "type": "boolean",
            "description": "Determines if Optimizer should automatically upscale images",
            "nullable": true
          },
          "EnableWebSockets": {
            "type": "boolean",
            "description": "Determines if WebSocket connections are allowed for this Pull Zone.",
            "nullable": true
          },
          "MaxWebSocketConnections": {
            "type": "integer",
            "description": "The maximum global simultaneous WebSocket connections allowed for this Pull Zone. Allowed tiers: 500, 1,000, 2,500, 5,000, 10,000, 25,000. If you send a non-tier value, the value is rounded up to the next tier. Values over 25,000 are rejected, please contact sales if required.",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "PullZoneOptimizerClassModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "description": "The name of the optimizer class that will be used in the query string",
            "nullable": true
          },
          "Properties": {
            "type": "object",
            "description": "The list of settings and values the class will send to the optimizer",
            "nullable": true,
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "OriginShieldConcurrencyStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ConcurrentRequestsChart": {
            "type": "object",
            "description": "The constructed chart of origin shield concurrent requests",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "QueuedRequestsChart": {
            "type": "object",
            "description": "The constructed chart of origin shield requests chart",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "SafeHopStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RequestsRetriedChart": {
            "type": "object",
            "description": "The constructed chart of requests retried",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "RequestsSavedChart": {
            "type": "object",
            "description": "The constructed chart of requests saved",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "TotalRequestsRetried": {
            "type": "number",
            "description": "The total number of retried requests",
            "format": "double"
          },
          "TotalRequestsSaved": {
            "type": "number",
            "description": "The total number of saved requests",
            "format": "double"
          }
        }
      },
      "OptimizerStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "RequestsOptimizedChart": {
            "type": "object",
            "description": "The constructed chart of optimized requests",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "AverageCompressionChart": {
            "type": "object",
            "description": "Average compression chart of the responses",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "TrafficSavedChart": {
            "type": "object",
            "description": "The constructed chart of saved traffic",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "AverageProcessingTimeChart": {
            "type": "object",
            "description": "The constructed chart of saved traffic",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "TotalRequestsOptimized": {
            "type": "number",
            "description": "The total number of optimized requests",
            "format": "double"
          },
          "TotalTrafficSaved": {
            "type": "number",
            "description": "The total requests saved",
            "format": "double"
          },
          "AverageProcessingTime": {
            "type": "number",
            "description": "The average processing time of each request",
            "format": "double"
          },
          "AverageCompressionRatio": {
            "type": "number",
            "description": "The average compression ratio of CDN responses",
            "format": "double"
          }
        }
      },
      "PrivateKeyUpdateModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname",
          "KeyType"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "minLength": 1
          },
          "KeyType": {
            "$ref": "#/components/schemas/PrivateKeyType"
          }
        }
      },
      "PullZonePurgeModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "CacheTag": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PullZoneAddModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name"
        ],
        "properties": {
          "OriginUrl": {
            "type": "string",
            "description": "Sets the origin URL of the Pull Zone",
            "nullable": true
          },
          "AllowedReferrers": {
            "type": "array",
            "description": "Sets the list of referrer hostnames that are allowed to access the pull zone. Requests containing the header Referer: hostname that is not on the list will be rejected. If empty, all the referrers are allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedReferrers": {
            "type": "array",
            "description": "Sets the list of referrer hostnames that are blocked from accessing the pull zone.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockNoneReferrer": {
            "type": "boolean",
            "nullable": true
          },
          "BlockedIps": {
            "type": "array",
            "description": "Sets the list of IPs that are blocked from accessing the pull zone. Requests coming from the following IPs will be rejected. If empty, all the IPs will be allowed",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableGeoZoneUS": {
            "type": "boolean",
            "description": "Determines if the delivery from the North America region should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneEU": {
            "type": "boolean",
            "description": "Determines if the delivery from the Europe region should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneASIA": {
            "type": "boolean",
            "description": "Determines if the delivery from the Asia / Oceania regions should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneSA": {
            "type": "boolean",
            "description": "Determines if the delivery from the South America region should be enabled for this pull zone",
            "nullable": true
          },
          "EnableGeoZoneAF": {
            "type": "boolean",
            "description": "Determines if the delivery from the Africa region should be enabled for this pull zone",
            "nullable": true
          },
          "BlockRootPathAccess": {
            "type": "boolean",
            "description": "Determines if the zone should block requests to the root of the zone.",
            "nullable": true
          },
          "BlockPostRequests": {
            "type": "boolean",
            "description": "Determines if the POST requests to this zone should be rejected.",
            "nullable": true
          },
          "EnableQueryStringOrdering": {
            "type": "boolean",
            "description": "Determines if the query string ordering should be enabled.",
            "nullable": true
          },
          "EnableWebpVary": {
            "type": "boolean",
            "description": "Determines if the WebP Vary feature should be enabled.",
            "nullable": true
          },
          "EnableAvifVary": {
            "type": "boolean",
            "description": "Determines if the AVIF Vary feature should be enabled.",
            "nullable": true
          },
          "EnableMobileVary": {
            "type": "boolean",
            "description": "Determines if the Mobile Vary feature is enabled.",
            "nullable": true
          },
          "EnableCountryCodeVary": {
            "type": "boolean",
            "description": "Determines if the Country Code Vary feature should be enabled.",
            "nullable": true
          },
          "EnableCountryStateCodeVary": {
            "type": "boolean",
            "description": "Determines if the Country State Code Vary feature should be enabled.",
            "nullable": true
          },
          "EnableHostnameVary": {
            "type": "boolean",
            "description": "Determines if the Hostname Vary feature should be enabled.",
            "nullable": true
          },
          "EnableCacheSlice": {
            "type": "boolean",
            "description": "Determines if cache slicing (Optimize for video) should be enabled for this zone",
            "nullable": true
          },
          "ZoneSecurityEnabled": {
            "type": "boolean",
            "description": "Determines if the zone token authentication security should be enabled",
            "nullable": true
          },
          "ZoneSecurityIncludeHashRemoteIP": {
            "type": "boolean",
            "description": "Determines if the token authentication IP validation should be enabled",
            "nullable": true
          },
          "IgnoreQueryStrings": {
            "type": "boolean",
            "description": "Determines if the Pull Zone should ignore query strings when serving cached objects (Vary by Query String)",
            "nullable": true
          },
          "MonthlyBandwidthLimit": {
            "type": "integer",
            "description": "Sets the monthly limit of bandwidth in bytes that the pullzone is allowed to use",
            "format": "int64",
            "nullable": true
          },
          "AccessControlOriginHeaderExtensions": {
            "type": "array",
            "description": "Sets the list of extensions that will return the CORS headers",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableAccessControlOriginHeader": {
            "type": "boolean",
            "description": "Determines if CORS headers should be enabled",
            "nullable": true
          },
          "DisableCookies": {
            "type": "boolean",
            "description": "Determines if the Pull Zone should automatically remove cookies from the responses",
            "nullable": true
          },
          "BudgetRedirectedCountries": {
            "type": "array",
            "description": "Sets the list of two letter Alpha2 country codes that will be redirected to the cheapest possible region",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedCountries": {
            "type": "array",
            "description": "Sets the list of two letter Alpha2 country codes that will be blocked from accessing the zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "CacheControlMaxAgeOverride": {
            "type": "integer",
            "description": "Sets the cache control override setting for this zone",
            "format": "int64",
            "nullable": true
          },
          "CacheControlPublicMaxAgeOverride": {
            "type": "integer",
            "description": "Sets the browser cache control override setting for this zone",
            "format": "int64",
            "nullable": true
          },
          "CacheControlBrowserMaxAgeOverride": {
            "type": "integer",
            "description": "(Deprecated) Sets the browser cache control override setting for this zone",
            "format": "int64",
            "nullable": true
          },
          "AddHostHeader": {
            "type": "boolean",
            "description": "Determines if the zone should forward the requested host header to the origin",
            "nullable": true
          },
          "AddCanonicalHeader": {
            "type": "boolean",
            "description": "Determines if the canonical header should be added by this zone",
            "nullable": true
          },
          "EnableLogging": {
            "type": "boolean",
            "description": "Determines if the logging should be enabled for this zone",
            "nullable": true
          },
          "LoggingIPAnonymizationEnabled": {
            "type": "boolean",
            "description": "Determines if the log anonoymization should be enabled",
            "nullable": true
          },
          "PermaCacheStorageZoneId": {
            "type": "integer",
            "description": "The ID of the storage zone that should be used as the Perma-Cache",
            "format": "int64",
            "nullable": true
          },
          "PermaCacheType": {
            "description": "Determines Perma-Cache behavior",
            "maximum": 1.0,
            "minimum": 0.0,
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PermaCacheType"
              }
            ]
          },
          "AWSSigningEnabled": {
            "type": "boolean",
            "description": "Determines if the AWS signing should be enabled or not",
            "nullable": true
          },
          "AWSSigningKey": {
            "type": "string",
            "description": "Sets the AWS signing key",
            "nullable": true
          },
          "AWSSigningRegionName": {
            "type": "string",
            "description": "Sets the AWS signing region name",
            "nullable": true
          },
          "AWSSigningSecret": {
            "type": "string",
            "description": "Sets the AWS signing secret key",
            "nullable": true
          },
          "EnableOriginShield": {
            "type": "boolean",
            "description": "Determines if the origin shield should be enabled",
            "nullable": true
          },
          "OriginShieldZoneCode": {
            "type": "string",
            "description": "Determines the zone code where the origin shield should be set up",
            "nullable": true
          },
          "EnableTLS1": {
            "type": "boolean",
            "description": "Determines if the TLS 1 should be enabled on this zone",
            "nullable": true
          },
          "EnableTLS1_1": {
            "type": "boolean",
            "description": "Determines if the TLS 1.1 should be enabled on this zone",
            "nullable": true
          },
          "CacheErrorResponses": {
            "type": "boolean",
            "description": "Determines if the cache error responses should be enabled on the zone",
            "nullable": true
          },
          "VerifyOriginSSL": {
            "type": "boolean",
            "description": "Determines if the SSL certificate should be verified when connecting to the origin",
            "nullable": true
          },
          "LogForwardingEnabled": {
            "type": "boolean",
            "description": "Sets the log forwarding token for the zone",
            "nullable": true
          },
          "LogForwardingHostname": {
            "type": "string",
            "description": "Sets the log forwarding destination hostname for the zone",
            "nullable": true
          },
          "LogForwardingPort": {
            "type": "integer",
            "description": "Sets the log forwarding port for the zone",
            "format": "int32",
            "nullable": true
          },
          "LogForwardingToken": {
            "type": "string",
            "description": "Sets the log forwarding token for the zone",
            "nullable": true
          },
          "LogForwardingProtocol": {
            "description": "Sets the log forwarding protocol type",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogForwarderProtocolType"
              }
            ]
          },
          "LoggingSaveToStorage": {
            "type": "boolean",
            "description": "Determines if the logging permanent storage should be enabled",
            "nullable": true
          },
          "LoggingStorageZoneId": {
            "type": "integer",
            "description": "Sets the Storage Zone id that should contain the logs from this Pull Zone",
            "format": "int64",
            "nullable": true
          },
          "FollowRedirects": {
            "type": "boolean",
            "description": "Determines if the zone should follow redirects return by the oprigin and cache the response",
            "nullable": true
          },
          "ConnectionLimitPerIPCount": {
            "type": "integer",
            "description": "Determines the maximum number of connections per IP that will be allowed to connect to this Pull Zone",
            "format": "int32",
            "nullable": true
          },
          "RequestLimit": {
            "type": "integer",
            "description": "Determines the maximum number of requests per second that will be allowed to connect to this Pull Zone",
            "format": "int32",
            "nullable": true
          },
          "LimitRateAfter": {
            "type": "number",
            "description": "Determines the amount of traffic transferred before the client is limited",
            "format": "double",
            "nullable": true
          },
          "LimitRatePerSecond": {
            "type": "integer",
            "description": "Determines the maximum number of requests per second coming from a single IP before it is blocked.",
            "format": "int32",
            "nullable": true
          },
          "BurstSize": {
            "type": "integer",
            "description": "Determines the maximum burst requests before an IP is blocked",
            "format": "int32",
            "nullable": true
          },
          "ErrorPageEnableCustomCode": {
            "type": "boolean",
            "description": "Determines if custom error page code should be enabled.",
            "nullable": true
          },
          "ErrorPageCustomCode": {
            "type": "string",
            "description": "Contains the custom error page code that will be returned",
            "nullable": true
          },
          "ErrorPageEnableStatuspageWidget": {
            "type": "boolean",
            "description": "Determines if the statuspage widget should be displayed on the error pages",
            "nullable": true
          },
          "ErrorPageStatuspageCode": {
            "type": "string",
            "description": "The statuspage code that will be used to build the status widget",
            "nullable": true
          },
          "ErrorPageWhitelabel": {
            "type": "boolean",
            "description": "Determines if the error pages should be whitelabel or not",
            "nullable": true
          },
          "OptimizerEnabled": {
            "type": "boolean",
            "description": "Determines if the optimizer should be enabled for this zone",
            "nullable": true
          },
          "OptimizerTunnelEnabled": {
            "type": "boolean",
            "description": "Determines if the optimizer origin tunnel system should be enabled for this zone",
            "nullable": true
          },
          "OptimizerDesktopMaxWidth": {
            "type": "integer",
            "description": "Determines the maximum automatic image size for desktop clients",
            "format": "int32",
            "maximum": 5000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "OptimizerMobileMaxWidth": {
            "type": "integer",
            "description": "Determines the maximum automatic image size for mobile clients",
            "format": "int32",
            "maximum": 5000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "OptimizerImageQuality": {
            "type": "integer",
            "description": "Determines the image quality for desktop clients",
            "format": "int32",
            "maximum": 100.0,
            "minimum": 1.0,
            "nullable": true
          },
          "OptimizerMobileImageQuality": {
            "type": "integer",
            "description": "Determines the image quality for mobile clients",
            "format": "int32",
            "maximum": 100.0,
            "minimum": 1.0,
            "nullable": true
          },
          "OptimizerEnableWebP": {
            "type": "boolean",
            "description": "Determines if the WebP optimization should be enabled",
            "nullable": true
          },
          "OptimizerPrerenderHtml": {
            "type": "boolean",
            "description": "Determines if the SEO HTML prerender should be enabled",
            "nullable": true
          },
          "OptimizerEnableManipulationEngine": {
            "type": "boolean",
            "description": "Determines the image manipulation should be enabled",
            "nullable": true
          },
          "OptimizerMinifyCSS": {
            "type": "boolean",
            "description": "Determines if the CSS minifcation should be enabled",
            "nullable": true
          },
          "OptimizerMinifyJavaScript": {
            "type": "boolean",
            "description": "Determines if the JavaScript minifcation should be enabled",
            "nullable": true
          },
          "OptimizerWatermarkEnabled": {
            "type": "boolean",
            "description": "Determines if image watermarking should be enabled",
            "nullable": true
          },
          "OptimizerWatermarkUrl": {
            "type": "string",
            "description": "Sets the URL of the watermark image",
            "nullable": true
          },
          "OptimizerWatermarkPosition": {
            "description": "Sets the position of the watermark image",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/OptimizerWatermarkPosition"
              }
            ]
          },
          "OptimizerWatermarkOffset": {
            "type": "number",
            "description": "Sets the offset of the watermark image",
            "format": "double",
            "nullable": true
          },
          "OptimizerWatermarkMinImageSize": {
            "type": "integer",
            "description": "Sets the minimum image size to which the watermark will be added",
            "format": "int32",
            "nullable": true
          },
          "OptimizerAutomaticOptimizationEnabled": {
            "type": "boolean",
            "description": "Determines if the automatic image optimization should be enabled",
            "nullable": true
          },
          "OptimizerClasses": {
            "type": "array",
            "description": "Determines the list of optimizer classes",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PullZoneOptimizerClassModel"
            }
          },
          "OptimizerForceClasses": {
            "type": "boolean",
            "description": "Determines if the optimizer classes should be forced",
            "nullable": true
          },
          "OptimizerStaticHtmlEnabled": {
            "type": "boolean",
            "description": "Determines whether optimizer static html feature enabled",
            "nullable": true
          },
          "OptimizerStaticHtmlWordPressPath": {
            "type": "string",
            "description": "Wordpress html path which should be bypassed by permacache in edge rule",
            "nullable": true
          },
          "OptimizerStaticHtmlWordPressBypassCookie": {
            "type": "string",
            "description": "Wordpress cookie which should be bypassed by permacache in edge rule",
            "nullable": true
          },
          "Type": {
            "description": "The type of the pull zone. Premium = 0, Volume = 1",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneType"
              }
            ]
          },
          "OriginRetries": {
            "type": "integer",
            "description": "The number of retries to the origin server",
            "format": "int32",
            "nullable": true
          },
          "OriginConnectTimeout": {
            "type": "integer",
            "description": "The amount of seconds to wait when connecting to the origin. Otherwise the request will fail or retry.",
            "format": "int32",
            "nullable": true
          },
          "OriginResponseTimeout": {
            "type": "integer",
            "description": "The amount of seconds to wait when waiting for the origin reply. Otherwise the request will fail or retry.",
            "format": "int32",
            "nullable": true
          },
          "UseStaleWhileUpdating": {
            "type": "boolean",
            "description": "Determines if we should use stale cache while cache is updating",
            "nullable": true
          },
          "UseStaleWhileOffline": {
            "type": "boolean",
            "description": "Determines if we should use stale cache while the origin is offline",
            "nullable": true
          },
          "OriginRetry5XXResponses": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a 5XX response.",
            "nullable": true
          },
          "OriginRetryConnectionTimeout": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a connection timeout.",
            "nullable": true
          },
          "OriginRetryResponseTimeout": {
            "type": "boolean",
            "description": "Determines if we should retry the request in case of a response timeout.",
            "nullable": true
          },
          "OriginRetryDelay": {
            "type": "integer",
            "description": "Determines the amount of time that the CDN should wait before retrying an origin request.",
            "format": "int32",
            "nullable": true
          },
          "DnsOriginPort": {
            "type": "integer",
            "description": "Determines the origin port of the pull zone.",
            "format": "int32",
            "nullable": true
          },
          "DnsOriginScheme": {
            "type": "string",
            "description": "Determines the origin scheme of the pull zone.",
            "nullable": true
          },
          "QueryStringVaryParameters": {
            "type": "array",
            "description": "Contains the list of vary parameters that will be used for vary cache by query string. Only alphanumeric characters, dashes and underscores are allowed (values that contain other characters are ignorred). If empty, all parameters will be used to construct the key.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "OriginShieldEnableConcurrencyLimit": {
            "type": "boolean",
            "description": "Determines if the origin shield concurrency limit is enabled.",
            "nullable": true
          },
          "OriginShieldMaxConcurrentRequests": {
            "type": "integer",
            "description": "Determines the number of maximum concurrent requests allowed to the origin.",
            "format": "int32",
            "maximum": 10000.0,
            "minimum": 1.0,
            "nullable": true
          },
          "EnableCookieVary": {
            "type": "boolean",
            "description": "Determines if the Cookie Vary feature is enabled.",
            "nullable": true
          },
          "CookieVaryParameters": {
            "type": "array",
            "description": "Contains the list of vary parameters that will be used for vary cache by cookie string.Only alphanumeric characters, dashes and underscores are allowed (values that contain other characters are ignorred). If empty, cookie vary will not be used.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableSafeHop": {
            "type": "boolean",
            "nullable": true
          },
          "OriginShieldQueueMaxWaitTime": {
            "type": "integer",
            "description": "Determines the max queue wait time",
            "format": "int32",
            "nullable": true
          },
          "OriginShieldMaxQueuedRequests": {
            "type": "integer",
            "description": "Determines the max number of origin requests that will remain in the queue",
            "format": "int32",
            "maximum": 30000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "UseBackgroundUpdate": {
            "type": "boolean",
            "description": "Determines if cache update is performed in the background.",
            "nullable": true
          },
          "EnableAutoSSL": {
            "type": "boolean",
            "description": "If set to true, any hostnames added to this Pull Zone will automatically enable SSL.",
            "nullable": true
          },
          "LogAnonymizationType": {
            "description": "Sets the log anonymization type for this pull zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LogAnonymizationType"
              }
            ]
          },
          "StorageZoneId": {
            "type": "integer",
            "description": "The ID of the storage zone that will be used as the origin",
            "format": "int64",
            "nullable": true
          },
          "EdgeScriptId": {
            "type": "integer",
            "description": "The ID of the edge script that will be used as the origin",
            "format": "int64",
            "nullable": true
          },
          "MiddlewareScriptId": {
            "type": "integer",
            "description": "The ID of the middleware script",
            "format": "int64",
            "nullable": true
          },
          "EdgeScriptExecutionPhase": {
            "description": "The execution phase of the edge script",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ExecutionPhase"
              }
            ]
          },
          "OriginType": {
            "description": "Determine the type of the origin for this Pull Zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneOriginType"
              }
            ]
          },
          "MagicContainersAppId": {
            "type": "string",
            "nullable": true
          },
          "MagicContainersEndpointId": {
            "type": "string",
            "nullable": true
          },
          "LogFormat": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogFormat"
              }
            ]
          },
          "LogForwardingFormat": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneLogFormat"
              }
            ]
          },
          "ShieldDDosProtectionType": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/ShieldDDosProtectionType"
              }
            ]
          },
          "ShieldDDosProtectionEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "OriginHostHeader": {
            "type": "string",
            "description": "Sets the host header that will be sent to the origin",
            "nullable": true
          },
          "EnableSmartCache": {
            "type": "boolean",
            "nullable": true
          },
          "EnableRequestCoalescing": {
            "type": "boolean",
            "description": "Determines if request coalescing is currently enabled.",
            "nullable": true
          },
          "RequestCoalescingTimeout": {
            "type": "integer",
            "description": "Determines the lock time for coalesced requests.",
            "format": "int32",
            "nullable": true
          },
          "DisableLetsEncrypt": {
            "type": "boolean",
            "description": "If set to true, the built-in let's encrypt will be disabled and requests are passed to the origin.",
            "nullable": true
          },
          "EnableBunnyImageAi": {
            "type": "boolean",
            "nullable": true
          },
          "BunnyAiImageBlueprints": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BunnyAiImageBlueprintModel"
            }
          },
          "PreloadingScreenEnabled": {
            "type": "boolean",
            "description": "Determines if the preloading screen is currently enabled",
            "nullable": true
          },
          "PreloadingScreenCode": {
            "type": "string",
            "description": "The custom preloading screen coed",
            "nullable": true
          },
          "PreloadingScreenLogoUrl": {
            "type": "string",
            "description": "The preloading screen logo URL",
            "nullable": true
          },
          "PreloadingScreenShowOnFirstVisit": {
            "type": "boolean",
            "description": "Determines if the preloading screen is shown on the first load from a user."
          },
          "PreloadingScreenTheme": {
            "description": "The currently configured preloading screem theme. (0 - Light, 1 - Dark)",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PreloadingScreenTheme"
              }
            ]
          },
          "PreloadingScreenCodeEnabled": {
            "type": "boolean",
            "description": "Determines if the custom preloader screen should be enabled",
            "nullable": true
          },
          "PreloadingScreenDelay": {
            "type": "integer",
            "description": "The delay in miliseconds after which the preloading screen will be displayed (0 - 10000ms)",
            "format": "int32",
            "maximum": 10000.0,
            "minimum": 0.0,
            "nullable": true
          },
          "RoutingFilters": {
            "type": "array",
            "description": "The list of routing filters enabled for this zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "StickySessionType": {
            "description": "Whether to use a Sticky Session mechanism for this pull zone",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/StickySessionType"
              }
            ]
          },
          "StickySessionCookieName": {
            "type": "string",
            "description": "Sticky Session Cookie Name",
            "nullable": true
          },
          "StickySessionClientHeaders": {
            "type": "string",
            "description": "A set of comma-separated header names used to identify clients",
            "nullable": true
          },
          "OptimizerEnableUpscaling": {
            "type": "boolean",
            "description": "Determines if Optimizer should automatically upscale images",
            "nullable": true
          },
          "EnableWebSockets": {
            "type": "boolean",
            "description": "Determines if WebSocket connections are allowed for this Pull Zone.",
            "nullable": true
          },
          "MaxWebSocketConnections": {
            "type": "integer",
            "description": "The maximum global simultaneous WebSocket connections allowed for this Pull Zone. Allowed tiers: 500, 1,000, 2,500, 5,000, 10,000, 25,000. If you send a non-tier value, the value is rounded up to the next tier. Values over 25,000 are rejected, please contact sales if required.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the pull zone.",
            "minLength": 1
          }
        }
      },
      "AddCertificateRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname",
          "Certificate",
          "CertificateKey"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname to which the hostname will be added",
            "minLength": 1
          },
          "Certificate": {
            "type": "string",
            "description": "The Base64 encoded binary data of the certificate file",
            "minLength": 1
          },
          "CertificateKey": {
            "type": "string",
            "description": "The Base64 encoded binary data of the certificate key file",
            "minLength": 1
          }
        }
      },
      "RemoveCertificateRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname from which the certificate will be removed",
            "minLength": 1
          }
        }
      },
      "AddHostnameRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be added",
            "minLength": 1
          }
        }
      },
      "RemoveHostnameRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be removed",
            "minLength": 1
          }
        }
      },
      "ForceSSLRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname",
          "ForceSSL"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be updated",
            "minLength": 1
          },
          "ForceSSL": {
            "type": "boolean",
            "description": "Set to true to force SSL on the given pull zone hostname"
          }
        }
      },
      "AddAllowedReferrerRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be added as an allowed referer",
            "minLength": 1
          }
        }
      },
      "RemoveAllowedReferrerRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be removed as an allowed referer",
            "minLength": 1
          }
        }
      },
      "AddBlockedReferrerRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be added as a blocked referer",
            "minLength": 1
          }
        }
      },
      "AddBlockedIpRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "BlockedIp"
        ],
        "properties": {
          "BlockedIp": {
            "type": "string",
            "description": "The IP that will be blocked from accessing the pull zone",
            "minLength": 1
          }
        }
      },
      "RemoveBlockedIpRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "BlockedIp"
        ],
        "properties": {
          "BlockedIp": {
            "type": "string",
            "description": "The IP that will be removed fromt he block list",
            "minLength": 1
          }
        }
      },
      "RegionModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The unique ID of the region",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "The display name of the region",
            "nullable": true
          },
          "PricePerGigabyte": {
            "type": "number",
            "description": "The traffic pricing per gigabyte for the region",
            "format": "decimal"
          },
          "RegionCode": {
            "type": "string",
            "description": "The region short code",
            "nullable": true
          },
          "ContinentCode": {
            "type": "string",
            "description": "The continent code of the region",
            "nullable": true
          },
          "CountryCode": {
            "type": "string",
            "description": "The country code of the region",
            "nullable": true
          },
          "Latitude": {
            "type": "number",
            "description": "The latitude coordinate for this region",
            "format": "double"
          },
          "Longitude": {
            "type": "number",
            "description": "The longitude coordinate for this region",
            "format": "double"
          },
          "AllowLatencyRouting": {
            "type": "boolean",
            "description": "Determines weather this region can be selected as a DNS latency routing region"
          }
        }
      },
      "StorageZoneModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The ID of the storage zone",
            "format": "int64"
          },
          "UserId": {
            "type": "string",
            "description": "The ID of the user that owns the storage zone",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the storage zone",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "description": "The API access key or FTP password",
            "nullable": true
          },
          "DateModified": {
            "type": "string",
            "description": "The date when the zone was last modified",
            "format": "date-time"
          },
          "Deleted": {
            "type": "boolean",
            "description": "Determines if the zone was deleted or not"
          },
          "StorageUsed": {
            "type": "integer",
            "description": "The total amount of storage used by this zone",
            "format": "int64"
          },
          "FilesStored": {
            "type": "integer",
            "description": "The total number of files stored by this zone",
            "format": "int64"
          },
          "Region": {
            "type": "string",
            "description": "The main region used by the storage zone",
            "nullable": true
          },
          "ReplicationRegions": {
            "type": "array",
            "description": "The replication regions enabled for this storage zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "PullZones": {
            "type": "array",
            "description": "The list of pull zones connected to this storage zone",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/PullZoneModel"
            }
          },
          "ReadOnlyPassword": {
            "type": "string",
            "description": "The read-only API access key or FTP password",
            "nullable": true
          },
          "Rewrite404To200": {
            "type": "boolean",
            "description": "Determines if the storage zone will rewrite 404 status codes to 200 status codes"
          },
          "Custom404FilePath": {
            "type": "string",
            "description": "The custom 404 error path that will be returned in case of a missing file.",
            "nullable": true
          },
          "StorageHostname": {
            "type": "string",
            "description": "Determines the storage hostname for this zone",
            "nullable": true
          },
          "ZoneTier": {
            "description": "Determines the storage zone tier that is storing the data",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StorageZoneTier"
              }
            ]
          },
          "ReplicationChangeInProgress": {
            "type": "boolean",
            "description": "Determines if the storage zone is currently enabling a new replication region"
          },
          "PriceOverride": {
            "type": "number",
            "description": "The custom price override for this zone. Unit is $/TB/month.",
            "format": "decimal"
          },
          "Discount": {
            "type": "integer",
            "description": "The Storage Zone specific pricing discount.",
            "format": "int32"
          },
          "StorageZoneType": {
            "description": "The Storage Zone S3 support type",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StorageZoneS3Type"
              }
            ]
          }
        }
      },
      "StorageZoneTier": {
        "type": "integer",
        "description": "0 = Standard\n1 = Edge",
        "x-enumNames": [
          "Standard",
          "Edge"
        ],
        "enum": [
          0,
          1
        ]
      },
      "StorageZoneS3Type": {
        "type": "integer",
        "description": "0 = NotSupported\n1 = Supported",
        "x-enumNames": [
          "NotSupported",
          "Supported"
        ],
        "enum": [
          0,
          1
        ]
      },
      "StorageZoneModelAdd": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name",
          "Region"
        ],
        "properties": {
          "Name": {
            "type": "string",
            "description": "The name of the storage zone",
            "minLength": 1
          },
          "Region": {
            "type": "string",
            "description": "The code of the main storage zone region (Possible values: DE, NY, LA, SG)",
            "minLength": 1
          },
          "ReplicationRegions": {
            "type": "array",
            "description": "The code of the main storage zone region (Possible values: DE, NY, LA, SG, SYD)",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "ZoneTier": {
            "description": "Determines the storage zone tier that will be storing the data",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StorageZoneTier"
              }
            ]
          },
          "StorageZoneType": {
            "description": "The Storage Zone S3 support type",
            "oneOf": [
              {
                "$ref": "#/components/schemas/StorageZoneS3Type"
              }
            ]
          }
        }
      },
      "StorageZoneSettingsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ReplicationZones": {
            "type": "array",
            "description": "The list of replication zones enabld for the storage zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "OriginUrl": {
            "type": "string",
            "description": "The origin URL of the storage zone",
            "nullable": true
          },
          "Custom404FilePath": {
            "type": "string",
            "description": "The path to the custom file that will be returned in a case of 404",
            "nullable": true
          },
          "Rewrite404To200": {
            "type": "boolean",
            "description": "Rewrite 404 status code to 200 for URLs without extension",
            "nullable": true
          }
        }
      },
      "VideoLibraryModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "The name of the Video Library.",
            "nullable": true
          },
          "VideoCount": {
            "type": "integer",
            "description": "The number of videos in the video library",
            "format": "int64"
          },
          "TrafficUsage": {
            "type": "integer",
            "description": "The amount of traffic usage this month",
            "format": "int64"
          },
          "StorageUsage": {
            "type": "integer",
            "description": "The total amount of storage used by the library",
            "format": "int64"
          },
          "DateCreated": {
            "type": "string",
            "description": "The date when the video library was created",
            "format": "date-time"
          },
          "DateModified": {
            "type": "string",
            "description": "The date when the video library was last modified",
            "format": "date-time"
          },
          "ReplicationRegions": {
            "type": "array",
            "description": "The geo-replication regions of the underlying storage zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "ApiKey": {
            "type": "string",
            "description": "The API key used for authenticating with the video library",
            "nullable": true
          },
          "ReadOnlyApiKey": {
            "type": "string",
            "description": "The read-only API key used for authenticating with the video library",
            "nullable": true
          },
          "HasWatermark": {
            "type": "boolean",
            "description": "Determines if the video library has a watermark configured"
          },
          "WatermarkPositionLeft": {
            "type": "integer",
            "description": "The left offset of the watermark position (in %)",
            "format": "int32"
          },
          "WatermarkPositionTop": {
            "type": "integer",
            "description": "The top offset of the watermark position (in %)",
            "format": "int32"
          },
          "WatermarkWidth": {
            "type": "integer",
            "description": "The width of the watermark (in %)",
            "format": "int32"
          },
          "PullZoneId": {
            "type": "integer",
            "description": "The ID of the connected underlying pull zone",
            "format": "int64"
          },
          "StorageZoneId": {
            "type": "integer",
            "description": "The ID of the connected underlying storage zone",
            "format": "int64"
          },
          "WatermarkHeight": {
            "type": "integer",
            "description": "The height of the watermark (in %)",
            "format": "int32"
          },
          "EnabledResolutions": {
            "type": "string",
            "description": "The comma separated list of enabled resolutions",
            "nullable": true
          },
          "ViAiPublisherId": {
            "type": "string",
            "description": "The vi.ai publisher id for advertising configuration",
            "nullable": true
          },
          "VastTagUrl": {
            "type": "string",
            "description": "The URL of the VAST tag endpoint for advertising configuration",
            "nullable": true
          },
          "WebhookUrl": {
            "type": "string",
            "description": "The webhook URL of the video library",
            "nullable": true
          },
          "CaptionsFontSize": {
            "type": "integer",
            "description": "The captions display font size",
            "format": "int32"
          },
          "CaptionsFontColor": {
            "type": "string",
            "description": "The captions display font color",
            "nullable": true
          },
          "CaptionsBackground": {
            "type": "string",
            "description": "The captions display background color",
            "nullable": true
          },
          "UILanguage": {
            "type": "string",
            "description": "The UI language of the player",
            "nullable": true
          },
          "AllowEarlyPlay": {
            "type": "boolean",
            "description": "Determines if the Early-Play feature is enabled",
            "nullable": true
          },
          "PlayerTokenAuthenticationEnabled": {
            "type": "boolean",
            "description": "Determines if the player token authentication is enabled"
          },
          "AllowedReferrers": {
            "type": "array",
            "description": "The list of allowed referrer domains allowed to access the library",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockedReferrers": {
            "type": "array",
            "description": "The list of blocked referrer domains blocked from accessing the library",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "BlockNoneReferrer": {
            "type": "boolean",
            "description": "Determines if the requests without a referrer are blocked"
          },
          "EnableMP4Fallback": {
            "type": "boolean",
            "description": "Determines if the MP4 fallback feature is enabled"
          },
          "KeepOriginalFiles": {
            "type": "boolean",
            "description": "Determines if the original video files should be stored after encoding"
          },
          "AllowDirectPlay": {
            "type": "boolean",
            "description": "Determines direct play URLs are enabled for the library"
          },
          "EnableDRM": {
            "type": "boolean",
            "description": "Determines if the DRM is enabled"
          },
          "DrmVersion": {
            "description": "DRM version (basic or enterprise)",
            "oneOf": [
              {
                "$ref": "#/components/schemas/DrmVersion"
              }
            ]
          },
          "AppleFairPlayDrm": {
            "description": "Described Apple FairPlay DRM",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/AppleFairPlayDrm"
              }
            ]
          },
          "GoogleWidevineDrm": {
            "description": "Describes Google Widevine DRM",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GoogleWidevineDrm"
              }
            ]
          },
          "Bitrate240p": {
            "type": "integer",
            "description": "The bitrate used for encoding 240p videos",
            "format": "int32"
          },
          "Bitrate360p": {
            "type": "integer",
            "description": "The bitrate used for encoding 360p videos",
            "format": "int32"
          },
          "Bitrate480p": {
            "type": "integer",
            "description": "The bitrate used for encoding 480p videos",
            "format": "int32"
          },
          "Bitrate720p": {
            "type": "integer",
            "description": "The bitrate used for encoding 720p videos",
            "format": "int32"
          },
          "Bitrate1080p": {
            "type": "integer",
            "description": "The bitrate used for encoding 1080p videos",
            "format": "int32"
          },
          "Bitrate1440p": {
            "type": "integer",
            "description": "The bitrate used for encoding 1440p videos",
            "format": "int32"
          },
          "Bitrate2160p": {
            "type": "integer",
            "description": "The bitrate used for encoding 2160p videos",
            "format": "int32"
          },
          "ApiAccessKey": {
            "type": "string",
            "deprecated": true,
            "x-deprecatedMessage": "The API access key for the library. Should use the ApiKey as the value is the same.",
            "nullable": true
          },
          "ShowHeatmap": {
            "type": "boolean",
            "description": "Determines if the video watch heatmap should be displayed in the player."
          },
          "EnableContentTagging": {
            "type": "boolean",
            "description": "Determines if content tagging should be enabled for this library."
          },
          "PullZoneType": {
            "description": "The type of the pull zone attached. Premium = 0, Volume = 1",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PullZoneType"
              }
            ]
          },
          "CustomHTML": {
            "type": "string",
            "description": "The custom HTMl that is added into the head of the HTML player.",
            "nullable": true
          },
          "Controls": {
            "type": "string",
            "description": "The list of controls on the video player.",
            "nullable": true
          },
          "PlaybackSpeeds": {
            "type": "string",
            "description": "The list of playback speeds available in the video player.",
            "nullable": true
          },
          "PlayerKeyColor": {
            "type": "string",
            "description": "The key color of the player.",
            "nullable": true
          },
          "FontFamily": {
            "type": "string",
            "description": "The captions font family.",
            "nullable": true
          },
          "WatermarkVersion": {
            "type": "integer",
            "format": "int64"
          },
          "EnableTranscribing": {
            "type": "boolean",
            "description": "Determines if the automatic audio transcribing is currently enabled for this zone."
          },
          "EnableTranscribingTitleGeneration": {
            "type": "boolean",
            "description": "Determines if automatic transcribing title generation is currently enabled."
          },
          "EnableTranscribingDescriptionGeneration": {
            "type": "boolean",
            "description": "Determines if automatic transcribing description generation is currently enabled."
          },
          "EnableTranscribingChaptersGeneration": {
            "type": "boolean",
            "description": "Determines if automatic transcribing chapters generation is currently enabled."
          },
          "EnableTranscribingMomentsGeneration": {
            "type": "boolean",
            "description": "Determines if automatic transcribing moments generation is currently enabled."
          },
          "TranscribingCaptionLanguages": {
            "type": "array",
            "description": "The list of languages that the captions will be automatically transcribed to.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableCaptionsInPlaylist": {
            "type": "boolean",
            "description": "Determines if any associated captions will be automatically signaled in the HLS master playlist via EXT-X-MEDIA tags, allowing client players to show captions.",
            "nullable": true
          },
          "RememberPlayerPosition": {
            "type": "boolean",
            "description": "Determines if the player will automatically remember the playback position."
          },
          "EnableMultiAudioTrackSupport": {
            "type": "boolean",
            "description": "Determines if multiple output audio track support is enabled on video library."
          },
          "UseSeparateAudioStream": {
            "type": "boolean",
            "description": "Determines whether output audio stream should be split from video stream segments."
          },
          "JitEncodingEnabled": {
            "type": "boolean",
            "description": "Determines whether JIT encoding should be used for the library. Supported in premium encoding only."
          },
          "EncodingTier": {
            "description": "Defines encoding tier to be used with video library. premium is a paid tier that offers either JIT encoding or prioritized encoding and extra codec support.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/EncodingTier"
              }
            ]
          },
          "OutputCodecs": {
            "type": "string",
            "description": "Specifies which video codecs are used for encoding, provided as a comma-separated (CSV) string. Free encoding tier supports only x264. A premium encoding tier adds support for vp9, hevc, and av1.",
            "nullable": true
          },
          "DrmBasePriceOverride": {
            "type": "number",
            "description": "DRM (enterprise) monthly base price for this video library if it differs from list price.",
            "format": "decimal",
            "nullable": true
          },
          "DrmCostPerLicenseOverride": {
            "type": "number",
            "description": "DRM (enterprise) cost per license for this video library if it differs from list price.",
            "format": "decimal",
            "nullable": true
          },
          "TranscribingPriceOverride": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "PremiumEncodingPriceOverride": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "MonthlyChargesTranscribing": {
            "type": "number",
            "format": "decimal"
          },
          "MonthlyChargesPremiumEncoding": {
            "type": "number",
            "format": "decimal"
          },
          "MonthlyChargesEnterpriseDrm": {
            "type": "number",
            "format": "decimal"
          },
          "FeatureFlags": {
            "type": "string",
            "nullable": true
          },
          "PlayerVersion": {
            "type": "integer",
            "format": "int32"
          },
          "RemoveMetadataFromFallbackVideos": {
            "type": "boolean",
            "description": "Marks whether all potential video metadata should be removed from the fallback files. Default false."
          },
          "ScaleVideoUsingBothDimensions": {
            "type": "boolean",
            "description": "Marks whether videos should be scaled using both dimensions. Prevents videos being upscaled or unexpected aspect ratio changes. Default true."
          },
          "ExposeOriginals": {
            "type": "boolean",
            "description": "Marks whether original video files should be exposed via CDN."
          },
          "ExposeVideoMetadata": {
            "type": "boolean",
            "description": "Marks whether video metadata in form of schema meta tags and LD+JSON should be exposed."
          }
        }
      },
      "DrmVersion": {
        "type": "integer",
        "description": "0 = Basic\n1 = Enterprise\n2 = BasicV2",
        "x-enumNames": [
          "Basic",
          "Enterprise",
          "BasicV2"
        ],
        "enum": [
          0,
          1,
          2
        ]
      },
      "AppleFairPlayDrm": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean"
          },
          "CertificateId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "CertificateExpirationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Provider": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GoogleWidevineDrm": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean"
          },
          "CertificateId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "CertificateExpirationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Provider": {
            "type": "string",
            "nullable": true
          },
          "SdOnlyForL3": {
            "type": "boolean"
          },
          "MinClientSecurityLevel": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidevineMinClientSecurityLevel"
              }
            ]
          }
        }
      },
      "WidevineMinClientSecurityLevel": {
        "type": "integer",
        "description": "0 = None\n1 = L1\n2 = L2\n3 = L3",
        "x-enumNames": [
          "None",
          "L1",
          "L2",
          "L3"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "EncodingTier": {
        "type": "integer",
        "description": "0 = Free\n1 = Premium",
        "x-enumNames": [
          "Free",
          "Premium"
        ],
        "enum": [
          0,
          1
        ]
      },
      "VideoLibraryCreateModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Name"
        ],
        "properties": {
          "Name": {
            "type": "string",
            "description": "The name of the Video Library.",
            "minLength": 1
          },
          "ReplicationRegions": {
            "type": "array",
            "description": "The geo-replication regions of the underlying storage zone",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "PlayerVersion": {
            "type": "integer",
            "description": "(Optional) Sets player version used for this library",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "VideoLibraryUpdateModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "description": "(Optional) Sets name of the video library",
            "nullable": true
          },
          "CustomHTML": {
            "type": "string",
            "description": "(Optional) Sets the player custom HTML code",
            "nullable": true
          },
          "PlayerKeyColor": {
            "type": "string",
            "description": "(Optional) Sets the player key control color",
            "nullable": true
          },
          "EnableTokenAuthentication": {
            "type": "boolean",
            "description": "(Optional) Determines if the token authentication should be enabled",
            "nullable": true
          },
          "EnableTokenIPVerification": {
            "type": "boolean",
            "description": "(Optional) Determines if the token IP verification should be enabled",
            "nullable": true
          },
          "ResetToken": {
            "type": "boolean",
            "description": "(Optional) Set to true to reset the CDN and embed view token key",
            "nullable": true
          },
          "WatermarkPositionLeft": {
            "type": "integer",
            "description": "(Optional) Sets the left offset of the watermark position (in %)",
            "format": "int32",
            "nullable": true
          },
          "WatermarkPositionTop": {
            "type": "integer",
            "description": "(Optional) Sets the top offset of the watermark position (in %)",
            "format": "int32",
            "nullable": true
          },
          "WatermarkWidth": {
            "type": "integer",
            "description": "(Optional) Sets the width of the watermark (in %)",
            "format": "int32",
            "nullable": true
          },
          "WatermarkHeight": {
            "type": "integer",
            "description": "(Optional) Sets the height of the watermark (in %)",
            "format": "int32",
            "nullable": true
          },
          "EnabledResolutions": {
            "type": "string",
            "description": "(Optional) Sets the enabled resolutions for the transcoding. At least one resolution should be enabled. Possible values: 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p",
            "nullable": true
          },
          "ViAiPublisherId": {
            "type": "string",
            "description": "(Optional) Sets the vi.ai publisher ID",
            "nullable": true
          },
          "VastTagUrl": {
            "type": "string",
            "description": "(Optional) Sets the Vast tag URL",
            "nullable": true
          },
          "WebhookUrl": {
            "type": "string",
            "description": "(Optional) Sets the webhook API url",
            "nullable": true
          },
          "CaptionsFontSize": {
            "type": "integer",
            "description": "(Optional) Sets the captions display font size",
            "format": "int32",
            "nullable": true
          },
          "CaptionsFontColor": {
            "type": "string",
            "description": "(Optional) Sets the captions display font color",
            "nullable": true
          },
          "CaptionsBackground": {
            "type": "string",
            "description": "(Optional) Sets the captions display background color",
            "nullable": true
          },
          "UILanguage": {
            "type": "string",
            "description": "(Optional) Sets the UI language of the video player.",
            "nullable": true
          },
          "AllowEarlyPlay": {
            "type": "boolean",
            "description": "(Optional) Determines if the Early-Play feature should be enabled. Enabling this will enable Expose Originals.",
            "nullable": true
          },
          "PlayerTokenAuthenticationEnabled": {
            "type": "boolean",
            "description": "(Optional) Determines if the token authentication should be enabled.",
            "nullable": true
          },
          "BlockNoneReferrer": {
            "type": "boolean",
            "description": "(Optional) Determines if requests without a referer should be blocked.",
            "nullable": true
          },
          "EnableMP4Fallback": {
            "type": "boolean",
            "description": "(Optional) Determines if MP4 fallback should be enabled for this library.",
            "nullable": true
          },
          "KeepOriginalFiles": {
            "type": "boolean",
            "description": "(Optional) Determines if the original file should be kept after the video is processed.",
            "nullable": true
          },
          "AllowDirectPlay": {
            "type": "boolean",
            "description": "(Optional) Determines if direct play URLs should be enabled for the library",
            "nullable": true
          },
          "EnableDRM": {
            "type": "boolean",
            "description": "(Optional) Determines if MediaCage DRM should be enabled for this library",
            "nullable": true
          },
          "DrmVersion": {
            "description": "(Optional) Determines MediaCage DRM version to be used for this library",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DrmVersion"
              }
            ]
          },
          "Controls": {
            "type": "string",
            "description": "(Optional) The comma separated list of controls that will be displayed in the video player. Possible values: play-large, play, progress, current-time, mute, volume, captions, settings, pip, airplay, fullscreen.",
            "nullable": true
          },
          "PlaybackSpeeds": {
            "type": "string",
            "description": "(Optional) The comma separated list of playback speeds that will be available in the video player. Possible values: 0.25,0.5,0.75,1.0,1.25,1.5,1.75,2.0,2.5,3,3.5,4",
            "nullable": true
          },
          "Bitrate240p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 240p videos",
            "format": "int32",
            "nullable": true
          },
          "Bitrate360p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 360p videos",
            "format": "int32",
            "nullable": true
          },
          "Bitrate480p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 480p videos",
            "format": "int32",
            "nullable": true
          },
          "Bitrate720p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 720p videos",
            "format": "int32",
            "nullable": true
          },
          "Bitrate1080p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 1080p videos",
            "format": "int32",
            "nullable": true
          },
          "Bitrate1440p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 1440p videos",
            "format": "int32",
            "nullable": true
          },
          "Bitrate2160p": {
            "type": "integer",
            "description": "(Optional) The bitrate used for encoding 2160p videos",
            "format": "int32",
            "nullable": true
          },
          "ShowHeatmap": {
            "type": "boolean",
            "description": "(Optional) Determines if the video watch heatmap should be displayed in the player.",
            "nullable": true
          },
          "EnableContentTagging": {
            "type": "boolean",
            "description": "(Optional) Determines if content tagging should be enabled for this library.",
            "nullable": true
          },
          "FontFamily": {
            "type": "string",
            "description": "(Optional) The captions font family.",
            "nullable": true
          },
          "EnableTranscribing": {
            "type": "boolean",
            "description": "(Optional) Determines if the automatic audio transcribing is currently enabled for this zone.",
            "nullable": true
          },
          "EnableTranscribingTitleGeneration": {
            "type": "boolean",
            "description": "(Optional) Determines if automatic transcribing title generation is currently enabled.",
            "nullable": true
          },
          "EnableTranscribingDescriptionGeneration": {
            "type": "boolean",
            "description": "(Optional) Determines if automatic transcribing description generation is currently enabled.",
            "nullable": true
          },
          "EnableTranscribingChaptersGeneration": {
            "type": "boolean",
            "description": "(Optional) Determines if automatic transcribing chapters generation is currently enabled.",
            "nullable": true
          },
          "EnableTranscribingMomentsGeneration": {
            "type": "boolean",
            "description": "(Optional) Determines if automatic transcribing moments generation is currently enabled.",
            "nullable": true
          },
          "TranscribingCaptionLanguages": {
            "type": "array",
            "description": "(Optional) The list of languages that the captions will be automatically transcribed to.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "EnableCaptionsInPlaylist": {
            "type": "boolean",
            "description": "(Optional) Determines if any associated captions will be automatically signaled in the HLS master playlist via EXT-X-MEDIA tags, allowing client players to show captions.",
            "nullable": true
          },
          "RememberPlayerPosition": {
            "type": "boolean",
            "description": "(Optional) Determines if the player will automatically remember the playback position.",
            "nullable": true
          },
          "EnableMultiAudioTrackSupport": {
            "type": "boolean",
            "description": "(Optional) Determines if multiple output audio track support is enabled on video library.",
            "nullable": true
          },
          "UseSeparateAudioStream": {
            "type": "boolean",
            "description": "(Optional) Determines whether output audio stream should be split from video stream segments.",
            "nullable": true
          },
          "JitEncodingEnabled": {
            "type": "boolean",
            "description": "(Optional) Determines whether JIT encoding should be used for the library. Supported in premium encoding only.",
            "nullable": true
          },
          "EncodingTier": {
            "description": "(Optional) Defines encoding tier to be used with video library. premium is a paid tier that offers either JIT encoding or prioritized encoding and extra codec support.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/EncodingTier"
              }
            ]
          },
          "OutputCodecs": {
            "type": "string",
            "description": "(Optional) Specifies which video codecs are used for encoding, provided as a comma-separated (CSV) string. Free encoding tier supports only x264. A premium encoding tier adds support for vp9, hevc, and av1.",
            "nullable": true
          },
          "AppleFairPlayDrm": {
            "description": "(Optional) Configure Apple FairPlay DRM. Works only if Enterprise DRM is set up.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/AppleFairPlayDrmUpdateModel"
              }
            ]
          },
          "GoogleWidevineDrm": {
            "description": "(Optional) Configure Google Widevine DRM. Works only if Enterprise DRM is set up.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/GoogleWidevineDrmUpdateModel"
              }
            ]
          },
          "PlayerVersion": {
            "type": "integer",
            "description": "(Optional) Sets player version used for this library",
            "format": "int32",
            "nullable": true
          },
          "RemoveMetadataFromFallbackVideos": {
            "type": "boolean",
            "description": "(Optional) Marks whether all potential video metadata should be removed from the fallback files",
            "nullable": true
          },
          "ScaleVideoUsingBothDimensions": {
            "type": "boolean",
            "description": "(Optional) Marks whether videos should be scaled using both dimensions. Prevents videos being upscaled or unexpected aspect ratio changes.",
            "nullable": true
          },
          "ExposeOriginals": {
            "type": "boolean",
            "description": "(Optional) Marks whether original video files should be exposed via CDN. Originals are not protected by DRM. Enabling Early-Play will enable this.",
            "nullable": true
          },
          "ExposeVideoMetadata": {
            "type": "boolean",
            "description": "(Optional) Marks whether video metadata in form of schema meta tags and LD+JSON should be exposed.",
            "nullable": true
          }
        }
      },
      "AppleFairPlayDrmUpdateModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean",
            "description": "(Optional) Enables or disables Apple FairPlay Enterprise DRM",
            "nullable": true
          }
        }
      },
      "GoogleWidevineDrmUpdateModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean",
            "description": "(Optional) Enables or disables Google Widevine Enterprise DRM",
            "nullable": true
          },
          "SdOnlyForL3": {
            "type": "boolean",
            "description": "(Optional) Only allow audio and SD access to Widevine L3 clients",
            "nullable": true
          },
          "MinClientSecurityLevel": {
            "description": "(Optional) Minimum Client Security Level (1 being most secure, 3 least secure and is default)",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/WidevineMinClientSecurityLevel"
              }
            ]
          }
        }
      },
      "RemoveBlockedReferrerRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Hostname"
        ],
        "properties": {
          "Hostname": {
            "type": "string",
            "description": "The hostname that will be removed as a blocked referer",
            "minLength": 1
          }
        }
      },
      "VideoLibraryLanguage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ShortCode": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          },
          "SupportPlayerTranslation": {
            "type": "boolean"
          },
          "SupportTranscribing": {
            "type": "boolean"
          },
          "TranscribingAccuracy": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaginationListModelOfVideoLibraryModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/VideoLibraryModel"
            }
          },
          "CurrentPage": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "HasMoreItems": {
            "type": "boolean"
          }
        }
      },
      "VideoLibraryTranscriptionStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalTranscriptionSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "TranscriptionSecondsChart": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "VideoLibraryDrmStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalLicensesIssued": {
            "type": "integer",
            "format": "int64"
          },
          "LicensesIssuedChart": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "CloseAccountResponseModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CloseAccountRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Password": {
            "type": "string",
            "nullable": true
          },
          "Reason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetUserAuditLogResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Logs": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/UserAuditLog"
            }
          },
          "HasMoreData": {
            "type": "boolean"
          },
          "ContinuationToken": {
            "type": "string",
            "nullable": true
          },
          "StartToken": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserAuditLog": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "Product": {
            "type": "string",
            "nullable": true
          },
          "ResourceType": {
            "type": "string",
            "nullable": true
          },
          "ResourceId": {
            "type": "string",
            "nullable": true
          },
          "ResourceOwner": {
            "type": "string",
            "nullable": true
          },
          "Action": {
            "type": "string",
            "nullable": true
          },
          "ActorId": {
            "type": "string",
            "nullable": true
          },
          "ActorType": {
            "type": "string",
            "nullable": true
          },
          "Diff": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LogOrdering": {
        "type": "string",
        "description": "",
        "x-enumNames": [
          "Ascending",
          "Descending"
        ],
        "enum": [
          "Ascending",
          "Descending"
        ]
      },
      "StorageZoneStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "StorageUsedChart": {
            "type": "object",
            "description": "The constructed chart of the storage used by day",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "FileCountChart": {
            "type": "object",
            "description": "The constructed chart of requests stored",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "StatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalBandwidthUsed": {
            "type": "integer",
            "description": "The total bandwidth used by the response in the given time range",
            "format": "int64"
          },
          "TotalOriginTraffic": {
            "type": "integer",
            "description": "The total amount of traffic received from the origin",
            "format": "int64"
          },
          "AverageOriginResponseTime": {
            "type": "integer",
            "description": "The median response time origin",
            "format": "int32"
          },
          "OriginResponseTimeChart": {
            "type": "object",
            "description": "The constructed origin response time chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "TotalRequestsServed": {
            "type": "integer",
            "description": "The total requests served by the response in the given time range",
            "format": "int64"
          },
          "CacheHitRate": {
            "type": "number",
            "description": "The average cache hit rate in the response in the given time range",
            "format": "double"
          },
          "BandwidthUsedChart": {
            "type": "object",
            "description": "The constructed bandwdidth used chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "BandwidthCachedChart": {
            "type": "object",
            "description": "The constructed cached bandwdidth used chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "CacheHitRateChart": {
            "type": "object",
            "description": "The constructed cache hit rate chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "RequestsServedChart": {
            "type": "object",
            "description": "The constructed requests served chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "PullRequestsPulledChart": {
            "type": "object",
            "description": "The constructed uncached requests served chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "OriginShieldBandwidthUsedChart": {
            "type": "object",
            "description": "The constructed origin shield bandwdidth used chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "OriginShieldInternalBandwidthUsedChart": {
            "type": "object",
            "description": "The constructed origin shield internal bandwdidth used chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "OriginTrafficChart": {
            "type": "object",
            "description": "The constructed origin traffic used chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "UserBalanceHistoryChart": {
            "type": "object",
            "description": "The constructed user balance history chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "GeoTrafficDistribution": {
            "type": "object",
            "description": "The geo traffic distribution data",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "Error3xxChart": {
            "type": "object",
            "description": "The constructed 3XX error responses chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "Error4xxChart": {
            "type": "object",
            "description": "The constructed 4XX error responses chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "Error5xxChart": {
            "type": "object",
            "description": "The constructed 5XX error responses chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "SearchResultsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Query": {
            "type": "string",
            "description": "The input query for the search request",
            "nullable": true
          },
          "Total": {
            "type": "integer",
            "description": "The total number of search results found matching the query",
            "format": "int32"
          },
          "From": {
            "type": "integer",
            "description": "The number of results skipped in the search query",
            "format": "int32"
          },
          "Size": {
            "type": "integer",
            "description": "The size of the result set",
            "format": "int32"
          },
          "SearchResults": {
            "type": "array",
            "description": "The list of search results found for the query",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/SearchResultItemModel"
            }
          }
        }
      },
      "SearchResultItemModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Type": {
            "type": "string",
            "description": "The type of the search result item. Possible values: cdn, storage, dns, script, stream",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "description": "The ID of the search result item linked object",
            "format": "int64"
          },
          "Name": {
            "type": "string",
            "description": "The name of the object found",
            "nullable": true
          }
        }
      },
      "ResetPullZoneSecurityKeyModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "SecurityKey": {
            "type": "string",
            "maxLength": 36,
            "minLength": 8,
            "nullable": true
          }
        }
      },
      "DnsZoneRecordScanJobResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "JobId": {
            "type": "string",
            "format": "guid"
          },
          "ZoneId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "Domain": {
            "type": "string",
            "nullable": true
          },
          "AccountId": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/DnsZoneScanJobStatus"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "CompletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Records": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/DnsZoneDiscoveredRecordModel"
            }
          },
          "Error": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "DnsZoneScanJobStatus": {
        "type": "integer",
        "description": "0 = Pending\n1 = InProgress\n2 = Completed\n3 = Failed",
        "x-enumNames": [
          "Pending",
          "InProgress",
          "Completed",
          "Failed"
        ],
        "enum": [
          0,
          1,
          2,
          3
        ]
      },
      "DnsZoneDiscoveredRecordModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Name": {
            "type": "string",
            "description": "Record name relative to the zone. '@' represents apex.",
            "nullable": true
          },
          "Type": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/DnsZoneDiscoveredRecordType"
              }
            ]
          },
          "Ttl": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "Priority": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Weight": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Port": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsProxied": {
            "type": "boolean"
          }
        }
      },
      "DnsZoneDiscoveredRecordType": {
        "type": "integer",
        "description": "0 = A\n1 = AAAA\n2 = CNAME\n3 = TXT\n4 = MX\n8 = SRV\n9 = CAA\n10 = PTR\n12 = NS\n13 = Svcb\n14 = HTTPS\n15 = TLSA\n16 = SOA",
        "x-enumNames": [
          "A",
          "AAAA",
          "CNAME",
          "TXT",
          "MX",
          "SRV",
          "CAA",
          "PTR",
          "NS",
          "Svcb",
          "HTTPS",
          "TLSA",
          "SOA"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          8,
          9,
          10,
          12,
          13,
          14,
          15,
          16
        ]
      },
      "DnsZoneStatisticsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "TotalQueriesServed": {
            "type": "integer",
            "format": "int64"
          },
          "QueriesServedChart": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "NormalQueriesServedChart": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "SmartQueriesServedChart": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "QueriesByTypeChart": {
            "type": "object",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "DnsSecDsRecordModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Enabled": {
            "type": "boolean"
          },
          "DsRecord": {
            "type": "string",
            "nullable": true
          },
          "Digest": {
            "type": "string",
            "nullable": true
          },
          "DigestType": {
            "type": "string",
            "nullable": true
          },
          "Algorithm": {
            "type": "integer",
            "format": "int32"
          },
          "PublicKey": {
            "type": "string",
            "nullable": true
          },
          "KeyTag": {
            "type": "integer",
            "format": "int32"
          },
          "Flags": {
            "type": "integer",
            "format": "int32"
          },
          "DsConfigured": {
            "type": "boolean"
          }
        }
      },
      "DnsZoneRecordScanTriggerResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "JobId": {
            "type": "string",
            "format": "guid"
          },
          "Status": {
            "$ref": "#/components/schemas/DnsZoneScanJobStatus"
          }
        }
      },
      "TriggerDnsZoneRecordScanRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ZoneId": {
            "type": "integer",
            "description": "The ID of the DNS Zone to scan. Either ZoneId or Domain must be provided, but not both.",
            "format": "int64",
            "nullable": true
          },
          "Domain": {
            "type": "string",
            "description": "The domain name to scan. Either ZoneId or Domain must be provided, but not both. Can be used even before creating the DNS zone.",
            "nullable": true
          }
        }
      },
      "BillingModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Balance": {
            "type": "number",
            "description": "The current account balance",
            "format": "double"
          },
          "ThisMonthCharges": {
            "type": "number",
            "description": "The current account charges of the running month",
            "format": "double"
          },
          "LastRechargeBalance": {
            "type": "number",
            "description": "Last recharge amount balance",
            "format": "double"
          },
          "BillingRecords": {
            "type": "array",
            "description": "The list of billing records for this account",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BillingRecordModel"
            }
          },
          "BillingHistoryChart": {
            "type": "object",
            "description": "The constructed billing history chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "MonthlyChargesEUTraffic": {
            "type": "number",
            "description": "The total charges this month paid for European traffic",
            "format": "double"
          },
          "MonthlyChargesUSTraffic": {
            "type": "number",
            "description": "The total charges this month paid for North American traffic",
            "format": "double"
          },
          "MonthlyChargesASIATraffic": {
            "type": "number",
            "description": "The total charges this month paid for Asian and Oceanian traffic",
            "format": "double"
          },
          "MonthlyChargesAFTraffic": {
            "type": "number",
            "description": "The total charges this month paid for African traffic",
            "format": "double"
          },
          "MonthlyChargesSATraffic": {
            "type": "number",
            "description": "The total charges this month paid for South American traffic",
            "format": "double"
          },
          "MonthlyChargesStorage": {
            "type": "number",
            "description": "The total charges this month paid for Edge Storage",
            "format": "double"
          },
          "MonthlyChargesDNS": {
            "type": "number",
            "description": "The total monthly charges for Bunny DNS",
            "format": "double"
          },
          "MonthlyChargesOptimizer": {
            "type": "number",
            "description": "The monthly charges caused by optimizer.",
            "format": "double"
          },
          "MonthlyChargesTranscribe": {
            "type": "number",
            "description": "The total monthly charges for Bunny Stream Transcribe",
            "format": "double"
          },
          "MonthlyChargesPremiumEncoding": {
            "type": "number",
            "description": "The total monthly charges for Bunny Stream Premium Encoding",
            "format": "decimal"
          },
          "MonthlyChargesExtraPullZones": {
            "type": "number",
            "description": "The monthly charges caused by extra pull zones.",
            "format": "double"
          },
          "MonthlyChargesExtraStorageZones": {
            "type": "number",
            "description": "The monthly charges caused by extra storage zones.",
            "format": "double"
          },
          "MonthlyChargesExtraDnsZones": {
            "type": "number",
            "description": "The monthly charges caused by extra DNS zones.",
            "format": "double"
          },
          "MonthlyChargesExtraVideoLibraries": {
            "type": "number",
            "description": "The monthly charges caused by extra video libraries.",
            "format": "double"
          },
          "MonthlyChargesScripting": {
            "type": "number",
            "description": "The total monthly charges for Bunny Edge Scripting",
            "format": "double"
          },
          "MonthlyChargesScriptingRequests": {
            "type": "number",
            "description": "The total monthly charges for Bunny Edge Scripting Requests",
            "format": "double"
          },
          "MonthlyChargesScriptingCpu": {
            "type": "number",
            "description": "The total monthly charges for Bunny Edge Scripting CPU usage",
            "format": "double"
          },
          "MonthlyChargesDrm": {
            "type": "number",
            "description": "The total monthly charges for DRM",
            "format": "double"
          },
          "MonthlyChargesMagicContainers": {
            "type": "number",
            "description": "The total monthly charges for Magic Containers",
            "format": "decimal"
          },
          "MonthlyChargesShield": {
            "type": "number",
            "description": "The total monthly charges for Shield",
            "format": "decimal"
          },
          "MonthlyChargesTaxes": {
            "type": "number",
            "description": "The total monthly charges for Taxes",
            "format": "decimal"
          },
          "MonthlyChargesWebSockets": {
            "type": "number",
            "description": "The total monthly charges for WebSockets",
            "format": "decimal"
          },
          "MonthlyChargesDB": {
            "type": "number",
            "description": "The total monthly charges for DB",
            "format": "decimal"
          },
          "MonthlyDBWrites": {
            "description": "The monthly charges and usage for BunnyDB row writes",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BunnyDBUsageBreakdown"
              }
            ]
          },
          "MonthlyDBReads": {
            "description": "The monthly charges and usage for BunnyDB row reads",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BunnyDBUsageBreakdown"
              }
            ]
          },
          "MonthlyDBStorage": {
            "description": "The monthly charges and usage for BunnyDB storage",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BunnyDBUsageBreakdown"
              }
            ]
          },
          "MonthlyDBReplica": {
            "description": "The monthly charges and usage for BunnyDB replica storage",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/BunnyDBUsageBreakdown"
              }
            ]
          },
          "MonthlyBandwidthUsed": {
            "type": "integer",
            "description": "Total bandwidth used by the account during this month.",
            "format": "int64"
          },
          "MonthlyDnsSmartQueriesServed": {
            "type": "integer",
            "description": "Total number of Bunny DNS smart queries served this month.",
            "format": "int64"
          },
          "MonthlyDnsNormalQueriesServed": {
            "type": "integer",
            "description": "Total number of Bunny DNS normal queries served this month.",
            "format": "int64"
          },
          "MonthlyTranscriptionMinutes": {
            "type": "integer",
            "description": "Total minutes used for Bunny Stream Transcribe this month.",
            "format": "int64"
          },
          "MonthlyPremiumEncodingBillableMinutes": {
            "type": "integer",
            "description": "Total billable minutes used for Bunny Stream Premium Encoding this month.",
            "format": "int64"
          },
          "MonthlyDRMLicensesIssued": {
            "type": "integer",
            "description": "DRM (enterprise) licenses issued this month.",
            "format": "int64"
          },
          "MonthlyScriptingRequests": {
            "type": "integer",
            "description": "Total number of edge script requests this month.",
            "format": "int64"
          },
          "MonthlyScriptingCpuTime": {
            "type": "integer",
            "description": "Total edge script CPU time (milliseconds) used this month.",
            "format": "int64"
          },
          "BillingEnabled": {
            "type": "boolean",
            "description": "Determines if billing is currently enabled for this user."
          },
          "MinimumMonthlyCommit": {
            "type": "number",
            "description": "Determines the minimum monthly commit of the user.",
            "format": "double"
          },
          "VATRate": {
            "type": "number",
            "description": "The VAT rate for the user's account.",
            "format": "decimal"
          },
          "NextMonthVATRate": {
            "type": "number",
            "description": "Next month VAT rate for the user's account.",
            "format": "decimal"
          },
          "AutomaticPaymentImageUrl": {
            "type": "string",
            "description": "If an automatic payment method is configured, this will contain the image url of the payment method",
            "nullable": true
          },
          "AutomaticPaymentCardType": {
            "type": "string",
            "description": "If an automatic payment method is configured with a credit card, this will contain the name of the payment credit card",
            "nullable": true
          },
          "AutomaticPaymentIdentifier": {
            "type": "string",
            "description": "If an automatic payment method is configured, this will contain the identifier of the payment method",
            "nullable": true
          },
          "AutomaticPaymentAmount": {
            "type": "number",
            "description": "If an automatic payments are configured, this contains the payment amount that will be made during an automatic recharge",
            "format": "decimal"
          },
          "AutomaticRechargeTreshold": {
            "type": "number",
            "description": "If an automatic payments are configured, this contains the account balance amount that will trigger an automatic recharge",
            "format": "decimal"
          },
          "AutomaticRechargeEnabled": {
            "type": "boolean",
            "description": "Determines if automatic recharge is currently enabled."
          },
          "AutomaticPaymentFailureCount": {
            "type": "integer",
            "description": "Determines the number of failed automatic recharges that the system made since the last successful payment.",
            "format": "int32"
          },
          "SavedPaymentMethods": {
            "type": "array",
            "description": "Contains the list of saved payment methods on the user's account",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/BillingSavedPaymentMethod"
            }
          },
          "EUUSDiscount": {
            "type": "integer",
            "description": "The account wide pricing discount for EU and US region.",
            "format": "int32"
          },
          "SouthAmericaDiscount": {
            "type": "integer",
            "description": "The account wide pricing discount for South America region.",
            "format": "int32"
          },
          "AfricaDiscount": {
            "type": "integer",
            "description": "The account wide pricing discount for Africa region.",
            "format": "int32"
          },
          "AsiaOceaniaDiscount": {
            "type": "integer",
            "description": "The account wide pricing discount for Asia & Oceania region.",
            "format": "int32"
          },
          "OptimizerMonthlyPrice": {
            "type": "number",
            "description": "Optimizer monthly price per pull zone for this account (unless overridden on pull zone level).",
            "format": "decimal"
          },
          "DrmBaseMonthlyPrice": {
            "type": "number",
            "description": "DRM (Enterprise) base monthly price per video library.",
            "format": "decimal"
          },
          "DrmCostPerLicense": {
            "type": "number",
            "description": "DRM (Enterprise) cost per license or default pricing tier applied if null.",
            "format": "decimal",
            "nullable": true
          }
        }
      },
      "BillingRecordModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The ID of the billing record",
            "format": "int64"
          },
          "PaymentId": {
            "type": "string",
            "description": "The external ID of the payment",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "description": "The amount linked to the record model",
            "format": "double"
          },
          "Payer": {
            "type": "string",
            "description": "The payer reference that sent the payment",
            "nullable": true
          },
          "Timestamp": {
            "type": "string",
            "description": "The date and time when the billing record was created",
            "format": "date-time"
          },
          "Type": {
            "description": "The type of the billing record. PayPal = 0, Crypto = 1, CreditCard = 2, MonthlyUsage = 3, Refund = 4, CouponCode = 5, BankTransfer = 6, AffiliateCredits = 7",
            "oneOf": [
              {
                "$ref": "#/components/schemas/BillingRecordType"
              }
            ]
          },
          "InvoiceAvailable": {
            "type": "boolean",
            "description": "Determines if an invoice is available"
          },
          "DocumentDownloadUrl": {
            "type": "string",
            "description": "The URL where the invoice or document can be downloaded. Null if this is not available.",
            "nullable": true
          },
          "DetailedDocumentDownloadUrl": {
            "type": "string",
            "description": "The URL where the document with product usage breakdown can be downloaded. Null if this is not available.",
            "nullable": true
          }
        }
      },
      "BillingRecordType": {
        "type": "integer",
        "description": "0 = PayPal\n1 = Crypto\n2 = CreditCard\n3 = MonthlyUsage\n4 = Refund\n5 = CouponCode\n6 = BankTransfer\n7 = AffiliateCredits",
        "x-enumNames": [
          "PayPal",
          "Crypto",
          "CreditCard",
          "MonthlyUsage",
          "Refund",
          "CouponCode",
          "BankTransfer",
          "AffiliateCredits"
        ],
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ]
      },
      "BunnyDBUsageBreakdown": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Usage": {
            "type": "number",
            "description": "The usage cost in USD",
            "format": "decimal"
          },
          "TotalUnits": {
            "type": "integer",
            "description": "The total usage units (rows for reads/writes, GB for storage)",
            "format": "int64"
          }
        }
      },
      "BillingSavedPaymentMethod": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Token": {
            "type": "string",
            "nullable": true
          },
          "ImageUrl": {
            "type": "string",
            "nullable": true
          },
          "ExpirationDate": {
            "type": "string",
            "nullable": true
          },
          "LastFour": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PaymentRequestModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Amount": {
            "type": "number",
            "format": "decimal"
          },
          "DateGenerated": {
            "type": "string",
            "format": "date-time"
          },
          "DateDue": {
            "type": "string",
            "format": "date-time"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Paid": {
            "type": "boolean"
          },
          "DatePaid": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "BillingInvoiceId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "BillingInvoiceDownloadLink": {
            "type": "string",
            "nullable": true
          },
          "BankTransferReference": {
            "type": "string",
            "nullable": true
          },
          "TaxRate": {
            "type": "number",
            "format": "decimal"
          },
          "TaxedAmount": {
            "type": "number",
            "format": "decimal"
          }
        }
      },
      "PaginationListModelOfApiKeyModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Items": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ApiKeyModel"
            }
          },
          "CurrentPage": {
            "type": "integer",
            "format": "int32"
          },
          "TotalItems": {
            "type": "integer",
            "format": "int32"
          },
          "HasMoreItems": {
            "type": "boolean"
          }
        }
      },
      "ApiKeyModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Key": {
            "type": "string",
            "nullable": true
          },
          "Roles": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BillingAffiliateDetailsModel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "AffiliateBalance": {
            "type": "number",
            "description": "The amount of affiliate credits on the account",
            "format": "decimal"
          },
          "AffiliateUrl": {
            "type": "string",
            "description": "The affiliate URL for the currently authenticated user",
            "nullable": true
          },
          "ClaimBonusPercentage": {
            "type": "number",
            "description": "The bonus percentage given when claiming affiliate balance as bunny credits",
            "format": "decimal"
          },
          "MinimumPayoutAmount": {
            "type": "number",
            "description": "The minimum amount required to request affiliate credits external payout",
            "format": "decimal"
          },
          "AffiliateClicksChart": {
            "type": "object",
            "description": "The constructed affiliate click history chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "AffiliateSignupsChart": {
            "type": "object",
            "description": "The constructed affiliate signup history chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "AffiliateConversionsChart": {
            "type": "object",
            "description": "The constructed affiliate conversion history chart data",
            "nullable": true,
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "AccessKey": {
        "type": "apiKey",
        "description": "API Access Key authorization header",
        "name": "AccessKey",
        "in": "header"
      },
      "bearer": {
        "type": "apiKey",
        "description": "Bearer token authorization header",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Stream Video Library"
    },
    {
      "name": "User"
    },
    {
      "name": "AuditLog"
    },
    {
      "name": "Storage Zone"
    },
    {
      "name": "Statistics"
    },
    {
      "name": "Search"
    },
    {
      "name": "Pull Zone"
    },
    {
      "name": "DNS Zone"
    },
    {
      "name": "DNSSEC"
    },
    {
      "name": "Billing"
    },
    {
      "name": "API Keys"
    },
    {
      "name": "Affiliate"
    },
    {
      "name": "Countries"
    },
    {
      "name": "Purge"
    },
    {
      "name": "Region"
    }
  ]
}