Skip to content

Commit 0e3d35c

Browse files
authored
Adds to #767: Add various new NetBox 3.2 parameters (#768)
* Add VRF on netbox_vm_interface * Add link parameter to netbox_contact * Add enabled to netbox_custom_link * Add service_id to netbox_provider_network * Add min_vid and max_vid to netbox_vlan_group * Add speed, duplex and VRF to device_interface * Add choices to duplex parameter * Add cluster_types to netbox_config_context * Add object_type to netbox_custom_field
1 parent 0e45745 commit 0e3d35c

9 files changed

+116
-3
lines changed

plugins/module_utils/netbox_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@
185185
"cluster_group": "cluster_groups",
186186
"cluster_groups": "cluster_groups",
187187
"cluster_type": "cluster_types",
188+
"cluster_types": "cluster_types",
188189
"config_context": "config_contexts",
189190
"contact_groups": "contact_groups",
190191
"dcim.consoleport": "console_ports",
@@ -361,6 +362,7 @@
361362
"roles",
362363
"device_types",
363364
"platforms",
365+
"cluster_types",
364366
"cluster_groups",
365367
"clusters",
366368
"tenant_groups",

plugins/modules/netbox_config_context.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@
8484
required: false
8585
type: list
8686
elements: str
87+
cluster_types:
88+
description:
89+
- List of cluster_types to which configuration context applies
90+
required: false
91+
type: list
92+
elements: str
8793
cluster_groups:
8894
description:
8995
- List of cluster_groups to which configuration context applies
@@ -194,6 +200,7 @@ def main():
194200
roles=dict(required=False, type="list", elements="str"),
195201
device_types=dict(required=False, type="list", elements="str"),
196202
platforms=dict(required=False, type="list", elements="str"),
203+
cluster_types=dict(required=False, type="list", elements="str"),
197204
cluster_groups=dict(required=False, type="list", elements="str"),
198205
clusters=dict(required=False, type="list", elements="str"),
199206
tenant_groups=dict(required=False, type="list", elements="str"),

plugins/modules/netbox_contact.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
- Group assignment for the contact
6565
required: false
6666
type: raw
67+
link:
68+
description:
69+
- URL associated with the contact
70+
required: false
71+
type: str
72+
version_added: "3.7.0"
6773
tags:
6874
description:
6975
- Any tags that the contact may need to be associated with
@@ -156,6 +162,7 @@ def main():
156162
address=dict(required=False, type="str"),
157163
comments=dict(required=False, type="str"),
158164
contact_group=dict(required=False, type="raw"),
165+
link=dict(required=False, type="str"),
159166
tags=dict(required=False, type="list", elements="raw"),
160167
custom_fields=dict(required=False, type="dict"),
161168
),

plugins/modules/netbox_custom_field.py

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,25 @@
3838
description:
3939
- The type of custom field
4040
required: false
41-
type: raw
41+
choices:
42+
- text
43+
- longtext
44+
- integer
45+
- boolean
46+
- date
47+
- url
48+
- json
49+
- select
50+
- multiselect
51+
- object
52+
- multiobject
53+
type: str
54+
object_type:
55+
description:
56+
- The object type of the custom field (if any)
57+
required: false
58+
type: str
59+
version_added: "3.7.0"
4260
name:
4361
description:
4462
- Name of the custom field
@@ -165,7 +183,24 @@ def main():
165183
required=True,
166184
options=dict(
167185
content_types=dict(required=False, type="list", elements="raw"),
168-
type=dict(required=False, type="raw"),
186+
type=dict(
187+
required=False,
188+
choices=[
189+
"text",
190+
"longtext",
191+
"integer",
192+
"boolean",
193+
"date",
194+
"url",
195+
"json",
196+
"select",
197+
"multiselect",
198+
"object",
199+
"multiobject",
200+
],
201+
type="str",
202+
),
203+
object_type=dict(required=False, type="str"),
169204
name=dict(required=True, type="str"),
170205
label=dict(required=False, type="str"),
171206
description=dict(required=False, type="str"),

plugins/modules/netbox_custom_link.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,13 @@
6868
description:
6969
- Open link in new window
7070
required: false
71-
type: bool
71+
type: bool
72+
enabled:
73+
description:
74+
- Enable/disable custom link
75+
required: false
76+
type: bool
77+
version_added: "3.7.0"
7278
required: true
7379
"""
7480

@@ -140,6 +146,7 @@ def main():
140146
group_name=dict(required=False, type="str"),
141147
button_class=dict(required=False, type="raw"),
142148
new_window=dict(required=False, type="bool"),
149+
enabled=dict(required=False, type="bool"),
143150
),
144151
)
145152
)

plugins/modules/netbox_device_interface.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,28 @@
101101
- The mode of the interface
102102
required: false
103103
type: raw
104+
vrf:
105+
description:
106+
- The VRF of the interface
107+
required: false
108+
type: raw
109+
version_added: "3.7.0"
110+
speed:
111+
description:
112+
- The speed of the interface
113+
required: false
114+
type: int
115+
version_added: "3.7.0"
116+
duplex:
117+
description:
118+
- The duplex of the interface
119+
required: false
120+
choices:
121+
- half
122+
- full
123+
- auto
124+
type: str
125+
version_added: "3.7.0"
104126
parent_interface:
105127
description:
106128
- The device's parent interface
@@ -286,6 +308,11 @@ def main():
286308
mgmt_only=dict(required=False, type="bool"),
287309
description=dict(required=False, type="str"),
288310
mode=dict(required=False, type="raw"),
311+
vrf=dict(required=False, type="raw"),
312+
speed=dict(required=False, type="int"),
313+
duplex=dict(
314+
required=False, choices=["half", "full", "auto"], type="str"
315+
),
289316
parent_interface=dict(required=False, type="raw"),
290317
untagged_vlan=dict(required=False, type="raw"),
291318
tagged_vlans=dict(required=False, type="raw"),

plugins/modules/netbox_provider_network.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@
5050
- Comments related to the provider network
5151
required: false
5252
type: str
53+
service_id:
54+
description:
55+
- Arbitrary service ID
56+
required: false
57+
type: str
58+
version_added: "3.7.0"
5359
tags:
5460
description:
5561
- Any tags that the provdier_network may need to be associated with
@@ -138,6 +144,7 @@ def main():
138144
name=dict(required=True, type="str"),
139145
description=dict(required=False, type="str"),
140146
comments=dict(required=False, type="str"),
147+
service_id=dict(required=False, type="str"),
141148
tags=dict(required=False, type="list", elements="raw"),
142149
custom_fields=dict(required=False, type="dict"),
143150
),

plugins/modules/netbox_vlan_group.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,18 @@
7272
required: false
7373
type: str
7474
version_added: "3.1.0"
75+
min_vid:
76+
description:
77+
- Lowest permissible ID of a child VLAN
78+
required: false
79+
type: int
80+
version_added: "3.7.0"
81+
max_vid:
82+
description:
83+
- Highest permissible ID of a child VLAN
84+
required: false
85+
type: int
86+
version_added: "3.7.0"
7587
tags:
7688
description:
7789
- The tags to add/update
@@ -178,6 +190,8 @@ def main():
178190
],
179191
),
180192
scope=dict(required=False, type="raw"),
193+
min_vid=dict(required=False, type="int"),
194+
max_vid=dict(required=False, type="int"),
181195
description=dict(required=False, type="str"),
182196
tags=dict(required=False, type="list", elements="raw"),
183197
custom_fields=dict(required=False, type="dict"),

plugins/modules/netbox_vm_interface.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@
8585
- A list of tagged VLANS to be assigned to interface. Mode must be set to either C(Tagged) or C(Tagged All)
8686
required: false
8787
type: raw
88+
vrf:
89+
description:
90+
- VRF the interface is associated with
91+
required: false
92+
type: raw
93+
version_added: "3.7.0"
8894
tags:
8995
description:
9096
- Any tags that the prefix may need to be associated with
@@ -209,6 +215,7 @@ def main():
209215
parent_vm_interface=dict(required=False, type="raw"),
210216
untagged_vlan=dict(required=False, type="raw"),
211217
tagged_vlans=dict(required=False, type="raw"),
218+
vrf=dict(required=False, type="raw"),
212219
tags=dict(required=False, type="list", elements="raw"),
213220
custom_fields=dict(required=False, type="dict"),
214221
),

0 commit comments

Comments
 (0)