action hetzner_post_floating_ips { label: "Create a Floating IP" description: "Creates a new Floating IP assigned to a Server. If you want to create a Floating IP that is not bound to a Server, you need to provide the `home_location` key instead of `server`. This can be either the ID or the name of the Location this IP shall be created in. Note that a Floating IP can be assigned to a Server in any Location later on. For optimal routing it is advised to use the Floating IP in the same Location it was created in." provider: hetzner method: POST path: "/floating_ips" encoding: json input: { type: "object" required: ["type"] properties: { description: { type: "string" } home_location: { type: "string" description: "Home Location (routing is optimized for that Location). Only optional if Server argument is passed." } labels: { type: "object" description: "User-defined labels (key-value pairs)" } name: { type: "string" } server: { type: "integer" description: "Server to assign the Floating IP to" } type: { type: "string" description: "Floating IP type" enum: ["ipv4", "ipv6"] } } } output: { type: "object" required: ["floating_ip"] properties: { action: { type: "object" required: ["command", "error", "finished", "id", "progress", "resources", "started", "status"] 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"] } } } floating_ip: { type: "object" required: ["blocked", "created", "description", "dns_ptr", "home_location", "id", "ip", "labels", "name", "protection", "server", "type"] properties: { blocked: { type: "boolean" description: "Whether the IP is blocked" } created: { type: "string" description: "Point in time when the Resource was created (in ISO-8601 format)" } description: { type: "string" description: "Description of the Resource" } dns_ptr: { type: "array" description: "Array of reverse DNS entries" items: { type: "object" required: ["ip", "dns_ptr"] properties: { dns_ptr: { type: "string" description: "DNS pointer for the specific IP address" } ip: { type: "string" description: "Single IPv4 or IPv6 address" } } } } home_location: { type: "object" description: "Location the Floating IP was created in. Routing is optimized for this Location." required: ["city", "country", "description", "id", "latitude", "longitude", "name", "network_zone"] properties: { city: { type: "string" description: "City the Location is closest to" } country: { type: "string" description: "ISO 3166-1 alpha-2 code of the country the Location resides in" } description: { type: "string" description: "Description of the Location" } id: { type: "number" description: "ID of the Location" } latitude: { type: "number" description: "Latitude of the city closest to the Location" } longitude: { type: "number" description: "Longitude of the city closest to the Location" } name: { type: "string" description: "Unique identifier of the Location" } network_zone: { type: "string" description: "Name of network zone this Location resides in" } } } id: { type: "integer" description: "ID of the Resource" } ip: { type: "string" description: "IP address" } labels: { type: "object" description: "User-defined labels (key-value pairs)" } name: { type: "string" description: "Name of the Resource. Must be unique per Project." } protection: { type: "object" description: "Protection configuration for the Resource" required: ["delete"] properties: { delete: { type: "boolean" description: "If true, prevents the Resource from being deleted" } } } server: { type: "integer" description: "ID of the Server the Floating IP is assigned to, null if it is not assigned at all" } type: { type: "string" description: "Type of the Floating IP" enum: ["ipv4", "ipv6"] } } } } } }