@itentialopensource/adapter-netbox_v33 2.1.7 → 2.1.8

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.
package/TAB2.md CHANGED
@@ -1,4 +1,4 @@
1
- # Netbox_v33
1
+ # NetBox
2
2
 
3
3
  ## Table of Contents
4
4
 
@@ -11,42 +11,38 @@
11
11
  ## Specific Adapter Information
12
12
  ### Authentication
13
13
 
14
- This document will go through the steps for authenticating the Netbox_v33 adapter with Basic Authentication. Properly configuring the properties for an adapter in IAP is critical for getting the adapter online. You can read more about adapter authentication <a href="https://www.itential.com/automation-platform/integrations/adapters-resources/authentication/" target="_blank">HERE</a>.
14
+ This document will go through the steps for authenticating the NetBox adapter with authentication methods we have worked with in the past. Properly configuring the properties for an adapter in IAP is critical for getting the adapter online. You can read more about adapter authentication <a href="https://docs.itential.com/opensource/docs/authentication" target="_blank">HERE</a>.
15
15
 
16
- #### Basic Authentication
17
- The Netbox_v33 adapter requires Basic Authentication. If you change authentication methods, you should change this section accordingly and merge it back into the adapter repository.
16
+ Companies periodically change authentication methods to provide better security. As this happens this section should be updated and contributed/merge back into the adapter repository.
17
+
18
+ #### Static Token (APIKEY) Authentication
19
+ The NetBox adapter requires Static Token (APIKEY) Authentication. If you change authentication methods, you should change this section accordingly and merge it back into the adapter repository.
18
20
 
19
21
  STEPS
20
- 1. Ensure you have access to a Netbox_v33 server and that it is running
22
+ 1. Ensure you have access to a NetBox server and that it is running
21
23
  2. Follow the steps in the README.md to import the adapter into IAP if you have not already done so
22
24
  3. Use the properties below for the ```properties.authentication``` field
23
25
  ```json
24
26
  "authentication": {
25
- "auth_method": "basic user_password",
26
- "username": "<username>",
27
- "password": "<password>",
28
- "token": "",
29
- "token_timeout": 1800000,
30
- "token_cache": "local",
31
- "invalid_token_error": 401,
27
+ "auth_method": "static_token",
28
+ "token": "<token>",
32
29
  "auth_field": "header.headers.Authorization",
33
- "auth_field_format": "Basic {b64}{username}:{password}{/b64}",
34
- "auth_logging": false,
35
- "client_id": "",
36
- "client_secret": "",
37
- "grant_type": ""
30
+ "auth_field_format": "Token {token}",
31
+ "auth_logging": false
38
32
  }
39
33
  ```
34
+ you can leave all of the other properties in the authentication section, they will not be used when the auth_method is static_token.<br>
40
35
  4. Restart the adapter. If your properties were set correctly, the adapter should go online.
41
36
 
42
37
  #### Troubleshooting
43
- - Make sure you copied over the correct username and password.
38
+ - Make sure you copied over the correct token.
44
39
  - Turn on debug level logs for the adapter in IAP Admin Essentials.
45
40
  - Turn on auth_logging for the adapter in IAP Admin Essentials (adapter properties).
46
41
  - Investigate the logs - in particular:
47
42
  - The FULL REQUEST log to make sure the proper headers are being sent with the request.
48
43
  - The FULL BODY log to make sure the payload is accurate.
49
44
  - The CALL RETURN log to see what the other system is telling us.
45
+ - Credentials should be ** masked ** by the adapter so make sure you verify the username and password - including that there are erroneous spaces at the front or end.
50
46
  - Remember when you are done to turn auth_logging off as you do not want to log credentials.
51
47
 
52
48
  ### Sample Properties
@@ -67,7 +63,7 @@ Sample Properties can be used to help you configure the adapter in the Itential
67
63
  "stub": true,
68
64
  "protocol": "https",
69
65
  "authentication": {
70
- "auth_method": "no_authentication",
66
+ "auth_method": "static_token",
71
67
  "username": "username",
72
68
  "password": "password",
73
69
  "token": "token",
@@ -75,7 +71,7 @@ Sample Properties can be used to help you configure the adapter in the Itential
75
71
  "token_cache": "local",
76
72
  "invalid_token_error": 401,
77
73
  "auth_field": "header.headers.Authorization",
78
- "auth_field_format": "Basic {b64}{username}:{password}{/b64}",
74
+ "auth_field_format": "Token {token}",
79
75
  "auth_logging": false,
80
76
  "client_id": "",
81
77
  "client_secret": "",
@@ -169,30 +165,32 @@ Sample Properties can be used to help you configure the adapter in the Itential
169
165
  }
170
166
  },
171
167
  "devicebroker": {
168
+ "enabled": false,
172
169
  "getDevice": [
173
170
  {
174
- "path": "/get/devices/{id}",
171
+ "path": "/not/mapped",
175
172
  "method": "GET",
176
173
  "query": {},
177
174
  "body": {},
178
175
  "headers": {},
179
176
  "handleFailure": "ignore",
180
177
  "requestFields": {
181
- "id": "name"
178
+ "insample": "{port}"
182
179
  },
183
180
  "responseDatakey": "",
184
181
  "responseFields": {
185
- "name": "host",
186
- "ostype": "os",
187
- "ostypePrefix": "system-",
188
- "ipaddress": "attributes.ipaddr",
189
- "port": "443"
182
+ "name": "{this}{||}{that}",
183
+ "ostype": "{osfield}",
184
+ "ostypePrefix": "meraki-",
185
+ "port": "{port}",
186
+ "ipaddress": "{ip_addr}",
187
+ "serial": "{serial}"
190
188
  }
191
189
  }
192
190
  ],
193
191
  "getDevicesFiltered": [
194
192
  {
195
- "path": "/get/devices",
193
+ "path": "/not/mapped",
196
194
  "method": "GET",
197
195
  "pagination": {
198
196
  "offsetVar": "",
@@ -207,42 +205,44 @@ Sample Properties can be used to help you configure the adapter in the Itential
207
205
  "requestFields": {},
208
206
  "responseDatakey": "",
209
207
  "responseFields": {
210
- "name": "host",
211
- "ostype": "os",
212
- "ostypePrefix": "system-",
213
- "ipaddress": "attributes.ipaddr",
214
- "port": "443"
208
+ "name": "{this}{||}{that}",
209
+ "ostype": "{osfield}",
210
+ "ostypePrefix": "meraki-",
211
+ "port": "{port}",
212
+ "ipaddress": "{ip_addr}",
213
+ "serial": "{serial}",
214
+ "id": "{myid}"
215
215
  }
216
216
  }
217
217
  ],
218
218
  "isAlive": [
219
219
  {
220
- "path": "/get/devices/{id}/status",
220
+ "path": "/not/mapped/{devID}",
221
221
  "method": "GET",
222
222
  "query": {},
223
223
  "body": {},
224
224
  "headers": {},
225
225
  "handleFailure": "ignore",
226
226
  "requestFields": {
227
- "id": "name"
227
+ "devID": "{id}"
228
228
  },
229
229
  "responseDatakey": "",
230
230
  "responseFields": {
231
- "status": "status",
232
- "statusValue": "online"
231
+ "status": "return2xx",
232
+ "statusValue": "AD.200"
233
233
  }
234
234
  }
235
235
  ],
236
236
  "getConfig": [
237
237
  {
238
- "path": "/get/devices/{id}/configPart1",
238
+ "path": "/not/mapped/{devID}",
239
239
  "method": "GET",
240
240
  "query": {},
241
241
  "body": {},
242
242
  "headers": {},
243
243
  "handleFailure": "ignore",
244
244
  "requestFields": {
245
- "id": "name"
245
+ "devID": "{id}"
246
246
  },
247
247
  "responseDatakey": "",
248
248
  "responseFields": {}
@@ -250,7 +250,7 @@ Sample Properties can be used to help you configure the adapter in the Itential
250
250
  ],
251
251
  "getCount": [
252
252
  {
253
- "path": "/get/devices",
253
+ "path": "/not/mapped",
254
254
  "method": "GET",
255
255
  "query": {},
256
256
  "body": {},
@@ -266,15 +266,15 @@ Sample Properties can be used to help you configure the adapter in the Itential
266
266
  "enabled": false,
267
267
  "entities": [
268
268
  {
269
- "entityType": "",
270
- "frequency": 1440,
269
+ "entityType": "device",
270
+ "frequency": 3600,
271
271
  "flushOnFail": false,
272
- "limit": 1000,
272
+ "limit": 10000,
273
273
  "retryAttempts": 5,
274
274
  "sort": true,
275
275
  "populate": [
276
276
  {
277
- "path": "",
277
+ "path": "/not/mapped",
278
278
  "method": "GET",
279
279
  "pagination": {
280
280
  "offsetVar": "",
@@ -288,7 +288,15 @@ Sample Properties can be used to help you configure the adapter in the Itential
288
288
  "handleFailure": "ignore",
289
289
  "requestFields": {},
290
290
  "responseDatakey": "",
291
- "responseFields": {}
291
+ "responseFields": {
292
+ "name": "{this}{||}{that}",
293
+ "ostype": "{osfield}",
294
+ "ostypePrefix": "meraki-",
295
+ "port": "{port}",
296
+ "ipaddress": "{ip_addr}",
297
+ "serial": "{serial}",
298
+ "id": "{myid}"
299
+ }
292
300
  }
293
301
  ],
294
302
  "cachedTasks": [
package/metadata.json CHANGED
@@ -37,27 +37,75 @@
37
37
  "isDeprecated": false
38
38
  },
39
39
  "brokerSince": "",
40
+ "authMethods": [
41
+ {
42
+ "type": "API Key",
43
+ "primary": true
44
+ }
45
+ ],
40
46
  "documentation": {
41
47
  "storeLink": "",
42
48
  "npmLink": "https://www.npmjs.com/package/@itentialopensource/adapter-netbox_v33",
43
- "repoLink": "https://gitlab.com/itentialopensource/adapters/inventory/adapter-netbox_v33",
49
+ "repoLink": "https://gitlab.com/itentialopensource/adapters/adapter-netbox_v33",
44
50
  "docLink": "https://docs.itential.com/opensource/docs/netbox-v33",
45
- "demoLinks": [],
46
- "trainingLinks": [],
51
+ "demoLinks": [
52
+ {
53
+ "title": "Itential & NetBox: Evolving from a Source of Truth to Automation & Orchestration (ONUG)",
54
+ "link": "https://www.itential.com/resource/demo/evolving-from-a-source-of-truth-to-automation-orchestration-with-netbox-onug/"
55
+ },
56
+ {
57
+ "title": "Integrating NetBox as a Source of Truth for Network Automation",
58
+ "link": "https://www.itential.com/resource/demo/integrating-netbox-as-a-source-of-truth-for-network-automation/"
59
+ },
60
+ {
61
+ "title": "Itential’s No-Code Integration with NetBox",
62
+ "link": "https://www.itential.com/solutions/integrations/netbox-network-automation/"
63
+ }
64
+ ],
65
+ "trainingLinks": [
66
+ {
67
+ "title": "Itential Academy",
68
+ "link": "https://www.itential.com/itential-academy/"
69
+ }
70
+ ],
47
71
  "faqLink": "https://docs.itential.com/opensource/docs/troubleshooting-an-adapter",
48
72
  "contributeLink": "https://gitlab.com/itentialopensource/adapters/contributing-guide",
49
73
  "issueLink": "https://itential.atlassian.net/servicedesk/customer/portals",
50
74
  "webLink": "",
51
- "vendorLink": "",
52
- "productLink": "",
53
- "apiLinks": []
75
+ "vendorLink": "https://netbox.dev/",
76
+ "productLink": "https://netbox.dev/",
77
+ "apiLinks": [
78
+ {
79
+ "title": "NetBox REST API",
80
+ "link": "https://demo.netbox.dev/api/schema/swagger-ui/",
81
+ "public": true
82
+ },
83
+ {
84
+ "title": "NetBox Sandbox",
85
+ "link": "https://demo.netbox.dev/",
86
+ "public": true
87
+ }
88
+ ]
54
89
  },
55
90
  "assets": [],
56
91
  "relatedItems": {
57
92
  "adapters": [],
58
93
  "integrations": [],
59
94
  "ecosystemApplications": [],
60
- "workflowProjects": [],
95
+ "workflowProjects": [
96
+ {
97
+ "name": "NetBox - REST",
98
+ "webName": "NetBox IP Address Management",
99
+ "overview": "Project with workflows for NetBox using REST protocol for managing IP Address and Prefix",
100
+ "isDependency": false,
101
+ "versions": [
102
+ "^1.0.6"
103
+ ],
104
+ "repoLink": "https://gitlab.com/itentialopensource/pre-built-automations/netbox-rest",
105
+ "docLink": "",
106
+ "webLink": "https://www.itential.com/automations/netbox-ip-address-management/"
107
+ }
108
+ ],
61
109
  "transformationProjects": [],
62
110
  "exampleProjects": []
63
111
  }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@itentialopensource/adapter-netbox_v33",
3
- "version": "2.1.7",
3
+ "version": "2.1.8",
4
4
  "description": "This adapter integrates with system described as: Netbox v3.3",
5
5
  "main": "adapter.js",
6
6
  "wizardVersion": "2.44.7",
7
- "engineVersion": "1.67.14",
7
+ "engineVersion": "1.67.19",
8
8
  "adapterType": "http",
9
9
  "scripts": {
10
10
  "artifactize": "npm i && node utils/packModificationScript.js",
@@ -15,7 +15,6 @@
15
15
  "test:baseunit": "mocha test/unit/adapterBaseTestUnit.js --LOG=error",
16
16
  "test:unit": "mocha test/unit/adapterTestUnit.js --LOG=error",
17
17
  "test:integration": "mocha test/integration/adapterTestIntegration.js --LOG=error",
18
- "test:cover": "nyc --reporter html --reporter text mocha --reporter dot test/*",
19
18
  "test": "npm run test:baseunit && npm run test:unit && npm run test:integration",
20
19
  "adapter:install": "npm i && node utils/tbScript.js install",
21
20
  "adapter:checkMigrate": "node utils/checkMigrate.js",
@@ -43,15 +42,15 @@
43
42
  ],
44
43
  "license": "Apache-2.0",
45
44
  "engines": {
46
- "node": ">= 8.0.0",
45
+ "node": ">= 14.0.0",
47
46
  "npm": ">= 6.0.0"
48
47
  },
49
48
  "repository": {
50
49
  "type": "git",
51
- "url": "git@gitlab.com:itentialopensource/adapters/inventory/adapter-netbox_v33.git"
50
+ "url": "git@gitlab.com:itentialopensource/adapters/adapter-netbox_v33.git"
52
51
  },
53
52
  "author": "Itential",
54
- "homepage": "https://gitlab.com/itentialopensource/adapters/inventory/adapter-netbox_v33#readme",
53
+ "homepage": "https://gitlab.com/itentialopensource/adapters/adapter-netbox_v33#readme",
55
54
  "dependencies": {
56
55
  "@itentialopensource/adapter-utils": "^5.3.10",
57
56
  "acorn": "^8.10.0",
@@ -64,7 +63,6 @@
64
63
  "mocha": "^10.3.0",
65
64
  "mocha-param": "^2.0.1",
66
65
  "mongodb": "^4.16.0",
67
- "nyc": "^15.1.0",
68
66
  "ping": "^0.4.4",
69
67
  "prompts": "^2.4.2",
70
68
  "readline-sync": "^1.4.10",
@@ -945,6 +945,11 @@
945
945
  "devicebroker": {
946
946
  "type": "object",
947
947
  "properties": {
948
+ "enabled": {
949
+ "type": "boolean",
950
+ "description": "Whether or not the device broker calls have been mapped",
951
+ "default": false
952
+ },
948
953
  "getDevice": {
949
954
  "type": "array",
950
955
  "description": "Broker call(s) to getDevice",
Binary file
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "2.1.6",
3
- "configLines": 185571,
2
+ "version": "2.1.7",
3
+ "configLines": 185576,
4
4
  "scriptLines": 1783,
5
5
  "codeLines": 79704,
6
- "testLines": 52921,
6
+ "testLines": 52920,
7
7
  "testCases": 2758,
8
- "totalCodeLines": 134408,
8
+ "totalCodeLines": 134407,
9
9
  "wfTasks": 896
10
10
  }
@@ -0,0 +1,120 @@
1
+ {
2
+ "errors": [],
3
+ "statistics": [
4
+ {
5
+ "owner": "errorJson",
6
+ "description": "New adapter errors available for use",
7
+ "value": 0
8
+ },
9
+ {
10
+ "owner": "errorJson",
11
+ "description": "Adapter errors no longer available for use",
12
+ "value": 0
13
+ },
14
+ {
15
+ "owner": "errorJson",
16
+ "description": "Adapter errors that have been updated (e.g. recommendation changes)",
17
+ "value": 31
18
+ },
19
+ {
20
+ "owner": "packageJson",
21
+ "description": "Number of production dependencies",
22
+ "value": 16
23
+ },
24
+ {
25
+ "owner": "packageJson",
26
+ "description": "Number of development dependencies",
27
+ "value": 6
28
+ },
29
+ {
30
+ "owner": "packageJson",
31
+ "description": "Number of npm scripts",
32
+ "value": 21
33
+ },
34
+ {
35
+ "owner": "packageJson",
36
+ "description": "Runtime Library dependency",
37
+ "value": "^5.3.10"
38
+ },
39
+ {
40
+ "owner": "propertiesSchemaJson",
41
+ "description": "Adapter properties defined in the propertiesSchema file",
42
+ "value": 78
43
+ },
44
+ {
45
+ "owner": "markdown",
46
+ "description": "Number of lines in the README.md",
47
+ "value": 344
48
+ },
49
+ {
50
+ "owner": "markdown",
51
+ "description": "Number of lines in the SUMMARY.md",
52
+ "value": 9
53
+ },
54
+ {
55
+ "owner": "markdown",
56
+ "description": "Number of lines in the PROPERTIES.md",
57
+ "value": 647
58
+ },
59
+ {
60
+ "owner": "markdown",
61
+ "description": "Number of lines in the TROUBLESHOOT.md",
62
+ "value": 48
63
+ },
64
+ {
65
+ "owner": "markdown",
66
+ "description": "Number of lines in the ENHANCE.md",
67
+ "value": 70
68
+ },
69
+ {
70
+ "owner": "markdown",
71
+ "description": "Number of lines in the BROKER.md",
72
+ "value": 70
73
+ },
74
+ {
75
+ "owner": "unitTestJS",
76
+ "description": "Number of lines of code in unit tests",
77
+ "value": 26732
78
+ },
79
+ {
80
+ "owner": "unitTestJS",
81
+ "description": "Number of unit tests",
82
+ "value": 1808
83
+ },
84
+ {
85
+ "owner": "integrationTestJS",
86
+ "description": "Number of lines of code in integration tests",
87
+ "value": 24936
88
+ },
89
+ {
90
+ "owner": "integrationTestJS",
91
+ "description": "Number of integration tests",
92
+ "value": 880
93
+ },
94
+ {
95
+ "owner": "staticFile",
96
+ "description": "Number of lines of code in adapterBase.js",
97
+ "value": 1453
98
+ },
99
+ {
100
+ "owner": "staticFile",
101
+ "description": "Number of static files added",
102
+ "value": 36
103
+ },
104
+ {
105
+ "owner": "Overall",
106
+ "description": "Total lines of Code",
107
+ "value": 53121
108
+ },
109
+ {
110
+ "owner": "Overall",
111
+ "description": "Total Tests",
112
+ "value": 2688
113
+ },
114
+ {
115
+ "owner": "Overall",
116
+ "description": "Total Files",
117
+ "value": 6
118
+ }
119
+ ]
120
+ }
@@ -14,7 +14,7 @@
14
14
  "stub": true,
15
15
  "protocol": "https",
16
16
  "authentication": {
17
- "auth_method": "no_authentication",
17
+ "auth_method": "static_token",
18
18
  "username": "username",
19
19
  "password": "password",
20
20
  "token": "token",
@@ -22,7 +22,7 @@
22
22
  "token_cache": "local",
23
23
  "invalid_token_error": 401,
24
24
  "auth_field": "header.headers.Authorization",
25
- "auth_field_format": "Basic {b64}{username}:{password}{/b64}",
25
+ "auth_field_format": "Token {token}",
26
26
  "auth_logging": false,
27
27
  "client_id": "",
28
28
  "client_secret": "",
@@ -116,30 +116,32 @@
116
116
  }
117
117
  },
118
118
  "devicebroker": {
119
+ "enabled": false,
119
120
  "getDevice": [
120
121
  {
121
- "path": "/get/devices/{id}",
122
+ "path": "/not/mapped",
122
123
  "method": "GET",
123
124
  "query": {},
124
125
  "body": {},
125
126
  "headers": {},
126
127
  "handleFailure": "ignore",
127
128
  "requestFields": {
128
- "id": "name"
129
+ "insample": "{port}"
129
130
  },
130
131
  "responseDatakey": "",
131
132
  "responseFields": {
132
- "name": "host",
133
- "ostype": "os",
134
- "ostypePrefix": "system-",
135
- "ipaddress": "attributes.ipaddr",
136
- "port": "443"
133
+ "name": "{this}{||}{that}",
134
+ "ostype": "{osfield}",
135
+ "ostypePrefix": "meraki-",
136
+ "port": "{port}",
137
+ "ipaddress": "{ip_addr}",
138
+ "serial" : "{serial}"
137
139
  }
138
140
  }
139
141
  ],
140
142
  "getDevicesFiltered": [
141
143
  {
142
- "path": "/get/devices",
144
+ "path": "/not/mapped",
143
145
  "method": "GET",
144
146
  "pagination": {
145
147
  "offsetVar": "",
@@ -154,42 +156,44 @@
154
156
  "requestFields": {},
155
157
  "responseDatakey": "",
156
158
  "responseFields": {
157
- "name": "host",
158
- "ostype": "os",
159
- "ostypePrefix": "system-",
160
- "ipaddress": "attributes.ipaddr",
161
- "port": "443"
159
+ "name": "{this}{||}{that}",
160
+ "ostype": "{osfield}",
161
+ "ostypePrefix": "meraki-",
162
+ "port": "{port}",
163
+ "ipaddress": "{ip_addr}",
164
+ "serial" : "{serial}",
165
+ "id": "{myid}"
162
166
  }
163
167
  }
164
168
  ],
165
169
  "isAlive": [
166
170
  {
167
- "path": "/get/devices/{id}/status",
171
+ "path": "/not/mapped/{devID}",
168
172
  "method": "GET",
169
173
  "query": {},
170
174
  "body": {},
171
175
  "headers": {},
172
176
  "handleFailure": "ignore",
173
177
  "requestFields": {
174
- "id": "name"
178
+ "devID": "{id}"
175
179
  },
176
180
  "responseDatakey": "",
177
181
  "responseFields": {
178
- "status": "status",
179
- "statusValue": "online"
182
+ "status": "return2xx",
183
+ "statusValue": "AD.200"
180
184
  }
181
185
  }
182
186
  ],
183
187
  "getConfig": [
184
188
  {
185
- "path": "/get/devices/{id}/configPart1",
189
+ "path": "/not/mapped/{devID}",
186
190
  "method": "GET",
187
191
  "query": {},
188
192
  "body": {},
189
193
  "headers": {},
190
194
  "handleFailure": "ignore",
191
195
  "requestFields": {
192
- "id": "name"
196
+ "devID": "{id}"
193
197
  },
194
198
  "responseDatakey": "",
195
199
  "responseFields": {}
@@ -197,7 +201,7 @@
197
201
  ],
198
202
  "getCount": [
199
203
  {
200
- "path": "/get/devices",
204
+ "path": "/not/mapped",
201
205
  "method": "GET",
202
206
  "query": {},
203
207
  "body": {},
@@ -213,15 +217,15 @@
213
217
  "enabled": false,
214
218
  "entities": [
215
219
  {
216
- "entityType": "",
217
- "frequency": 1440,
220
+ "entityType": "device",
221
+ "frequency": 3600,
218
222
  "flushOnFail": false,
219
- "limit": 1000,
223
+ "limit": 10000,
220
224
  "retryAttempts": 5,
221
225
  "sort": true,
222
226
  "populate": [
223
227
  {
224
- "path": "",
228
+ "path": "/not/mapped",
225
229
  "method": "GET",
226
230
  "pagination": {
227
231
  "offsetVar": "",
@@ -235,7 +239,15 @@
235
239
  "handleFailure": "ignore",
236
240
  "requestFields": {},
237
241
  "responseDatakey": "",
238
- "responseFields": {}
242
+ "responseFields": {
243
+ "name": "{this}{||}{that}",
244
+ "ostype": "{osfield}",
245
+ "ostypePrefix": "meraki-",
246
+ "port": "{port}",
247
+ "ipaddress": "{ip_addr}",
248
+ "serial" : "{serial}",
249
+ "id": "{myid}"
250
+ }
239
251
  }
240
252
  ],
241
253
  "cachedTasks": [