action rudder_create_nodes { label: "Create one or several new nodes" description: "Use the provided array of node information to create new nodes" provider: rudder method: PUT path: "/nodes" encoding: json input: { type: "array" items: { type: "object" required: ["id", "hostname", "status", "os", "machineType", "properties", "ipAddresses"] properties: { agentKey: { type: "object" description: "Information about agent key or certificate" required: ["value"] properties: { status: { type: "string" description: "Certification status of the security token (reset to `undefined` to trust a new certificate). If `certified`, inventory signature check will be enforced" enum: ["certified", "undefined"] } value: { type: "string" format: "PEM" description: "Certificate (or public key for <6.0 agents) used by the agent. Be careful write a \"\\n\" after header line and before footer line, JSON does not keep formatting in string." } } } hostname: { type: "string" description: "The fully qualified name of the node" } id: { type: "string" description: "The Rudder node unique identifier in /opt/rudder/etc/uuid.hive" } ipAddresses: { type: "array" description: "an array of IPs." items: { type: "string" } } machineType: { type: "string" description: "The kind of machine for the node (use vm for a generic VM)" enum: ["vmware", "physical", "vm", "solariszone", "qemu", "xen", "aixlpar", "hyperv", "bsdjail"] } os: { type: "object" required: ["type", "name", "version", "fullName"] properties: { fullName: { type: "string" description: "The long description name of the os" } name: { type: "string" description: "For Linux, a distribution, for Windows, the commercial name" enum: ["debian", "kali", "ubuntu", "redhat", "centos", "fedora", "suse", "oracle", "scientific", "slackware", "xp", "vista", "seven", "10", "2000", "2003", "2008 r2", "2012", "2012 r2", "2016"] } servicePack: { type: "string" description: "a service pack informationnal string" } type: { type: "string" enum: ["linux", "windows", "solaris", "aix", "freebsd", "unknown"] } version: { type: "string" description: "A string representation of the version" } } } policyMode: { type: "string" description: "The policy mode for the node. Can only be specified when status=accepted. If not specified, the default (global) mode will be used" enum: ["enforce", "audit"] } policyServerId: { type: "string" description: "The policy server ID for that node. By default, \"root\"" } properties: { type: "array" description: "Node properties (either set by user or filled by third party sources)" items: { type: "object" required: ["name", "value"] properties: { name: { type: "string" description: "Property name" } value: { format: "string or JSON" description: "Property value (can be a string or JSON object)" type: "object" } } } } state: { type: "string" description: "Node lifecycle state. Can only be specified when status=accepted. If not specified, enable is used" enum: ["enabled", "ignored", "empty-policies", "initializing", "preparing-eol"] } status: { type: "string" description: "Target status of the node" enum: ["accepted", "pending"] } timezone: { type: "object" description: "Timezone information of the node." required: ["name", "offset"] properties: { name: { type: "string" description: "The standard name of the timezone" } offset: { type: "string" description: "Timezone offset compared to UTC, in +/-HHMM format" } } } } } } output: { type: "object" required: ["action", "data", "result"] properties: { action: { type: "string" description: "The id of the action" enum: ["createNode"] } data: { type: "object" required: ["created", "failed"] properties: { created: { type: "array" items: { type: "string" description: "created nodes ID" } } failed: { type: "array" items: { type: "string" description: "failed nodes ID" } } } } result: { type: "string" description: "Result of the request" enum: ["success", "error"] } } } }