@pulumiverse/unifi 0.3.0-alpha.1780644697 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/account.d.ts +31 -17
  2. package/account.d.ts.map +1 -0
  3. package/account.js +33 -7
  4. package/account.js.map +1 -1
  5. package/ap/getGroup.d.ts +71 -0
  6. package/ap/getGroup.d.ts.map +1 -0
  7. package/ap/getGroup.js +73 -0
  8. package/ap/getGroup.js.map +1 -0
  9. package/ap/group.d.ts +106 -0
  10. package/ap/group.d.ts.map +1 -0
  11. package/ap/group.js +112 -0
  12. package/ap/group.js.map +1 -0
  13. package/ap/index.d.ts +7 -0
  14. package/ap/index.d.ts.map +1 -0
  15. package/ap/index.js +48 -0
  16. package/ap/index.js.map +1 -0
  17. package/config/index.d.ts +1 -0
  18. package/config/index.d.ts.map +1 -0
  19. package/config/vars.d.ts +5 -0
  20. package/config/vars.d.ts.map +1 -0
  21. package/config/vars.js +31 -2
  22. package/config/vars.js.map +1 -1
  23. package/device.d.ts +87 -14
  24. package/device.d.ts.map +1 -0
  25. package/device.js +49 -5
  26. package/device.js.map +1 -1
  27. package/dns/getRecord.d.ts +4 -3
  28. package/dns/getRecord.d.ts.map +1 -0
  29. package/dns/getRecord.js +25 -2
  30. package/dns/getRecord.js.map +1 -1
  31. package/dns/getRecords.d.ts +2 -1
  32. package/dns/getRecords.d.ts.map +1 -0
  33. package/dns/getRecords.js +25 -2
  34. package/dns/getRecords.js.map +1 -1
  35. package/dns/index.d.ts +1 -0
  36. package/dns/index.d.ts.map +1 -0
  37. package/dns/index.js +25 -2
  38. package/dns/index.js.map +1 -1
  39. package/dns/record.d.ts +17 -16
  40. package/dns/record.d.ts.map +1 -0
  41. package/dns/record.js +27 -4
  42. package/dns/record.js.map +1 -1
  43. package/dynamicDNS.d.ts +13 -12
  44. package/dynamicDNS.d.ts.map +1 -0
  45. package/dynamicDNS.js +27 -4
  46. package/dynamicDNS.js.map +1 -1
  47. package/firewall/getZone.d.ts +48 -1
  48. package/firewall/getZone.d.ts.map +1 -0
  49. package/firewall/getZone.js +71 -2
  50. package/firewall/getZone.js.map +1 -1
  51. package/firewall/group.d.ts +7 -6
  52. package/firewall/group.d.ts.map +1 -0
  53. package/firewall/group.js +27 -4
  54. package/firewall/group.js.map +1 -1
  55. package/firewall/index.d.ts +4 -0
  56. package/firewall/index.d.ts.map +1 -0
  57. package/firewall/index.js +31 -3
  58. package/firewall/index.js.map +1 -1
  59. package/firewall/rule.d.ts +58 -55
  60. package/firewall/rule.d.ts.map +1 -0
  61. package/firewall/rule.js +29 -4
  62. package/firewall/rule.js.map +1 -1
  63. package/firewall/zone.d.ts +10 -7
  64. package/firewall/zone.d.ts.map +1 -0
  65. package/firewall/zone.js +30 -5
  66. package/firewall/zone.js.map +1 -1
  67. package/firewall/zonePolicy.d.ts +36 -37
  68. package/firewall/zonePolicy.d.ts.map +1 -0
  69. package/firewall/zonePolicy.js +31 -6
  70. package/firewall/zonePolicy.js.map +1 -1
  71. package/firewall/zonePolicyOrder.d.ts +170 -0
  72. package/firewall/zonePolicyOrder.d.ts.map +1 -0
  73. package/firewall/zonePolicyOrder.js +159 -0
  74. package/firewall/zonePolicyOrder.js.map +1 -0
  75. package/getAccount.d.ts +7 -2
  76. package/getAccount.d.ts.map +1 -0
  77. package/getAccount.js +25 -2
  78. package/getAccount.js.map +1 -1
  79. package/getApGroup.d.ts +13 -10
  80. package/getApGroup.d.ts.map +1 -0
  81. package/getApGroup.js +33 -6
  82. package/getApGroup.js.map +1 -1
  83. package/getNetwork.d.ts +21 -4
  84. package/getNetwork.d.ts.map +1 -0
  85. package/getNetwork.js +25 -2
  86. package/getNetwork.js.map +1 -1
  87. package/getRadiusProfile.d.ts +3 -2
  88. package/getRadiusProfile.d.ts.map +1 -0
  89. package/getRadiusProfile.js +25 -2
  90. package/getRadiusProfile.js.map +1 -1
  91. package/iam/getGroup.d.ts +3 -2
  92. package/iam/getGroup.d.ts.map +1 -0
  93. package/iam/getGroup.js +25 -2
  94. package/iam/getGroup.js.map +1 -1
  95. package/iam/getUser.d.ts +2 -1
  96. package/iam/getUser.d.ts.map +1 -0
  97. package/iam/getUser.js +25 -2
  98. package/iam/getUser.js.map +1 -1
  99. package/iam/group.d.ts +11 -8
  100. package/iam/group.d.ts.map +1 -0
  101. package/iam/group.js +29 -4
  102. package/iam/group.js.map +1 -1
  103. package/iam/index.d.ts +1 -0
  104. package/iam/index.d.ts.map +1 -0
  105. package/iam/index.js +25 -2
  106. package/iam/index.js.map +1 -1
  107. package/iam/user.d.ts +26 -25
  108. package/iam/user.d.ts.map +1 -0
  109. package/iam/user.js +27 -4
  110. package/iam/user.js.map +1 -1
  111. package/index.d.ts +3 -1
  112. package/index.d.ts.map +1 -0
  113. package/index.js +24 -10
  114. package/index.js.map +1 -1
  115. package/network.d.ts +486 -123
  116. package/network.d.ts.map +1 -0
  117. package/network.js +97 -4
  118. package/network.js.map +1 -1
  119. package/package.json +3 -3
  120. package/port/alFile.d.ts +10 -9
  121. package/port/alFile.d.ts.map +1 -0
  122. package/port/alFile.js +27 -4
  123. package/port/alFile.js.map +1 -1
  124. package/port/forward.d.ts +21 -20
  125. package/port/forward.d.ts.map +1 -0
  126. package/port/forward.js +27 -4
  127. package/port/forward.js.map +1 -1
  128. package/port/getProfile.d.ts +3 -2
  129. package/port/getProfile.d.ts.map +1 -0
  130. package/port/getProfile.js +25 -2
  131. package/port/getProfile.js.map +1 -1
  132. package/port/index.d.ts +1 -0
  133. package/port/index.d.ts.map +1 -0
  134. package/port/index.js +25 -2
  135. package/port/index.js.map +1 -1
  136. package/port/profile.d.ts +79 -72
  137. package/port/profile.d.ts.map +1 -0
  138. package/port/profile.js +27 -4
  139. package/port/profile.js.map +1 -1
  140. package/provider.d.ts +11 -6
  141. package/provider.d.ts.map +1 -0
  142. package/provider.js +28 -4
  143. package/provider.js.map +1 -1
  144. package/radiusProfile.d.ts +23 -22
  145. package/radiusProfile.d.ts.map +1 -0
  146. package/radiusProfile.js +27 -4
  147. package/radiusProfile.js.map +1 -1
  148. package/setting/autoSpeedtest.d.ts +6 -5
  149. package/setting/autoSpeedtest.d.ts.map +1 -0
  150. package/setting/autoSpeedtest.js +27 -4
  151. package/setting/autoSpeedtest.js.map +1 -1
  152. package/setting/connectivity.d.ts +73 -0
  153. package/setting/connectivity.d.ts.map +1 -0
  154. package/setting/connectivity.js +89 -0
  155. package/setting/connectivity.js.map +1 -0
  156. package/setting/country.d.ts +5 -4
  157. package/setting/country.d.ts.map +1 -0
  158. package/setting/country.js +27 -4
  159. package/setting/country.js.map +1 -1
  160. package/setting/dpi.d.ts +5 -4
  161. package/setting/dpi.d.ts.map +1 -0
  162. package/setting/dpi.js +27 -4
  163. package/setting/dpi.js.map +1 -1
  164. package/setting/etherLighting.d.ts +78 -0
  165. package/setting/etherLighting.d.ts.map +1 -0
  166. package/setting/etherLighting.js +79 -0
  167. package/setting/etherLighting.js.map +1 -0
  168. package/setting/globalSwitch.d.ts +131 -0
  169. package/setting/globalSwitch.d.ts.map +1 -0
  170. package/setting/globalSwitch.js +122 -0
  171. package/setting/globalSwitch.js.map +1 -0
  172. package/setting/guestAccess.d.ts +73 -72
  173. package/setting/guestAccess.d.ts.map +1 -0
  174. package/setting/guestAccess.js +27 -4
  175. package/setting/guestAccess.js.map +1 -1
  176. package/setting/index.d.ts +10 -0
  177. package/setting/index.d.ts.map +1 -0
  178. package/setting/index.js +41 -3
  179. package/setting/index.js.map +1 -1
  180. package/setting/ips.d.ts +23 -22
  181. package/setting/ips.d.ts.map +1 -0
  182. package/setting/ips.js +27 -4
  183. package/setting/ips.js.map +1 -1
  184. package/setting/lcdMonitor.d.ts +12 -11
  185. package/setting/lcdMonitor.d.ts.map +1 -0
  186. package/setting/lcdMonitor.js +27 -4
  187. package/setting/lcdMonitor.js.map +1 -1
  188. package/setting/locale.d.ts +4 -3
  189. package/setting/locale.d.ts.map +1 -0
  190. package/setting/locale.js +27 -4
  191. package/setting/locale.js.map +1 -1
  192. package/setting/magicSiteToSiteVpn.d.ts +4 -3
  193. package/setting/magicSiteToSiteVpn.d.ts.map +1 -0
  194. package/setting/magicSiteToSiteVpn.js +27 -4
  195. package/setting/magicSiteToSiteVpn.js.map +1 -1
  196. package/setting/mgmt.d.ts +37 -36
  197. package/setting/mgmt.d.ts.map +1 -0
  198. package/setting/mgmt.js +27 -4
  199. package/setting/mgmt.js.map +1 -1
  200. package/setting/networkOptimization.d.ts +4 -3
  201. package/setting/networkOptimization.d.ts.map +1 -0
  202. package/setting/networkOptimization.js +27 -4
  203. package/setting/networkOptimization.js.map +1 -1
  204. package/setting/ntp.d.ts +13 -12
  205. package/setting/ntp.d.ts.map +1 -0
  206. package/setting/ntp.js +27 -4
  207. package/setting/ntp.js.map +1 -1
  208. package/setting/radius.d.ts +17 -16
  209. package/setting/radius.d.ts.map +1 -0
  210. package/setting/radius.js +27 -4
  211. package/setting/radius.js.map +1 -1
  212. package/setting/rsyslogd.d.ts +24 -23
  213. package/setting/rsyslogd.d.ts.map +1 -0
  214. package/setting/rsyslogd.js +27 -4
  215. package/setting/rsyslogd.js.map +1 -1
  216. package/setting/sslInspection.d.ts +4 -3
  217. package/setting/sslInspection.d.ts.map +1 -0
  218. package/setting/sslInspection.js +27 -4
  219. package/setting/sslInspection.js.map +1 -1
  220. package/setting/teleport.d.ts +6 -5
  221. package/setting/teleport.d.ts.map +1 -0
  222. package/setting/teleport.js +27 -4
  223. package/setting/teleport.js.map +1 -1
  224. package/setting/usg.d.ts +75 -74
  225. package/setting/usg.d.ts.map +1 -0
  226. package/setting/usg.js +27 -4
  227. package/setting/usg.js.map +1 -1
  228. package/setting/usw.d.ts +4 -3
  229. package/setting/usw.d.ts.map +1 -0
  230. package/setting/usw.js +27 -4
  231. package/setting/usw.js.map +1 -1
  232. package/site.d.ts +5 -2
  233. package/site.d.ts.map +1 -0
  234. package/site.js +29 -4
  235. package/site.js.map +1 -1
  236. package/staticRoute.d.ts +12 -11
  237. package/staticRoute.d.ts.map +1 -0
  238. package/staticRoute.js +27 -4
  239. package/staticRoute.js.map +1 -1
  240. package/types/index.d.ts +1 -0
  241. package/types/index.d.ts.map +1 -0
  242. package/types/index.js +25 -2
  243. package/types/index.js.map +1 -1
  244. package/types/input.d.ts +240 -111
  245. package/types/input.d.ts.map +1 -0
  246. package/types/output.d.ts +129 -0
  247. package/types/output.d.ts.map +1 -0
  248. package/utilities.d.ts +1 -0
  249. package/utilities.d.ts.map +1 -0
  250. package/utilities.js +24 -1
  251. package/utilities.js.map +1 -1
  252. package/wlan.d.ts +81 -60
  253. package/wlan.d.ts.map +1 -0
  254. package/wlan.js +32 -5
  255. package/wlan.js.map +1 -1
package/account.d.ts CHANGED
@@ -6,15 +6,16 @@ import * as pulumi from "@pulumi/pulumi";
6
6
  * * WPA2/WPA3-Enterprise wireless authentication
7
7
  * * 802.1X wired authentication
8
8
  * * MAC-based device authentication
9
- * * VLAN assignment through RADIUS attributes
9
+ * * Dynamic VLAN assignment through RADIUS attributes (see the `vlan` attribute)
10
10
  *
11
11
  * Important Notes:
12
12
  * 1. For MAC-based authentication:
13
13
  * * Use the device's MAC address as both username and password
14
14
  * * Convert MAC address to uppercase with no separators (e.g., '00:11:22:33:44:55' becomes '001122334455')
15
15
  * 2. VLAN Assignment:
16
- * * If no VLAN is specified in the profile, clients will use the network's untagged VLAN
17
- * * VLAN assignment uses standard RADIUS tunnel attributes
16
+ * * Set the `vlan` attribute to the 802.1Q VLAN ID the controller should assign to authenticated clients
17
+ * * VLAN assignment is delivered using the standard RADIUS tunnel attributes (`tunnelType`/`tunnelMediumType`)
18
+ * * If no VLAN is specified, clients will use the network's untagged VLAN
18
19
  *
19
20
  * Limitations:
20
21
  * * MAC-based authentication works only for wireless and wired clients
@@ -42,7 +43,7 @@ export declare class Account extends pulumi.CustomResource {
42
43
  */
43
44
  readonly name: pulumi.Output<string>;
44
45
  /**
45
- * The ID of the network (VLAN) to assign to clients authenticating with this account. This is used in conjunction with the tunnel attributes to provide VLAN assignment via RADIUS.
46
+ * The ID of a UniFi network configuration (the controller's `networkconfId`) to associate with this account. This is a reference to a network object and is distinct from the `vlan` attribute, which sets the 802.1Q VLAN ID delivered via RADIUS.
46
47
  */
47
48
  readonly networkId: pulumi.Output<string | undefined>;
48
49
  /**
@@ -71,6 +72,10 @@ export declare class Account extends pulumi.CustomResource {
71
72
  * Only change this if you need specific tunneling behavior.
72
73
  */
73
74
  readonly tunnelType: pulumi.Output<number | undefined>;
75
+ /**
76
+ * The 802.1Q VLAN ID to assign to clients authenticating with this account, used for RADIUS dynamic VLAN assignment. It is delivered together with the tunnel attributes (`tunnelType`/`tunnelMediumType`). Omitting this attribute means no VLAN is assigned; if a VLAN was set out-of-band (e.g. in the controller UI), omitting it here removes it on the next apply.
77
+ */
78
+ readonly vlan: pulumi.Output<number | undefined>;
74
79
  /**
75
80
  * Create a Account resource with the given unique name, arguments, and options.
76
81
  *
@@ -87,19 +92,19 @@ export interface AccountState {
87
92
  /**
88
93
  * The username for this RADIUS account. For regular users, this can be any unique identifier. For MAC-based authentication, this must be the device's MAC address in uppercase with no separators (e.g., '001122334455').
89
94
  */
90
- name?: pulumi.Input<string>;
95
+ name?: pulumi.Input<string | undefined>;
91
96
  /**
92
- * The ID of the network (VLAN) to assign to clients authenticating with this account. This is used in conjunction with the tunnel attributes to provide VLAN assignment via RADIUS.
97
+ * The ID of a UniFi network configuration (the controller's `networkconfId`) to associate with this account. This is a reference to a network object and is distinct from the `vlan` attribute, which sets the 802.1Q VLAN ID delivered via RADIUS.
93
98
  */
94
- networkId?: pulumi.Input<string>;
99
+ networkId?: pulumi.Input<string | undefined>;
95
100
  /**
96
101
  * The password for this RADIUS account. For MAC-based authentication, this must match the username (the MAC address). For regular users, this should be a secure password following your organization's password policies.
97
102
  */
98
- password?: pulumi.Input<string>;
103
+ password?: pulumi.Input<string | undefined>;
99
104
  /**
100
105
  * The name of the UniFi site where this RADIUS account should be created. If not specified, the default site will be used.
101
106
  */
102
- site?: pulumi.Input<string>;
107
+ site?: pulumi.Input<string | undefined>;
103
108
  /**
104
109
  * The RADIUS tunnel medium type attribute ([RFC 2868](https://tools.ietf.org/html/rfc2868), section 3.2). Common values:
105
110
  * * `6` - 802 (includes Ethernet, Token Ring, FDDI) (default)
@@ -108,7 +113,7 @@ export interface AccountState {
108
113
  *
109
114
  * Only change this if you need specific tunneling behavior.
110
115
  */
111
- tunnelMediumType?: pulumi.Input<number>;
116
+ tunnelMediumType?: pulumi.Input<number | undefined>;
112
117
  /**
113
118
  * The RADIUS tunnel type attribute ([RFC 2868](https://tools.ietf.org/html/rfc2868), section 3.1). Common values:
114
119
  * * `13` - VLAN (default)
@@ -117,7 +122,11 @@ export interface AccountState {
117
122
  *
118
123
  * Only change this if you need specific tunneling behavior.
119
124
  */
120
- tunnelType?: pulumi.Input<number>;
125
+ tunnelType?: pulumi.Input<number | undefined>;
126
+ /**
127
+ * The 802.1Q VLAN ID to assign to clients authenticating with this account, used for RADIUS dynamic VLAN assignment. It is delivered together with the tunnel attributes (`tunnelType`/`tunnelMediumType`). Omitting this attribute means no VLAN is assigned; if a VLAN was set out-of-band (e.g. in the controller UI), omitting it here removes it on the next apply.
128
+ */
129
+ vlan?: pulumi.Input<number | undefined>;
121
130
  }
122
131
  /**
123
132
  * The set of arguments for constructing a Account resource.
@@ -126,11 +135,11 @@ export interface AccountArgs {
126
135
  /**
127
136
  * The username for this RADIUS account. For regular users, this can be any unique identifier. For MAC-based authentication, this must be the device's MAC address in uppercase with no separators (e.g., '001122334455').
128
137
  */
129
- name?: pulumi.Input<string>;
138
+ name?: pulumi.Input<string | undefined>;
130
139
  /**
131
- * The ID of the network (VLAN) to assign to clients authenticating with this account. This is used in conjunction with the tunnel attributes to provide VLAN assignment via RADIUS.
140
+ * The ID of a UniFi network configuration (the controller's `networkconfId`) to associate with this account. This is a reference to a network object and is distinct from the `vlan` attribute, which sets the 802.1Q VLAN ID delivered via RADIUS.
132
141
  */
133
- networkId?: pulumi.Input<string>;
142
+ networkId?: pulumi.Input<string | undefined>;
134
143
  /**
135
144
  * The password for this RADIUS account. For MAC-based authentication, this must match the username (the MAC address). For regular users, this should be a secure password following your organization's password policies.
136
145
  */
@@ -138,7 +147,7 @@ export interface AccountArgs {
138
147
  /**
139
148
  * The name of the UniFi site where this RADIUS account should be created. If not specified, the default site will be used.
140
149
  */
141
- site?: pulumi.Input<string>;
150
+ site?: pulumi.Input<string | undefined>;
142
151
  /**
143
152
  * The RADIUS tunnel medium type attribute ([RFC 2868](https://tools.ietf.org/html/rfc2868), section 3.2). Common values:
144
153
  * * `6` - 802 (includes Ethernet, Token Ring, FDDI) (default)
@@ -147,7 +156,7 @@ export interface AccountArgs {
147
156
  *
148
157
  * Only change this if you need specific tunneling behavior.
149
158
  */
150
- tunnelMediumType?: pulumi.Input<number>;
159
+ tunnelMediumType?: pulumi.Input<number | undefined>;
151
160
  /**
152
161
  * The RADIUS tunnel type attribute ([RFC 2868](https://tools.ietf.org/html/rfc2868), section 3.1). Common values:
153
162
  * * `13` - VLAN (default)
@@ -156,5 +165,10 @@ export interface AccountArgs {
156
165
  *
157
166
  * Only change this if you need specific tunneling behavior.
158
167
  */
159
- tunnelType?: pulumi.Input<number>;
168
+ tunnelType?: pulumi.Input<number | undefined>;
169
+ /**
170
+ * The 802.1Q VLAN ID to assign to clients authenticating with this account, used for RADIUS dynamic VLAN assignment. It is delivered together with the tunnel attributes (`tunnelType`/`tunnelMediumType`). Omitting this attribute means no VLAN is assigned; if a VLAN was set out-of-band (e.g. in the controller UI), omitting it here removes it on the next apply.
171
+ */
172
+ vlan?: pulumi.Input<number | undefined>;
160
173
  }
174
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../account.ts"],"names":[],"mappings":"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"}
package/account.js CHANGED
@@ -1,10 +1,33 @@
1
1
  "use strict";
2
2
  // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
3
  // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
4
27
  Object.defineProperty(exports, "__esModule", { value: true });
5
28
  exports.Account = void 0;
6
- const pulumi = require("@pulumi/pulumi");
7
- const utilities = require("./utilities");
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("./utilities"));
8
31
  /**
9
32
  * The `unifi.Account` resource manages RADIUS user accounts in the UniFi controller's built-in RADIUS server.
10
33
  *
@@ -12,15 +35,16 @@ const utilities = require("./utilities");
12
35
  * * WPA2/WPA3-Enterprise wireless authentication
13
36
  * * 802.1X wired authentication
14
37
  * * MAC-based device authentication
15
- * * VLAN assignment through RADIUS attributes
38
+ * * Dynamic VLAN assignment through RADIUS attributes (see the `vlan` attribute)
16
39
  *
17
40
  * Important Notes:
18
41
  * 1. For MAC-based authentication:
19
42
  * * Use the device's MAC address as both username and password
20
43
  * * Convert MAC address to uppercase with no separators (e.g., '00:11:22:33:44:55' becomes '001122334455')
21
44
  * 2. VLAN Assignment:
22
- * * If no VLAN is specified in the profile, clients will use the network's untagged VLAN
23
- * * VLAN assignment uses standard RADIUS tunnel attributes
45
+ * * Set the `vlan` attribute to the 802.1Q VLAN ID the controller should assign to authenticated clients
46
+ * * VLAN assignment is delivered using the standard RADIUS tunnel attributes (`tunnelType`/`tunnelMediumType`)
47
+ * * If no VLAN is specified, clients will use the network's untagged VLAN
24
48
  *
25
49
  * Limitations:
26
50
  * * MAC-based authentication works only for wireless and wired clients
@@ -40,6 +64,8 @@ class Account extends pulumi.CustomResource {
40
64
  static get(name, id, state, opts) {
41
65
  return new Account(name, state, { ...opts, id: id });
42
66
  }
67
+ /** @internal */
68
+ static __pulumiType = 'unifi:index/account:Account';
43
69
  /**
44
70
  * Returns true if the given object is an instance of Account. This is designed to work even
45
71
  * when multiple copies of the Pulumi SDK have been loaded into the same process.
@@ -61,6 +87,7 @@ class Account extends pulumi.CustomResource {
61
87
  resourceInputs["site"] = state?.site;
62
88
  resourceInputs["tunnelMediumType"] = state?.tunnelMediumType;
63
89
  resourceInputs["tunnelType"] = state?.tunnelType;
90
+ resourceInputs["vlan"] = state?.vlan;
64
91
  }
65
92
  else {
66
93
  const args = argsOrState;
@@ -73,6 +100,7 @@ class Account extends pulumi.CustomResource {
73
100
  resourceInputs["site"] = args?.site;
74
101
  resourceInputs["tunnelMediumType"] = args?.tunnelMediumType;
75
102
  resourceInputs["tunnelType"] = args?.tunnelType;
103
+ resourceInputs["vlan"] = args?.vlan;
76
104
  }
77
105
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
78
106
  const secretOpts = { additionalSecretOutputs: ["password"] };
@@ -81,6 +109,4 @@ class Account extends pulumi.CustomResource {
81
109
  }
82
110
  }
83
111
  exports.Account = Account;
84
- /** @internal */
85
- Account.__pulumiType = 'unifi:index/account:Account';
86
112
  //# sourceMappingURL=account.js.map
package/account.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../account.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;IA6CD,YAAY,IAAY,EAAE,WAAwC,EAAE,IAAmC;QACnG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAuC,CAAC;YACtD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC;YAC7C,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;YAC7D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;SACpD;aAAM;YACH,MAAM,IAAI,GAAG,WAAsC,CAAC;YACpD,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;SACnD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;;AAlGL,0BAmGC;AArFG,gBAAgB;AACO,oBAAY,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../account.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AACzC,uDAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAU,YAAY,GAAG,6BAA6B,CAAC;IAEpE;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;IAiDD,YAAY,IAAY,EAAE,WAAwC,EAAE,IAAmC;QACnG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAuC,CAAC;YACtD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC;YAC7C,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,gBAAgB,CAAC;YAC7D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;SACxC;aAAM;YACH,MAAM,IAAI,GAAG,WAAsC,CAAC;YACpD,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC;YAC5D,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;SACvC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;;AAxGL,0BAyGC"}
@@ -0,0 +1,71 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * The `unifi.ap.Group` data source can be used to retrieve the ID for an AP group by name.
4
+ *
5
+ * ## Example Usage
6
+ *
7
+ * ```typescript
8
+ * import * as pulumi from "@pulumi/pulumi";
9
+ * import * as unifi from "@pulumiverse/unifi";
10
+ *
11
+ * const _default = unifi.ap.getGroup({});
12
+ * ```
13
+ */
14
+ export declare function getGroup(args?: GetGroupArgs, opts?: pulumi.InvokeOptions): Promise<GetGroupResult>;
15
+ /**
16
+ * A collection of arguments for invoking getGroup.
17
+ */
18
+ export interface GetGroupArgs {
19
+ /**
20
+ * The name of the AP group to look up, leave blank to look up the default AP group.
21
+ */
22
+ name?: string;
23
+ /**
24
+ * The name of the UniFi site where this resource should be applied. If not specified, the default site will be used.
25
+ */
26
+ site?: string;
27
+ }
28
+ /**
29
+ * A collection of values returned by getGroup.
30
+ */
31
+ export interface GetGroupResult {
32
+ /**
33
+ * The unique identifier of this resource.
34
+ */
35
+ readonly id: string;
36
+ /**
37
+ * The name of the AP group to look up, leave blank to look up the default AP group.
38
+ */
39
+ readonly name?: string;
40
+ /**
41
+ * The name of the UniFi site where this resource should be applied. If not specified, the default site will be used.
42
+ */
43
+ readonly site: string;
44
+ }
45
+ /**
46
+ * The `unifi.ap.Group` data source can be used to retrieve the ID for an AP group by name.
47
+ *
48
+ * ## Example Usage
49
+ *
50
+ * ```typescript
51
+ * import * as pulumi from "@pulumi/pulumi";
52
+ * import * as unifi from "@pulumiverse/unifi";
53
+ *
54
+ * const _default = unifi.ap.getGroup({});
55
+ * ```
56
+ */
57
+ export declare function getGroupOutput(args?: GetGroupOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetGroupResult>;
58
+ /**
59
+ * A collection of arguments for invoking getGroup.
60
+ */
61
+ export interface GetGroupOutputArgs {
62
+ /**
63
+ * The name of the AP group to look up, leave blank to look up the default AP group.
64
+ */
65
+ name?: pulumi.Input<string | undefined>;
66
+ /**
67
+ * The name of the UniFi site where this resource should be applied. If not specified, the default site will be used.
68
+ */
69
+ site?: pulumi.Input<string | undefined>;
70
+ }
71
+ //# sourceMappingURL=getGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGroup.d.ts","sourceRoot":"","sources":["../../ap/getGroup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAOlG;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AACD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAO1H;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3C"}
package/ap/getGroup.js ADDED
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.getGroupOutput = exports.getGroup = void 0;
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("../utilities"));
31
+ /**
32
+ * The `unifi.ap.Group` data source can be used to retrieve the ID for an AP group by name.
33
+ *
34
+ * ## Example Usage
35
+ *
36
+ * ```typescript
37
+ * import * as pulumi from "@pulumi/pulumi";
38
+ * import * as unifi from "@pulumiverse/unifi";
39
+ *
40
+ * const _default = unifi.ap.getGroup({});
41
+ * ```
42
+ */
43
+ function getGroup(args, opts) {
44
+ args = args || {};
45
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
46
+ return pulumi.runtime.invoke("unifi:ap/getGroup:getGroup", {
47
+ "name": args.name,
48
+ "site": args.site,
49
+ }, opts);
50
+ }
51
+ exports.getGroup = getGroup;
52
+ /**
53
+ * The `unifi.ap.Group` data source can be used to retrieve the ID for an AP group by name.
54
+ *
55
+ * ## Example Usage
56
+ *
57
+ * ```typescript
58
+ * import * as pulumi from "@pulumi/pulumi";
59
+ * import * as unifi from "@pulumiverse/unifi";
60
+ *
61
+ * const _default = unifi.ap.getGroup({});
62
+ * ```
63
+ */
64
+ function getGroupOutput(args, opts) {
65
+ args = args || {};
66
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
67
+ return pulumi.runtime.invokeOutput("unifi:ap/getGroup:getGroup", {
68
+ "name": args.name,
69
+ "site": args.site,
70
+ }, opts);
71
+ }
72
+ exports.getGroupOutput = getGroupOutput;
73
+ //# sourceMappingURL=getGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGroup.js","sourceRoot":"","sources":["../../ap/getGroup.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AACzC,wDAA0C;AAE1C;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ,CAAC,IAAmB,EAAE,IAA2B;IACrE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE;QACvD,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAPD,4BAOC;AAiCD;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAAC,IAAyB,EAAE,IAAiC;IACvF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAC7D,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAPD,wCAOC"}
package/ap/group.d.ts ADDED
@@ -0,0 +1,106 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * The `unifi.ap.Group` resource manages Access Point groups in the UniFi controller.
4
+ *
5
+ * AP groups allow you to organize and manage multiple access points together. This resource allows you to create, update, and delete AP groups.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as unifi from "@pulumiverse/unifi";
12
+ *
13
+ * const example = new unifi.ap.Group("example", {
14
+ * name: "my-ap-group",
15
+ * deviceMacs: ["00:11:22:33:44:55"],
16
+ * });
17
+ * ```
18
+ *
19
+ * ## Import
20
+ *
21
+ * The `pulumi import` command can be used, for example:
22
+ *
23
+ * import from provider configured site
24
+ *
25
+ * ```sh
26
+ * $ pulumi import unifi:ap/group:Group example 5dc28e5e9106d105bdc87217
27
+ * ```
28
+ *
29
+ * import from another site
30
+ *
31
+ * ```sh
32
+ * $ pulumi import unifi:ap/group:Group example another-site:5dc28e5e9106d105bdc87217
33
+ * ```
34
+ */
35
+ export declare class Group extends pulumi.CustomResource {
36
+ /**
37
+ * Get an existing Group resource's state with the given name, ID, and optional extra
38
+ * properties used to qualify the lookup.
39
+ *
40
+ * @param name The _unique_ name of the resulting resource.
41
+ * @param id The _unique_ provider ID of the resource to lookup.
42
+ * @param state Any extra arguments used during the lookup.
43
+ * @param opts Optional settings to control the behavior of the CustomResource.
44
+ */
45
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: GroupState, opts?: pulumi.CustomResourceOptions): Group;
46
+ /**
47
+ * Returns true if the given object is an instance of Group. This is designed to work even
48
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
49
+ */
50
+ static isInstance(obj: any): obj is Group;
51
+ /**
52
+ * Set of AP device MAC addresses to include in this AP group. MAC addresses are case-insensitive and may use `:` or `-` separators (e.g. `aa:bb:cc:dd:ee:ff` and `AA-BB-CC-DD-EE-FF` are treated as the same address and produce no diff); the value is kept as written.
53
+ */
54
+ readonly deviceMacs: pulumi.Output<string[]>;
55
+ /**
56
+ * The name of the AP group.
57
+ */
58
+ readonly name: pulumi.Output<string>;
59
+ /**
60
+ * The name of the UniFi site where this resource should be applied. If not specified, the default site will be used.
61
+ */
62
+ readonly site: pulumi.Output<string>;
63
+ /**
64
+ * Create a Group resource with the given unique name, arguments, and options.
65
+ *
66
+ * @param name The _unique_ name of the resource.
67
+ * @param args The arguments to use to populate this resource's properties.
68
+ * @param opts A bag of options that control this resource's behavior.
69
+ */
70
+ constructor(name: string, args: GroupArgs, opts?: pulumi.CustomResourceOptions);
71
+ }
72
+ /**
73
+ * Input properties used for looking up and filtering Group resources.
74
+ */
75
+ export interface GroupState {
76
+ /**
77
+ * Set of AP device MAC addresses to include in this AP group. MAC addresses are case-insensitive and may use `:` or `-` separators (e.g. `aa:bb:cc:dd:ee:ff` and `AA-BB-CC-DD-EE-FF` are treated as the same address and produce no diff); the value is kept as written.
78
+ */
79
+ deviceMacs?: pulumi.Input<pulumi.Input<string>[] | undefined>;
80
+ /**
81
+ * The name of the AP group.
82
+ */
83
+ name?: pulumi.Input<string | undefined>;
84
+ /**
85
+ * The name of the UniFi site where this resource should be applied. If not specified, the default site will be used.
86
+ */
87
+ site?: pulumi.Input<string | undefined>;
88
+ }
89
+ /**
90
+ * The set of arguments for constructing a Group resource.
91
+ */
92
+ export interface GroupArgs {
93
+ /**
94
+ * Set of AP device MAC addresses to include in this AP group. MAC addresses are case-insensitive and may use `:` or `-` separators (e.g. `aa:bb:cc:dd:ee:ff` and `AA-BB-CC-DD-EE-FF` are treated as the same address and produce no diff); the value is kept as written.
95
+ */
96
+ deviceMacs: pulumi.Input<pulumi.Input<string>[]>;
97
+ /**
98
+ * The name of the AP group.
99
+ */
100
+ name?: pulumi.Input<string | undefined>;
101
+ /**
102
+ * The name of the UniFi site where this resource should be applied. If not specified, the default site will be used.
103
+ */
104
+ site?: pulumi.Input<string | undefined>;
105
+ }
106
+ //# sourceMappingURL=group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../ap/group.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,KAAM,SAAQ,MAAM,CAAC,cAAc;IAC5C;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,GAAG,KAAK;IAO5H;;;OAGG;WACW,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,KAAK;IAOhD;;OAEG;IACH,SAAwB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D;;OAEG;IACH,SAAwB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD;;OAEG;IACH,SAAwB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpD;;;;;;OAMG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB;CAqBjF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAC9D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC3C"}
package/ap/group.js ADDED
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.Group = void 0;
29
+ const pulumi = __importStar(require("@pulumi/pulumi"));
30
+ const utilities = __importStar(require("../utilities"));
31
+ /**
32
+ * The `unifi.ap.Group` resource manages Access Point groups in the UniFi controller.
33
+ *
34
+ * AP groups allow you to organize and manage multiple access points together. This resource allows you to create, update, and delete AP groups.
35
+ *
36
+ * ## Example Usage
37
+ *
38
+ * ```typescript
39
+ * import * as pulumi from "@pulumi/pulumi";
40
+ * import * as unifi from "@pulumiverse/unifi";
41
+ *
42
+ * const example = new unifi.ap.Group("example", {
43
+ * name: "my-ap-group",
44
+ * deviceMacs: ["00:11:22:33:44:55"],
45
+ * });
46
+ * ```
47
+ *
48
+ * ## Import
49
+ *
50
+ * The `pulumi import` command can be used, for example:
51
+ *
52
+ * import from provider configured site
53
+ *
54
+ * ```sh
55
+ * $ pulumi import unifi:ap/group:Group example 5dc28e5e9106d105bdc87217
56
+ * ```
57
+ *
58
+ * import from another site
59
+ *
60
+ * ```sh
61
+ * $ pulumi import unifi:ap/group:Group example another-site:5dc28e5e9106d105bdc87217
62
+ * ```
63
+ */
64
+ class Group extends pulumi.CustomResource {
65
+ /**
66
+ * Get an existing Group resource's state with the given name, ID, and optional extra
67
+ * properties used to qualify the lookup.
68
+ *
69
+ * @param name The _unique_ name of the resulting resource.
70
+ * @param id The _unique_ provider ID of the resource to lookup.
71
+ * @param state Any extra arguments used during the lookup.
72
+ * @param opts Optional settings to control the behavior of the CustomResource.
73
+ */
74
+ static get(name, id, state, opts) {
75
+ return new Group(name, state, { ...opts, id: id });
76
+ }
77
+ /** @internal */
78
+ static __pulumiType = 'unifi:ap/group:Group';
79
+ /**
80
+ * Returns true if the given object is an instance of Group. This is designed to work even
81
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
82
+ */
83
+ static isInstance(obj) {
84
+ if (obj === undefined || obj === null) {
85
+ return false;
86
+ }
87
+ return obj['__pulumiType'] === Group.__pulumiType;
88
+ }
89
+ constructor(name, argsOrState, opts) {
90
+ let resourceInputs = {};
91
+ opts = opts || {};
92
+ if (opts.id) {
93
+ const state = argsOrState;
94
+ resourceInputs["deviceMacs"] = state?.deviceMacs;
95
+ resourceInputs["name"] = state?.name;
96
+ resourceInputs["site"] = state?.site;
97
+ }
98
+ else {
99
+ const args = argsOrState;
100
+ if (args?.deviceMacs === undefined && !opts.urn) {
101
+ throw new Error("Missing required property 'deviceMacs'");
102
+ }
103
+ resourceInputs["deviceMacs"] = args?.deviceMacs;
104
+ resourceInputs["name"] = args?.name;
105
+ resourceInputs["site"] = args?.site;
106
+ }
107
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
108
+ super(Group.__pulumiType, name, resourceInputs, opts);
109
+ }
110
+ }
111
+ exports.Group = Group;
112
+ //# sourceMappingURL=group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../ap/group.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjF,uDAAyC;AACzC,wDAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAa,KAAM,SAAQ,MAAM,CAAC,cAAc;IAC5C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAkB,EAAE,IAAmC;QAChH,OAAO,IAAI,KAAK,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,gBAAgB;IACT,MAAM,CAAU,YAAY,GAAG,sBAAsB,CAAC;IAE7D;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;IACtD,CAAC;IAuBD,YAAY,IAAY,EAAE,WAAoC,EAAE,IAAmC;QAC/F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAqC,CAAC;YACpD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;SACxC;aAAM;YACH,MAAM,IAAI,GAAG,WAAoC,CAAC;YAClD,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;SACvC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;;AApEL,sBAqEC"}
package/ap/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { GetGroupArgs, GetGroupResult, GetGroupOutputArgs } from "./getGroup";
2
+ export declare const getGroup: typeof import("./getGroup").getGroup;
3
+ export declare const getGroupOutput: typeof import("./getGroup").getGroupOutput;
4
+ export { GroupArgs, GroupState } from "./group";
5
+ export type Group = import("./group").Group;
6
+ export declare const Group: typeof import("./group").Group;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ap/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9E,eAAO,MAAM,QAAQ,EAAE,cAAc,YAAY,EAAE,QAAsB,CAAC;AAC1E,eAAO,MAAM,cAAc,EAAE,cAAc,YAAY,EAAE,cAA4B,CAAC;AAGtF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,MAAM,MAAM,KAAK,GAAG,OAAO,SAAS,EAAE,KAAK,CAAC;AAC5C,eAAO,MAAM,KAAK,EAAE,cAAc,SAAS,EAAE,KAAmB,CAAC"}