action hetzner_get_firewalls_id { label: "Get a Firewall" description: "Gets a specific Firewall object." provider: hetzner method: GET path: "/firewalls/{id}" encoding: json input: { type: "object" properties: { id: { type: "integer" } } required: ["id"] additionalProperties: false } output: { type: "object" required: ["firewall"] properties: { firewall: { type: "object" required: ["applied_to", "created", "id", "name", "rules"] properties: { applied_to: { type: "array" items: { type: "object" required: ["type"] properties: { applied_to_resources: { type: "array" items: { type: "object" properties: { server: { type: "object" required: ["id"] properties: { id: { type: "integer" description: "ID of the Resource" } } } type: { type: "string" description: "Type of resource referenced" enum: ["server"] } } } } label_selector: { type: "object" required: ["selector"] properties: { selector: { type: "string" description: "Label selector" } } } server: { type: "object" required: ["id"] properties: { id: { type: "integer" description: "ID of the Resource" } } } type: { type: "string" description: "Type of resource referenced" enum: ["server", "label_selector"] } } } } created: { type: "string" description: "Point in time when the Resource was created (in ISO-8601 format)" } id: { type: "integer" description: "ID of the Resource" } labels: { type: "object" description: "User-defined labels (key-value pairs)" } name: { type: "string" description: "Name of the Resource. Must be unique per Project." } rules: { type: "array" 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" } } } } } } } } } }