action hetzner_get_networks { label: "Get all Networks" description: "Gets all existing networks that you have available." provider: hetzner method: GET path: "/networks" encoding: json input: { type: "object" properties: { label_selector: { type: "string" } name: { type: "string" } } additionalProperties: false } output: { type: "object" required: ["networks"] properties: { 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." } } } } } networks: { type: "array" items: { type: "object" required: ["id", "name", "ip_range", "subnets", "routes", "servers", "protection", "labels", "created"] properties: { created: { type: "string" description: "Point in time when the Network was created (in ISO-8601 format)" } id: { type: "integer" description: "ID of the Network" } ip_range: { type: "string" description: "IPv4 prefix of the whole Network" } labels: { type: "object" description: "User-defined labels (key-value pairs)" } load_balancers: { type: "array" description: "Array of IDs of Load Balancers attached to this Network" items: { type: "integer" } } name: { type: "string" description: "Name of the Network" } protection: { type: "object" description: "Protection configuration for the Network" required: ["delete"] properties: { delete: { type: "boolean" description: "If true, prevents the Network from being deleted" } } } routes: { type: "array" description: "Array of routes set in this Network" items: { type: "object" required: ["destination", "gateway"] properties: { destination: { type: "string" description: "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918." } gateway: { type: "string" description: "Gateway for the route. Cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1 as this IP is being used as a gateway for the public network interface of Servers." } } } } servers: { type: "array" description: "Array of IDs of Servers attached to this Network" items: { type: "integer" } } subnets: { type: "array" description: "Array subnets allocated in this Network" items: { type: "object" required: ["type", "network_zone", "gateway"] properties: { gateway: { type: "string" description: "Gateway for Servers attached to this subnet. For subnets of type Server this is always the first IP of the network IP range." } ip_range: { type: "string" description: "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask." } network_zone: { type: "string" description: "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to." } type: { type: "string" description: "Type of Subnetwork" enum: ["cloud", "server", "vswitch"] } } } } } } } } } }