action hetzner_post_firewalls_id_actions_set_rules { label: "Set Rules" description: "Sets the rules of a Firewall.\n\nAll existing rules will be overwritten. Pass an empty `rules` array to remove all rules.\nThe maximum amount of rules that can be defined is 50.\n\n#### Call specific error codes\n\n| Code | Description |\n|-------------------------------|---------------------------------------------------------------|\n| `firewall_resource_not_found` | The resource the Firewall should be attached to was not found |\n" provider: hetzner method: POST path: "/firewalls/{id}/actions/set_rules" encoding: json input: { type: "object" properties: { id: { type: "integer" } rules: { type: "array" description: "Array of rules" items: { type: "object" required: ["direction", "protocol"] properties: { description: { type: "string" description: "Description of the Rule" } destination_ips: { type: "array" description: "List of permitted IPv4/IPv6 addresses in CIDR notation. Use `0.0.0.0/0` to allow all IPv4 addresses and `::/0` to allow all IPv6 addresses. You can specify 100 CIDRs at most." items: { type: "string" } } direction: { type: "string" description: "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`." enum: ["in", "out"] } port: { type: "string" description: "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`." } protocol: { type: "string" description: "Type of traffic to allow" enum: ["tcp", "udp", "icmp", "esp", "gre"] } source_ips: { type: "array" description: "List of permitted IPv4/IPv6 addresses in CIDR notation. Use `0.0.0.0/0` to allow all IPv4 addresses and `::/0` to allow all IPv6 addresses. You can specify 100 CIDRs at most." items: { type: "string" } } } } } } required: ["id", "rules"] additionalProperties: false } output: { type: "object" required: ["actions"] properties: { actions: { type: "array" items: { type: "object" required: ["id", "command", "status", "progress", "started", "finished", "resources", "error"] properties: { command: { type: "string" description: "Command executed in the Action" } error: { type: "object" description: "Error message for the Action if error occurred, otherwise null" required: ["code", "message"] properties: { code: { type: "string" description: "Fixed machine readable code" } message: { type: "string" description: "Humanized error message" } } } finished: { type: "string" description: "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null." } id: { type: "integer" description: "ID of the Resource" } progress: { type: "number" description: "Progress of Action in percent" } resources: { type: "array" description: "Resources the Action relates to" items: { type: "object" required: ["id", "type"] properties: { id: { type: "integer" description: "ID of the Resource" } type: { type: "string" description: "Type of resource referenced" } } } } started: { type: "string" description: "Point in time when the Action was started (in ISO-8601 format)" } status: { type: "string" description: "Status of the Action" enum: ["success", "running", "error"] } } } } meta: { type: "object" required: ["pagination"] properties: { pagination: { type: "object" required: ["last_page", "next_page", "page", "per_page", "previous_page", "total_entries"] properties: { last_page: { type: "number" description: "ID of the last page available. Can be null if the current page is the last one." } next_page: { type: "number" description: "ID of the next page. Can be null if the current page is the last one." } page: { type: "number" description: "Current page number" } per_page: { type: "number" description: "Maximum number of items shown per page in the response" } previous_page: { type: "number" description: "ID of the previous page. Can be null if the current page is the first one." } total_entries: { type: "number" description: "The total number of entries that exist in the database for this query. Nullable if unknown." } } } } } } } }