published on Wednesday, Jul 15, 2026 by e-breuninger
published on Wednesday, Jul 15, 2026 by e-breuninger
From the official documentation:
Devices can be organized by functional roles, which are fully customizable by the user. For example, you might create roles for core switches, distribution switches, and access switches within your network.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as netbox from "@pulumi/netbox";
// Device role for physical devices only
const coreSw = new netbox.DeviceRole("core_sw", {
colorHex: "ff00ff",
name: "core-sw",
vmRole: false,
});
// Device role that can be used for both devices and virtual machines
const webServer = new netbox.DeviceRole("web_server", {
colorHex: "00ff00",
name: "web-server",
description: "Web server role",
vmRole: true,
});
import pulumi
import pulumi_netbox as netbox
# Device role for physical devices only
core_sw = netbox.DeviceRole("core_sw",
color_hex="ff00ff",
name="core-sw",
vm_role=False)
# Device role that can be used for both devices and virtual machines
web_server = netbox.DeviceRole("web_server",
color_hex="00ff00",
name="web-server",
description="Web server role",
vm_role=True)
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/netbox/v5/netbox"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Device role for physical devices only
_, err := netbox.NewDeviceRole(ctx, "core_sw", &netbox.DeviceRoleArgs{
ColorHex: pulumi.String("ff00ff"),
Name: pulumi.String("core-sw"),
VmRole: pulumi.Bool(false),
})
if err != nil {
return err
}
// Device role that can be used for both devices and virtual machines
_, err = netbox.NewDeviceRole(ctx, "web_server", &netbox.DeviceRoleArgs{
ColorHex: pulumi.String("00ff00"),
Name: pulumi.String("web-server"),
Description: pulumi.String("Web server role"),
VmRole: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Netbox = Pulumi.Netbox;
return await Deployment.RunAsync(() =>
{
// Device role for physical devices only
var coreSw = new Netbox.DeviceRole("core_sw", new()
{
ColorHex = "ff00ff",
Name = "core-sw",
VmRole = false,
});
// Device role that can be used for both devices and virtual machines
var webServer = new Netbox.DeviceRole("web_server", new()
{
ColorHex = "00ff00",
Name = "web-server",
Description = "Web server role",
VmRole = true,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.netbox.DeviceRole;
import com.pulumi.netbox.DeviceRoleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Device role for physical devices only
var coreSw = new DeviceRole("coreSw", DeviceRoleArgs.builder()
.colorHex("ff00ff")
.name("core-sw")
.vmRole(false)
.build());
// Device role that can be used for both devices and virtual machines
var webServer = new DeviceRole("webServer", DeviceRoleArgs.builder()
.colorHex("00ff00")
.name("web-server")
.description("Web server role")
.vmRole(true)
.build());
}
}
resources:
# Device role for physical devices only
coreSw:
type: netbox:DeviceRole
name: core_sw
properties:
colorHex: ff00ff
name: core-sw
vmRole: false
# Device role that can be used for both devices and virtual machines
webServer:
type: netbox:DeviceRole
name: web_server
properties:
colorHex: 00ff00
name: web-server
description: Web server role
vmRole: true
Example coming soon!
Create DeviceRole Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new DeviceRole(name: string, args: DeviceRoleArgs, opts?: CustomResourceOptions);@overload
def DeviceRole(resource_name: str,
args: DeviceRoleArgs,
opts: Optional[ResourceOptions] = None)
@overload
def DeviceRole(resource_name: str,
opts: Optional[ResourceOptions] = None,
color_hex: Optional[str] = None,
description: Optional[str] = None,
device_role_id: Optional[str] = None,
name: Optional[str] = None,
slug: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
vm_role: Optional[bool] = None)func NewDeviceRole(ctx *Context, name string, args DeviceRoleArgs, opts ...ResourceOption) (*DeviceRole, error)public DeviceRole(string name, DeviceRoleArgs args, CustomResourceOptions? opts = null)
public DeviceRole(String name, DeviceRoleArgs args)
public DeviceRole(String name, DeviceRoleArgs args, CustomResourceOptions options)
type: netbox:DeviceRole
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "netbox_devicerole" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args DeviceRoleArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args DeviceRoleArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args DeviceRoleArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args DeviceRoleArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args DeviceRoleArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var deviceRoleResource = new Netbox.DeviceRole("deviceRoleResource", new()
{
ColorHex = "string",
Description = "string",
DeviceRoleId = "string",
Name = "string",
Slug = "string",
Tags = new[]
{
"string",
},
VmRole = false,
});
example, err := netbox.NewDeviceRole(ctx, "deviceRoleResource", &netbox.DeviceRoleArgs{
ColorHex: pulumi.String("string"),
Description: pulumi.String("string"),
DeviceRoleId: pulumi.String("string"),
Name: pulumi.String("string"),
Slug: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
VmRole: pulumi.Bool(false),
})
resource "netbox_devicerole" "deviceRoleResource" {
color_hex = "string"
description = "string"
device_role_id = "string"
name = "string"
slug = "string"
tags = ["string"]
vm_role = false
}
var deviceRoleResource = new DeviceRole("deviceRoleResource", DeviceRoleArgs.builder()
.colorHex("string")
.description("string")
.deviceRoleId("string")
.name("string")
.slug("string")
.tags("string")
.vmRole(false)
.build());
device_role_resource = netbox.DeviceRole("deviceRoleResource",
color_hex="string",
description="string",
device_role_id="string",
name="string",
slug="string",
tags=["string"],
vm_role=False)
const deviceRoleResource = new netbox.DeviceRole("deviceRoleResource", {
colorHex: "string",
description: "string",
deviceRoleId: "string",
name: "string",
slug: "string",
tags: ["string"],
vmRole: false,
});
type: netbox:DeviceRole
properties:
colorHex: string
description: string
deviceRoleId: string
name: string
slug: string
tags:
- string
vmRole: false
DeviceRole Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The DeviceRole resource accepts the following input properties:
- Color
Hex string - Description string
- Device
Role stringId - The ID of this resource.
- Name string
- Slug string
- List<string>
- Vm
Role bool - Virtual machines may be assigned to this role. Defaults to
false.
- Color
Hex string - Description string
- Device
Role stringId - The ID of this resource.
- Name string
- Slug string
- []string
- Vm
Role bool - Virtual machines may be assigned to this role. Defaults to
false.
- color_
hex string - description string
- device_
role_ stringid - The ID of this resource.
- name string
- slug string
- list(string)
- vm_
role bool - Virtual machines may be assigned to this role. Defaults to
false.
- color
Hex String - description String
- device
Role StringId - The ID of this resource.
- name String
- slug String
- List<String>
- vm
Role Boolean - Virtual machines may be assigned to this role. Defaults to
false.
- color
Hex string - description string
- device
Role stringId - The ID of this resource.
- name string
- slug string
- string[]
- vm
Role boolean - Virtual machines may be assigned to this role. Defaults to
false.
- color_
hex str - description str
- device_
role_ strid - The ID of this resource.
- name str
- slug str
- Sequence[str]
- vm_
role bool - Virtual machines may be assigned to this role. Defaults to
false.
- color
Hex String - description String
- device
Role StringId - The ID of this resource.
- name String
- slug String
- List<String>
- vm
Role Boolean - Virtual machines may be assigned to this role. Defaults to
false.
Outputs
All input properties are implicitly available as output properties. Additionally, the DeviceRole resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- List<string>
- Id string
- The provider-assigned unique ID for this managed resource.
- []string
- id string
- The provider-assigned unique ID for this managed resource.
- list(string)
- id String
- The provider-assigned unique ID for this managed resource.
- List<String>
- id string
- The provider-assigned unique ID for this managed resource.
- string[]
- id str
- The provider-assigned unique ID for this managed resource.
- Sequence[str]
- id String
- The provider-assigned unique ID for this managed resource.
- List<String>
Look up Existing DeviceRole Resource
Get an existing DeviceRole resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: DeviceRoleState, opts?: CustomResourceOptions): DeviceRole@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
color_hex: Optional[str] = None,
description: Optional[str] = None,
device_role_id: Optional[str] = None,
name: Optional[str] = None,
slug: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
tags_alls: Optional[Sequence[str]] = None,
vm_role: Optional[bool] = None) -> DeviceRolefunc GetDeviceRole(ctx *Context, name string, id IDInput, state *DeviceRoleState, opts ...ResourceOption) (*DeviceRole, error)public static DeviceRole Get(string name, Input<string> id, DeviceRoleState? state, CustomResourceOptions? opts = null)public static DeviceRole get(String name, Output<String> id, DeviceRoleState state, CustomResourceOptions options)resources: _: type: netbox:DeviceRole get: id: ${id}import {
to = netbox_devicerole.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Color
Hex string - Description string
- Device
Role stringId - The ID of this resource.
- Name string
- Slug string
- List<string>
- List<string>
- Vm
Role bool - Virtual machines may be assigned to this role. Defaults to
false.
- Color
Hex string - Description string
- Device
Role stringId - The ID of this resource.
- Name string
- Slug string
- []string
- []string
- Vm
Role bool - Virtual machines may be assigned to this role. Defaults to
false.
- color_
hex string - description string
- device_
role_ stringid - The ID of this resource.
- name string
- slug string
- list(string)
- list(string)
- vm_
role bool - Virtual machines may be assigned to this role. Defaults to
false.
- color
Hex String - description String
- device
Role StringId - The ID of this resource.
- name String
- slug String
- List<String>
- List<String>
- vm
Role Boolean - Virtual machines may be assigned to this role. Defaults to
false.
- color
Hex string - description string
- device
Role stringId - The ID of this resource.
- name string
- slug string
- string[]
- string[]
- vm
Role boolean - Virtual machines may be assigned to this role. Defaults to
false.
- color_
hex str - description str
- device_
role_ strid - The ID of this resource.
- name str
- slug str
- Sequence[str]
- Sequence[str]
- vm_
role bool - Virtual machines may be assigned to this role. Defaults to
false.
- color
Hex String - description String
- device
Role StringId - The ID of this resource.
- name String
- slug String
- List<String>
- List<String>
- vm
Role Boolean - Virtual machines may be assigned to this role. Defaults to
false.
Package Details
- Repository
- netbox e-breuninger/terraform-provider-netbox
- License
- Notes
- This Pulumi package is based on the
netboxTerraform Provider.
published on Wednesday, Jul 15, 2026 by e-breuninger