blob: 3a392f9a46197f3a969c15aefbcf1dda758cf3b4 [file] [log] [blame]
Yoshi Automation Botb6971b02020-11-26 17:16:03 -08001{
2 "schemas": {
3 "SasPortalEmpty": {
4 "id": "SasPortalEmpty",
5 "properties": {},
6 "type": "object",
7 "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`."
8 },
9 "SasPortalOperation": {
10 "properties": {
11 "name": {
12 "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
13 "type": "string"
14 },
15 "done": {
16 "type": "boolean",
17 "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."
18 },
19 "response": {
20 "additionalProperties": {
21 "type": "any",
22 "description": "Properties of the object. Contains field @type with type URL."
23 },
24 "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
25 "type": "object"
26 },
27 "metadata": {
28 "type": "object",
29 "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
30 "additionalProperties": {
31 "type": "any",
32 "description": "Properties of the object. Contains field @type with type URL."
33 }
34 },
35 "error": {
36 "description": "The error result of the operation in case of failure or cancellation.",
37 "$ref": "SasPortalStatus"
38 }
39 },
40 "type": "object",
41 "description": "This resource represents a long-running operation that is the result of a network API call.",
42 "id": "SasPortalOperation"
43 },
44 "SasPortalTestPermissionsResponse": {
45 "description": "Response message for `TestPermissions` method.",
46 "type": "object",
47 "id": "SasPortalTestPermissionsResponse",
48 "properties": {
49 "permissions": {
50 "type": "array",
51 "items": {
52 "type": "string"
53 },
54 "description": "A set of permissions that the caller is allowed."
55 }
56 }
57 },
58 "SasPortalBulkCreateDeviceResponse": {
59 "type": "object",
60 "id": "SasPortalBulkCreateDeviceResponse",
61 "properties": {
62 "devices": {
63 "items": {
64 "$ref": "SasPortalDevice"
65 },
66 "description": "Required. The devices that were imported.",
67 "type": "array"
68 }
69 },
70 "description": "Response for BulkCreateDevice method."
71 },
72 "SasPortalBulkCreateDeviceRequest": {
73 "type": "object",
74 "description": "Request for BulkCreateDevice method.",
75 "id": "SasPortalBulkCreateDeviceRequest",
76 "properties": {
77 "csv": {
78 "description": "Required. A csv with each row representing a [device]. Each row must conform to the regulations described on CreateDeviceRequest's device field.",
79 "type": "string"
80 }
81 }
82 },
83 "SasPortalUpdateSignedDeviceRequest": {
84 "properties": {
85 "encodedDevice": {
86 "type": "string",
87 "format": "byte",
88 "description": "Required. The JSON Web Token signed using a CPI private key. Payload must be the JSON encoding of the device. The user_id field must be set."
89 },
90 "installerId": {
91 "type": "string",
92 "description": "Required. Unique installer ID (CPI ID) from the Certified Professional Installers database."
93 }
94 },
95 "type": "object",
96 "description": "Request for UpdateSignedDevice method.",
97 "id": "SasPortalUpdateSignedDeviceRequest"
98 },
99 "SasPortalListNodesResponse": {
100 "id": "SasPortalListNodesResponse",
101 "properties": {
102 "nodes": {
103 "type": "array",
104 "description": "The nodes that match the request.",
105 "items": {
106 "$ref": "SasPortalNode"
107 }
108 },
109 "nextPageToken": {
110 "description": "A pagination token returned from a previous call to ListNodes method that indicates from where listing should continue. If the field is missing or empty, it means there is no more nodes.",
111 "type": "string"
112 }
113 },
114 "description": "Response for ListNodes method.",
115 "type": "object"
116 },
117 "SasPortalTestPermissionsRequest": {
118 "properties": {
119 "resource": {
120 "description": "Required. The resource for which the permissions are being requested.",
121 "type": "string"
122 },
123 "permissions": {
124 "description": "The set of permissions to check for the `resource`.",
125 "type": "array",
126 "items": {
127 "type": "string"
128 }
129 }
130 },
131 "description": "Request message for `TestPermissions` method.",
132 "type": "object",
133 "id": "SasPortalTestPermissionsRequest"
134 },
135 "SasPortalDevice": {
136 "type": "object",
137 "properties": {
138 "activeConfig": {
139 "description": "Output only. Current configuration of the device as registered to the SAS.",
140 "$ref": "SasPortalDeviceConfig"
141 },
142 "grants": {
143 "items": {
144 "$ref": "SasPortalDeviceGrant"
145 },
146 "description": "Output only. Grants held by the device.",
147 "type": "array"
148 },
149 "name": {
150 "description": "Output only. The resource path name.",
151 "type": "string"
152 },
153 "displayName": {
154 "description": "Device display name.",
155 "type": "string"
156 },
157 "serialNumber": {
158 "description": "A serial number assigned to the device by the device manufacturer.",
159 "type": "string"
160 },
161 "preloadedConfig": {
162 "description": "Configuration of the device, as specified via SAS Portal API.",
163 "$ref": "SasPortalDeviceConfig"
164 },
165 "deviceMetadata": {
166 "$ref": "SasPortalDeviceMetadata",
167 "description": "Device parameters that can be overridden by both SAS Portal and SAS registration requests."
168 },
169 "fccId": {
170 "description": "The FCC identifier of the device.",
171 "type": "string"
172 },
173 "state": {
174 "enumDescriptions": [
175 "Unspecified state.",
176 "Device created in the SAS Portal, however, not yet registered with SAS.",
177 "Device registered with SAS.",
178 "Device de-registered with SAS."
179 ],
180 "enum": [
181 "DEVICE_STATE_UNSPECIFIED",
182 "RESERVED",
183 "REGISTERED",
184 "DEREGISTERED"
185 ],
186 "type": "string",
187 "description": "Output only. Device state."
188 }
189 },
190 "id": "SasPortalDevice"
191 },
192 "SasPortalMoveDeploymentRequest": {
193 "type": "object",
194 "description": "Request for MoveDeployment method.",
195 "id": "SasPortalMoveDeploymentRequest",
196 "properties": {
197 "destination": {
198 "type": "string",
199 "description": "Required. The name of the new parent resource Node or Customer to reparent the deployment under."
200 }
201 }
202 },
203 "SasPortalDeviceAirInterface": {
204 "description": "Information about the device's air interface.",
205 "properties": {
206 "supportedSpec": {
207 "type": "string",
208 "description": "This field is related to the radioTechnology field and provides the air interface specification that the CBSD is compliant with at the time of registration. Optional"
209 },
210 "radioTechnology": {
211 "type": "string",
212 "enumDescriptions": [
213 "",
214 "",
215 "",
216 "",
217 "",
218 "",
219 "",
220 "",
221 ""
222 ],
223 "description": "This field specifies the radio access technology that is used for the CBSD. Conditional",
224 "enum": [
225 "RADIO_TECHNOLOGY_UNSPECIFIED",
226 "E_UTRA",
227 "CAMBIUM_NETWORKS",
228 "FOUR_G_BBW_SAA_1",
229 "NR",
230 "DOODLE_CBRS",
231 "CW",
232 "REDLINE",
233 "TARANA_WIRELESS"
234 ]
235 }
236 },
237 "id": "SasPortalDeviceAirInterface",
238 "type": "object"
239 },
240 "SasPortalNode": {
241 "id": "SasPortalNode",
242 "type": "object",
243 "properties": {
244 "displayName": {
245 "type": "string",
246 "description": "The node's display name."
247 },
248 "name": {
249 "type": "string",
250 "description": "Output only. Resource name."
251 },
252 "sasUserIds": {
253 "items": {
254 "type": "string"
255 },
256 "description": "User ids used by the devices belonging to this node.",
257 "type": "array"
258 }
259 },
260 "description": "The Node."
261 },
262 "SasPortalDeviceConfig": {
263 "properties": {
264 "state": {
265 "enumDescriptions": [
266 "",
267 "",
268 ""
269 ],
270 "type": "string",
271 "description": "State of the configuration.",
272 "enum": [
273 "DEVICE_CONFIG_STATE_UNSPECIFIED",
274 "DRAFT",
275 "FINAL"
276 ]
277 },
278 "callSign": {
279 "description": "The call sign of the device operator.",
280 "type": "string"
281 },
282 "measurementCapabilities": {
283 "description": "Measurement reporting capabilities of the device.",
284 "items": {
285 "enum": [
286 "MEASUREMENT_CAPABILITY_UNSPECIFIED",
287 "MEASUREMENT_CAPABILITY_RECEIVED_POWER_WITH_GRANT",
288 "MEASUREMENT_CAPABILITY_RECEIVED_POWER_WITHOUT_GRANT"
289 ],
290 "type": "string",
291 "enumDescriptions": [
292 "",
293 "",
294 ""
295 ]
296 },
297 "type": "array"
298 },
299 "isSigned": {
300 "type": "boolean",
301 "description": "Output-only. Whether the configuration has been signed by a CPI."
302 },
303 "userId": {
304 "type": "string",
305 "description": "The identifier of a device user."
306 },
307 "category": {
308 "enum": [
309 "DEVICE_CATEGORY_UNSPECIFIED",
310 "DEVICE_CATEGORY_A",
311 "DEVICE_CATEGORY_B"
312 ],
313 "enumDescriptions": [
314 "Unspecified device category.",
315 "Category A.",
316 "Category B."
317 ],
318 "description": "FCC category of the device.",
319 "type": "string"
320 },
321 "updateTime": {
322 "format": "google-datetime",
323 "description": "Output-only. The last time the device configuration was edited.",
324 "type": "string"
325 },
326 "model": {
327 "description": "Information about this device model.",
328 "$ref": "SasPortalDeviceModel"
329 },
330 "installationParams": {
331 "$ref": "SasPortalInstallationParams",
332 "description": "Installation parameters for the device."
333 },
334 "airInterface": {
335 "description": "Information about this device's air interface.",
336 "$ref": "SasPortalDeviceAirInterface"
337 }
338 },
339 "type": "object",
340 "description": "Information about the device configuration.",
341 "id": "SasPortalDeviceConfig"
342 },
343 "SasPortalDeviceGrant": {
344 "id": "SasPortalDeviceGrant",
345 "description": "Device grant. It is an authorization provided by the Spectrum Access System to a device to transmit using specified operating parameters after a successful heartbeat by the device.",
346 "type": "object",
347 "properties": {
348 "moveList": {
349 "type": "array",
350 "description": "The DPA move lists on which this grant appears.",
351 "items": {
352 "$ref": "SasPortalDpaMoveList"
353 }
354 },
355 "channelType": {
356 "type": "string",
357 "enumDescriptions": [
358 "",
359 "",
360 ""
361 ],
362 "description": "Type of channel used.",
363 "enum": [
364 "CHANNEL_TYPE_UNSPECIFIED",
365 "CHANNEL_TYPE_GAA",
366 "CHANNEL_TYPE_PAL"
367 ]
368 },
369 "frequencyRange": {
370 "description": "The transmission frequency range.",
371 "$ref": "SasPortalFrequencyRange"
372 },
373 "suspensionReason": {
374 "items": {
375 "type": "string"
376 },
377 "type": "array",
378 "description": "If the grant is suspended, the reason(s) for suspension."
379 },
380 "expireTime": {
381 "description": "The expiration time of the grant.",
382 "format": "google-datetime",
383 "type": "string"
384 },
385 "grantId": {
386 "description": "Grant Id.",
387 "type": "string"
388 },
389 "state": {
390 "enum": [
391 "GRANT_STATE_UNSPECIFIED",
392 "GRANT_STATE_GRANTED",
393 "GRANT_STATE_TERMINATED",
394 "GRANT_STATE_SUSPENDED",
395 "GRANT_STATE_AUTHORIZED",
396 "GRANT_STATE_EXPIRED"
397 ],
398 "enumDescriptions": [
399 "",
400 "The grant has been granted but the device is not heartbeating on it.",
401 "The grant has been terminated by the SAS.",
402 "The grant has been suspended by the SAS.",
403 "The device is currently transmitting.",
404 "The grant has expired."
405 ],
406 "description": "State of the grant.",
407 "type": "string"
408 },
409 "maxEirp": {
410 "type": "number",
411 "format": "double",
412 "description": "Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the grant. The maximum EIRP is in units of dBm/MHz. The value of maxEirp represents the average (RMS) EIRP that would be measured by the procedure defined in FCC part 96.41(e)(3)."
413 }
414 }
415 },
416 "SasPortalGenerateSecretRequest": {
417 "id": "SasPortalGenerateSecretRequest",
418 "properties": {},
419 "type": "object",
420 "description": "Request for GenerateSecret method] [spectrum.sas.portal.v1alpha1.DeviceManager.GenerateSecret]."
421 },
422 "SasPortalSetPolicyRequest": {
423 "type": "object",
424 "description": "Request message for `SetPolicy` method.",
425 "properties": {
426 "policy": {
427 "$ref": "SasPortalPolicy",
428 "description": "Required. The policy to be applied to the `resource`."
429 },
430 "resource": {
431 "description": "Required. The resource for which the policy is being specified. This policy replaces any existing policy.",
432 "type": "string"
433 }
434 },
435 "id": "SasPortalSetPolicyRequest"
436 },
437 "SasPortalCustomer": {
438 "type": "object",
439 "description": "Entity representing a SAS customer.",
440 "properties": {
441 "sasUserIds": {
442 "items": {
443 "type": "string"
444 },
445 "type": "array",
446 "description": "User IDs used by the devices belonging to this customer."
447 },
448 "name": {
449 "type": "string",
450 "description": "Output only. Resource name of the customer."
451 },
452 "displayName": {
453 "type": "string",
454 "description": "Required. Name of the organization that the customer entity represents."
455 }
456 },
457 "id": "SasPortalCustomer"
458 },
459 "SasPortalValidateInstallerRequest": {
460 "id": "SasPortalValidateInstallerRequest",
461 "properties": {
462 "installerId": {
463 "description": "Required. Unique installer id (cpiId) from the Certified Professional Installers database.",
464 "type": "string"
465 },
466 "secret": {
467 "description": "Required. Secret returned by the GenerateSecret method.",
468 "type": "string"
469 },
470 "encodedSecret": {
471 "type": "string",
472 "description": "Required. JSON Web Token signed using a CPI private key. Payload must include a \"secret\" claim whose value is the secret."
473 }
474 },
475 "type": "object",
476 "description": "Request for ValidateInstaller method."
477 },
478 "SasPortalSignDeviceRequest": {
479 "type": "object",
480 "id": "SasPortalSignDeviceRequest",
481 "properties": {
482 "device": {
483 "description": "Required. The device to sign. The device fields name, fcc_id and serial_number must be set. The user_id field must be set.",
484 "$ref": "SasPortalDevice"
485 }
486 },
487 "description": "Request for SignDevice method."
488 },
489 "SasPortalFrequencyRange": {
490 "id": "SasPortalFrequencyRange",
491 "type": "object",
492 "description": "Frequency range from `low_frequency` to `high_frequency`.",
493 "properties": {
494 "highFrequencyMhz": {
495 "type": "number",
496 "format": "double",
497 "description": "The highest frequency of the frequency range in MHz."
498 },
499 "lowFrequencyMhz": {
500 "format": "double",
501 "description": "The lowest frequency of the frequency range in MHz.",
502 "type": "number"
503 }
504 }
505 },
506 "SasPortalMoveDeviceRequest": {
507 "type": "object",
508 "description": "Request for MoveDevice method.",
509 "properties": {
510 "destination": {
511 "type": "string",
512 "description": "Required. The name of the new parent resource (Node or Customer) to reparent the device under."
513 }
514 },
515 "id": "SasPortalMoveDeviceRequest"
516 },
517 "SasPortalDpaMoveList": {
518 "description": "An entry in a DPA's move list.",
519 "type": "object",
520 "properties": {
521 "frequencyRange": {
522 "description": "The frequency range that the move list affects.",
523 "$ref": "SasPortalFrequencyRange"
524 },
525 "dpaId": {
526 "description": "The ID of the DPA.",
527 "type": "string"
528 }
529 },
530 "id": "SasPortalDpaMoveList"
531 },
532 "SasPortalValidateInstallerResponse": {
533 "type": "object",
534 "id": "SasPortalValidateInstallerResponse",
535 "description": "Response for ValidateInstaller method] [spectrum.sas.portal.v1alpha1.DeviceManager.ValidateInstaller].",
536 "properties": {}
537 },
538 "SasPortalGenerateSecretResponse": {
539 "type": "object",
540 "description": "Response for GenerateSecret method.",
541 "properties": {
542 "secret": {
543 "description": "The secret generated by the string and used by [ValidateInstaller] method.",
544 "type": "string"
545 }
546 },
547 "id": "SasPortalGenerateSecretResponse"
548 },
549 "SasPortalListCustomersResponse": {
550 "type": "object",
551 "properties": {
552 "customers": {
553 "items": {
554 "$ref": "SasPortalCustomer"
555 },
556 "description": "The list of customers that match the request.",
557 "type": "array"
558 },
559 "nextPageToken": {
560 "type": "string",
561 "description": "A pagination token returned from a previous call to ListCustomers method that indicates from where listing should continue. If the field is missing or empty, it means there are no more customers."
562 }
563 },
564 "id": "SasPortalListCustomersResponse",
565 "description": "Response for `ListCustomers`."
566 },
567 "SasPortalCreateSignedDeviceRequest": {
568 "type": "object",
569 "id": "SasPortalCreateSignedDeviceRequest",
570 "description": "Request for CreateSignedDevice method.",
571 "properties": {
572 "encodedDevice": {
573 "format": "byte",
574 "description": "Required. JSON Web Token signed using a CPI private key. Payload must be the JSON encoding of the [Device]. The user_id field must be set.",
575 "type": "string"
576 },
577 "installerId": {
578 "description": "Required. Unique installer id (cpiId) from the Certified Professional Installers database.",
579 "type": "string"
580 }
581 }
582 },
583 "SasPortalAssignment": {
584 "description": "Associates `members` with a `role`.",
585 "type": "object",
586 "id": "SasPortalAssignment",
587 "properties": {
588 "members": {
589 "description": "The identities the role is assigned to. It can have the following values: * `{user_email}`: An email address that represents a specific Google account. For example: `alice@gmail.com`. * `{group_email}`: An email address that represents a Google group. For example, `viewers@gmail.com`.",
590 "type": "array",
591 "items": {
592 "type": "string"
593 }
594 },
595 "role": {
596 "type": "string",
597 "description": "Required. Role that is assigned to `members`."
598 }
599 }
600 },
601 "SasPortalDeviceMetadata": {
602 "id": "SasPortalDeviceMetadata",
603 "properties": {},
604 "description": "Device data overridable by both SAS Portal and registration requests.",
605 "type": "object"
606 },
607 "SasPortalPolicy": {
608 "description": "Defines an access control policy to the resources.",
609 "type": "object",
610 "properties": {
611 "etag": {
612 "description": "The [etag] is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the [etag] in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An [etag] is returned in the response to [GetPolicy], and systems are expected to put that etag in the request to [SetPolicy] to ensure that their change will be applied to the same version of the policy. If no [etag] is provided in the call to [SetPolicy], then the existing policy is overwritten blindly.",
613 "format": "byte",
614 "type": "string"
615 },
616 "assignments": {
617 "type": "array",
618 "items": {
619 "$ref": "SasPortalAssignment"
620 }
621 }
622 },
623 "id": "SasPortalPolicy"
624 },
625 "SasPortalInstallationParams": {
626 "properties": {
627 "verticalAccuracy": {
628 "type": "number",
629 "description": "A positive number in meters to indicate accuracy of the device antenna vertical location. This optional parameter should only be present if its value is less than the FCC requirement of 3 meters.",
630 "format": "double"
631 },
632 "indoorDeployment": {
633 "description": "Whether the device antenna is indoor or not. True: indoor. False: outdoor.",
634 "type": "boolean"
635 },
636 "antennaBeamwidth": {
637 "description": "3-dB antenna beamwidth of the antenna in the horizontal-plane in degrees. This parameter is an unsigned integer having a value between 0 and 360 (degrees) inclusive; it is optional for Category A devices and conditional for Category B devices.",
638 "type": "integer",
639 "format": "int32"
640 },
641 "antennaAzimuth": {
642 "type": "integer",
643 "format": "int32",
644 "description": "Boresight direction of the horizontal plane of the antenna in degrees with respect to true north. The value of this parameter is an integer with a value between 0 and 359 inclusive. A value of 0 degrees means true north; a value of 90 degrees means east. This parameter is optional for Category A devices and conditional for Category B devices."
645 },
646 "antennaGain": {
647 "description": "Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.",
648 "type": "integer",
649 "format": "int32"
650 },
651 "eirpCapability": {
652 "type": "integer",
653 "format": "int32",
654 "description": "This parameter is the maximum device EIRP in units of dBm/10MHz and is an integer with a value between -127 and +47 (dBm/10 MHz) inclusive. If not included, SAS interprets it as maximum allowable EIRP in units of dBm/10MHz for device category."
655 },
656 "longitude": {
657 "description": "Longitude of the device antenna location. in degrees relative to the WGS 84 datum. The allowed range is from -180.000000 to +180.000000. Positive values represent longitudes east of the prime meridian; negative values west of the prime meridian.",
658 "type": "number",
659 "format": "double"
660 },
661 "antennaDowntilt": {
662 "type": "integer",
663 "format": "int32",
664 "description": "Antenna downtilt in degrees and is an integer with a value between -90 and +90 inclusive; a negative value means the antenna is tilted up (above horizontal). This parameter is optional for Category A devices and conditional for Category B devices."
665 },
666 "horizontalAccuracy": {
667 "description": "A positive number in meters to indicate accuracy of the device antenna horizontal location. This optional parameter should only be present if its value is less than the FCC requirement of 50 meters.",
668 "type": "number",
669 "format": "double"
670 },
671 "latitude": {
672 "description": "Latitude of the device antenna location in degrees relative to the WGS 84 datum. The allowed range is from -90.000000 to +90.000000. Positive values represent latitudes north of the equator; negative values south of the equator.",
673 "type": "number",
674 "format": "double"
675 },
676 "heightType": {
677 "type": "string",
678 "description": "Specifies how the height is measured.",
679 "enum": [
680 "HEIGHT_TYPE_UNSPECIFIED",
681 "HEIGHT_TYPE_AGL",
682 "HEIGHT_TYPE_AMSL"
683 ],
684 "enumDescriptions": [
685 "Unspecified height type.",
686 "AGL height is measured relative to the ground level.",
687 "AMSL height is measured relative to the mean sea level."
688 ]
689 },
690 "cpeCbsdIndication": {
691 "description": "If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.",
692 "type": "boolean"
693 },
694 "antennaModel": {
695 "type": "string",
696 "description": "If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets."
697 },
698 "height": {
699 "type": "number",
700 "description": "Device antenna height in meters. When the heightType parameter value is \"AGL\", the antenna height should be given relative to ground level. When the heightType parameter value is \"AMSL\", it is given with respect to WGS84 datum.",
701 "format": "double"
702 }
703 },
704 "type": "object",
705 "id": "SasPortalInstallationParams",
706 "description": "Information about the device installation parameters."
707 },
708 "SasPortalStatus": {
709 "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
710 "type": "object",
711 "properties": {
712 "code": {
713 "description": "The status code, which should be an enum value of google.rpc.Code.",
714 "format": "int32",
715 "type": "integer"
716 },
717 "message": {
718 "type": "string",
719 "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client."
720 },
721 "details": {
722 "items": {
723 "additionalProperties": {
724 "description": "Properties of the object. Contains field @type with type URL.",
725 "type": "any"
726 },
727 "type": "object"
728 },
729 "type": "array",
730 "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
731 }
732 },
733 "id": "SasPortalStatus"
734 },
735 "SasPortalListDevicesResponse": {
736 "properties": {
737 "nextPageToken": {
738 "description": "A pagination token returned from a previous call to ListDevices method that indicates from where listing should continue. If the field is missing or empty, it means there is no more devices.",
739 "type": "string"
740 },
741 "devices": {
742 "items": {
743 "$ref": "SasPortalDevice"
744 },
745 "type": "array",
746 "description": "The devices that match the request."
747 }
748 },
749 "type": "object",
750 "id": "SasPortalListDevicesResponse",
751 "description": "Response for ListDevices method."
752 },
753 "SasPortalGetPolicyRequest": {
754 "type": "object",
755 "id": "SasPortalGetPolicyRequest",
756 "properties": {
757 "resource": {
758 "type": "string",
759 "description": "Required. The resource for which the policy is being requested."
760 }
761 },
762 "description": "Request message for `GetPolicy` method."
763 },
764 "SasPortalDeviceModel": {
765 "type": "object",
766 "properties": {
767 "softwareVersion": {
768 "description": "The software version of the device.",
769 "type": "string"
770 },
771 "name": {
772 "type": "string",
773 "description": "The name of the device model."
774 },
775 "firmwareVersion": {
776 "description": "The firmware version of the device.",
777 "type": "string"
778 },
779 "hardwareVersion": {
780 "description": "The hardware version of the device.",
781 "type": "string"
782 },
783 "vendor": {
784 "description": "The name of the device vendor.",
785 "type": "string"
786 }
787 },
788 "description": "Information about the model of the device.",
789 "id": "SasPortalDeviceModel"
790 },
791 "SasPortalMoveNodeRequest": {
792 "description": "Request for MoveNode method.",
793 "type": "object",
794 "properties": {
795 "destination": {
796 "description": "Required. The name of the new parent resource node or Customer) to reparent the node under.",
797 "type": "string"
798 }
799 },
800 "id": "SasPortalMoveNodeRequest"
801 }
802 },
803 "description": "",
804 "batchPath": "batch",
805 "version": "v1alpha1",
806 "mtlsRootUrl": "https://prod-tt-sasportal.mtls.googleapis.com/",
807 "version_module": true,
808 "id": "prod_tt_sasportal:v1alpha1",
809 "baseUrl": "https://prod-tt-sasportal.googleapis.com/",
810 "protocol": "rest",
811 "parameters": {
812 "alt": {
813 "enumDescriptions": [
814 "Responses with Content-Type of application/json",
815 "Media download with context-dependent Content-Type",
816 "Responses with Content-Type of application/x-protobuf"
817 ],
818 "type": "string",
819 "enum": [
820 "json",
821 "media",
822 "proto"
823 ],
824 "location": "query",
825 "description": "Data format for response.",
826 "default": "json"
827 },
828 "$.xgafv": {
829 "description": "V1 error format.",
830 "enumDescriptions": [
831 "v1 error format",
832 "v2 error format"
833 ],
834 "enum": [
835 "1",
836 "2"
837 ],
838 "location": "query",
839 "type": "string"
840 },
841 "access_token": {
842 "type": "string",
843 "description": "OAuth access token.",
844 "location": "query"
845 },
846 "upload_protocol": {
847 "location": "query",
848 "type": "string",
849 "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
850 },
851 "prettyPrint": {
852 "type": "boolean",
853 "location": "query",
854 "description": "Returns response with indentations and line breaks.",
855 "default": "true"
856 },
857 "fields": {
858 "type": "string",
859 "description": "Selector specifying which fields to include in a partial response.",
860 "location": "query"
861 },
862 "oauth_token": {
863 "description": "OAuth 2.0 token for the current user.",
864 "type": "string",
865 "location": "query"
866 },
867 "key": {
868 "type": "string",
869 "location": "query",
870 "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token."
871 },
872 "callback": {
873 "location": "query",
874 "description": "JSONP",
875 "type": "string"
876 },
877 "uploadType": {
878 "location": "query",
879 "type": "string",
880 "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
881 },
882 "quotaUser": {
883 "location": "query",
884 "type": "string",
885 "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
886 }
887 },
888 "resources": {
889 "nodes": {
890 "resources": {
891 "devices": {
892 "methods": {
893 "signDevice": {
894 "id": "prod_tt_sasportal.nodes.devices.signDevice",
895 "request": {
896 "$ref": "SasPortalSignDeviceRequest"
897 },
898 "parameters": {
899 "name": {
900 "pattern": "^nodes/[^/]+/devices/[^/]+$",
901 "description": "Output only. The resource path name.",
902 "type": "string",
903 "required": true,
904 "location": "path"
905 }
906 },
907 "scopes": [
908 "https://www.googleapis.com/auth/userinfo.email"
909 ],
910 "parameterOrder": [
911 "name"
912 ],
913 "httpMethod": "POST",
914 "path": "v1alpha1/{+name}:signDevice",
915 "flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}:signDevice",
916 "description": "Signs a device.",
917 "response": {
918 "$ref": "SasPortalEmpty"
919 }
920 },
921 "list": {
922 "scopes": [
923 "https://www.googleapis.com/auth/userinfo.email"
924 ],
925 "id": "prod_tt_sasportal.nodes.devices.list",
926 "httpMethod": "GET",
927 "path": "v1alpha1/{+parent}/devices",
928 "parameters": {
929 "parent": {
930 "pattern": "^nodes/[^/]+$",
931 "location": "path",
932 "description": "Required. The name of the parent resource.",
933 "required": true,
934 "type": "string"
935 },
936 "filter": {
937 "type": "string",
938 "location": "query",
939 "description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial_number of the device. The filter is case insensitive."
940 },
941 "pageSize": {
942 "format": "int32",
943 "type": "integer",
944 "location": "query",
945 "description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000]."
946 },
947 "pageToken": {
948 "type": "string",
949 "location": "query",
950 "description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from."
951 }
952 },
953 "flatPath": "v1alpha1/nodes/{nodesId}/devices",
954 "response": {
955 "$ref": "SasPortalListDevicesResponse"
956 },
957 "parameterOrder": [
958 "parent"
959 ],
960 "description": "Lists devices under a node or customer."
961 },
962 "move": {
963 "parameters": {
964 "name": {
965 "required": true,
966 "type": "string",
967 "description": "Required. The name of the device to move.",
968 "location": "path",
969 "pattern": "^nodes/[^/]+/devices/[^/]+$"
970 }
971 },
972 "response": {
973 "$ref": "SasPortalOperation"
974 },
975 "path": "v1alpha1/{+name}:move",
976 "parameterOrder": [
977 "name"
978 ],
979 "id": "prod_tt_sasportal.nodes.devices.move",
980 "httpMethod": "POST",
981 "request": {
982 "$ref": "SasPortalMoveDeviceRequest"
983 },
984 "description": "Moves a device under another node or customer.",
985 "flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}:move",
986 "scopes": [
987 "https://www.googleapis.com/auth/userinfo.email"
988 ]
989 },
990 "updateSigned": {
991 "parameterOrder": [
992 "name"
993 ],
994 "description": "Updates a signed device.",
995 "parameters": {
996 "name": {
997 "type": "string",
998 "location": "path",
999 "description": "Required. The name of the device to update.",
1000 "pattern": "^nodes/[^/]+/devices/[^/]+$",
1001 "required": true
1002 }
1003 },
1004 "path": "v1alpha1/{+name}:updateSigned",
1005 "request": {
1006 "$ref": "SasPortalUpdateSignedDeviceRequest"
1007 },
1008 "flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}:updateSigned",
1009 "response": {
1010 "$ref": "SasPortalDevice"
1011 },
1012 "scopes": [
1013 "https://www.googleapis.com/auth/userinfo.email"
1014 ],
1015 "id": "prod_tt_sasportal.nodes.devices.updateSigned",
1016 "httpMethod": "PATCH"
1017 },
1018 "patch": {
1019 "parameters": {
1020 "name": {
1021 "required": true,
1022 "pattern": "^nodes/[^/]+/devices/[^/]+$",
1023 "description": "Output only. The resource path name.",
1024 "type": "string",
1025 "location": "path"
1026 },
1027 "updateMask": {
1028 "location": "query",
1029 "description": "Fields to be updated.",
1030 "format": "google-fieldmask",
1031 "type": "string"
1032 }
1033 },
1034 "path": "v1alpha1/{+name}",
1035 "parameterOrder": [
1036 "name"
1037 ],
1038 "response": {
1039 "$ref": "SasPortalDevice"
1040 },
1041 "flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}",
1042 "scopes": [
1043 "https://www.googleapis.com/auth/userinfo.email"
1044 ],
1045 "description": "Updates a device.",
1046 "id": "prod_tt_sasportal.nodes.devices.patch",
1047 "httpMethod": "PATCH",
1048 "request": {
1049 "$ref": "SasPortalDevice"
1050 }
1051 },
1052 "createSigned": {
1053 "response": {
1054 "$ref": "SasPortalDevice"
1055 },
1056 "id": "prod_tt_sasportal.nodes.devices.createSigned",
1057 "httpMethod": "POST",
1058 "request": {
1059 "$ref": "SasPortalCreateSignedDeviceRequest"
1060 },
1061 "path": "v1alpha1/{+parent}/devices:createSigned",
1062 "parameterOrder": [
1063 "parent"
1064 ],
1065 "scopes": [
1066 "https://www.googleapis.com/auth/userinfo.email"
1067 ],
1068 "flatPath": "v1alpha1/nodes/{nodesId}/devices:createSigned",
1069 "description": "Creates a signed device under a node or customer.",
1070 "parameters": {
1071 "parent": {
1072 "required": true,
1073 "pattern": "^nodes/[^/]+$",
1074 "location": "path",
1075 "type": "string",
1076 "description": "Required. The name of the parent resource."
1077 }
1078 }
1079 },
1080 "bulk": {
1081 "flatPath": "v1alpha1/nodes/{nodesId}/devices:bulk",
1082 "id": "prod_tt_sasportal.nodes.devices.bulk",
1083 "scopes": [
1084 "https://www.googleapis.com/auth/userinfo.email"
1085 ],
1086 "parameters": {
1087 "parent": {
1088 "required": true,
1089 "type": "string",
1090 "location": "path",
1091 "pattern": "^nodes/[^/]+$",
1092 "description": "Required. The name of the parent resource."
1093 }
1094 },
1095 "parameterOrder": [
1096 "parent"
1097 ],
1098 "request": {
1099 "$ref": "SasPortalBulkCreateDeviceRequest"
1100 },
1101 "description": "Creates a device under a node or customer. Returned devices are unordered.",
1102 "response": {
1103 "$ref": "SasPortalBulkCreateDeviceResponse"
1104 },
1105 "httpMethod": "POST",
1106 "path": "v1alpha1/{+parent}/devices:bulk"
1107 },
1108 "create": {
1109 "parameters": {
1110 "parent": {
1111 "pattern": "^nodes/[^/]+$",
1112 "description": "Required. The name of the parent resource.",
1113 "location": "path",
1114 "required": true,
1115 "type": "string"
1116 }
1117 },
1118 "scopes": [
1119 "https://www.googleapis.com/auth/userinfo.email"
1120 ],
1121 "flatPath": "v1alpha1/nodes/{nodesId}/devices",
1122 "request": {
1123 "$ref": "SasPortalDevice"
1124 },
1125 "description": "Creates a device under a node or customer.",
1126 "path": "v1alpha1/{+parent}/devices",
1127 "parameterOrder": [
1128 "parent"
1129 ],
1130 "id": "prod_tt_sasportal.nodes.devices.create",
1131 "response": {
1132 "$ref": "SasPortalDevice"
1133 },
1134 "httpMethod": "POST"
1135 },
1136 "get": {
1137 "scopes": [
1138 "https://www.googleapis.com/auth/userinfo.email"
1139 ],
1140 "parameterOrder": [
1141 "name"
1142 ],
1143 "parameters": {
1144 "name": {
1145 "location": "path",
1146 "description": "Required. The name of the device.",
1147 "type": "string",
1148 "required": true,
1149 "pattern": "^nodes/[^/]+/devices/[^/]+$"
1150 }
1151 },
1152 "httpMethod": "GET",
1153 "flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}",
1154 "response": {
1155 "$ref": "SasPortalDevice"
1156 },
1157 "description": "Gets details about a device.",
1158 "id": "prod_tt_sasportal.nodes.devices.get",
1159 "path": "v1alpha1/{+name}"
1160 },
1161 "delete": {
1162 "scopes": [
1163 "https://www.googleapis.com/auth/userinfo.email"
1164 ],
1165 "flatPath": "v1alpha1/nodes/{nodesId}/devices/{devicesId}",
1166 "parameters": {
1167 "name": {
1168 "type": "string",
1169 "pattern": "^nodes/[^/]+/devices/[^/]+$",
1170 "location": "path",
1171 "required": true,
1172 "description": "Required. The name of the device."
1173 }
1174 },
1175 "description": "Deletes a device.",
1176 "id": "prod_tt_sasportal.nodes.devices.delete",
1177 "response": {
1178 "$ref": "SasPortalEmpty"
1179 },
1180 "path": "v1alpha1/{+name}",
1181 "parameterOrder": [
1182 "name"
1183 ],
1184 "httpMethod": "DELETE"
1185 }
1186 }
1187 },
1188 "nodes": {
1189 "methods": {
1190 "delete": {
1191 "httpMethod": "DELETE",
1192 "response": {
1193 "$ref": "SasPortalEmpty"
1194 },
1195 "scopes": [
1196 "https://www.googleapis.com/auth/userinfo.email"
1197 ],
1198 "path": "v1alpha1/{+name}",
1199 "description": "Deletes a node.",
1200 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}",
1201 "parameterOrder": [
1202 "name"
1203 ],
1204 "id": "prod_tt_sasportal.nodes.nodes.delete",
1205 "parameters": {
1206 "name": {
1207 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1208 "type": "string",
1209 "description": "Required. The name of the node.",
1210 "required": true,
1211 "location": "path"
1212 }
1213 }
1214 },
1215 "create": {
1216 "parameterOrder": [
1217 "parent"
1218 ],
1219 "parameters": {
1220 "parent": {
1221 "required": true,
1222 "location": "path",
1223 "description": "Required. The parent resource name where the node is to be created.",
1224 "type": "string",
1225 "pattern": "^nodes/[^/]+$"
1226 }
1227 },
1228 "response": {
1229 "$ref": "SasPortalNode"
1230 },
1231 "flatPath": "v1alpha1/nodes/{nodesId}/nodes",
1232 "path": "v1alpha1/{+parent}/nodes",
1233 "scopes": [
1234 "https://www.googleapis.com/auth/userinfo.email"
1235 ],
1236 "request": {
1237 "$ref": "SasPortalNode"
1238 },
1239 "httpMethod": "POST",
1240 "id": "prod_tt_sasportal.nodes.nodes.create",
1241 "description": "Creates a new node."
1242 },
1243 "get": {
1244 "scopes": [
1245 "https://www.googleapis.com/auth/userinfo.email"
1246 ],
1247 "description": "Returns a requested node.",
1248 "parameterOrder": [
1249 "name"
1250 ],
1251 "parameters": {
1252 "name": {
1253 "type": "string",
1254 "required": true,
1255 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1256 "description": "Required. The name of the node.",
1257 "location": "path"
1258 }
1259 },
1260 "path": "v1alpha1/{+name}",
1261 "id": "prod_tt_sasportal.nodes.nodes.get",
1262 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}",
1263 "response": {
1264 "$ref": "SasPortalNode"
1265 },
1266 "httpMethod": "GET"
1267 },
1268 "move": {
1269 "request": {
1270 "$ref": "SasPortalMoveNodeRequest"
1271 },
1272 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}:move",
1273 "httpMethod": "POST",
1274 "id": "prod_tt_sasportal.nodes.nodes.move",
1275 "parameters": {
1276 "name": {
1277 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1278 "description": "Required. The name of the node to move.",
1279 "location": "path",
1280 "type": "string",
1281 "required": true
1282 }
1283 },
1284 "response": {
1285 "$ref": "SasPortalOperation"
1286 },
1287 "description": "Moves a node under another node or customer.",
1288 "parameterOrder": [
1289 "name"
1290 ],
1291 "scopes": [
1292 "https://www.googleapis.com/auth/userinfo.email"
1293 ],
1294 "path": "v1alpha1/{+name}:move"
1295 },
1296 "list": {
1297 "httpMethod": "GET",
1298 "parameters": {
1299 "pageSize": {
1300 "description": "The maximum number of nodes to return in the response.",
1301 "type": "integer",
1302 "format": "int32",
1303 "location": "query"
1304 },
1305 "pageToken": {
1306 "location": "query",
1307 "type": "string",
1308 "description": "A pagination token returned from a previous call to ListNodes method that indicates where this listing should continue from."
1309 },
1310 "parent": {
1311 "type": "string",
1312 "description": "Required. The parent resource name, for example, \"nodes/1\".",
1313 "required": true,
1314 "pattern": "^nodes/[^/]+$",
1315 "location": "path"
1316 }
1317 },
1318 "flatPath": "v1alpha1/nodes/{nodesId}/nodes",
1319 "id": "prod_tt_sasportal.nodes.nodes.list",
1320 "scopes": [
1321 "https://www.googleapis.com/auth/userinfo.email"
1322 ],
1323 "description": "Lists nodes.",
1324 "path": "v1alpha1/{+parent}/nodes",
1325 "response": {
1326 "$ref": "SasPortalListNodesResponse"
1327 },
1328 "parameterOrder": [
1329 "parent"
1330 ]
1331 },
1332 "patch": {
1333 "scopes": [
1334 "https://www.googleapis.com/auth/userinfo.email"
1335 ],
1336 "response": {
1337 "$ref": "SasPortalNode"
1338 },
1339 "description": "Updates an existing node.",
1340 "request": {
1341 "$ref": "SasPortalNode"
1342 },
1343 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}",
1344 "parameters": {
1345 "name": {
1346 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1347 "description": "Output only. Resource name.",
1348 "type": "string",
1349 "required": true,
1350 "location": "path"
1351 },
1352 "updateMask": {
1353 "format": "google-fieldmask",
1354 "location": "query",
1355 "type": "string",
1356 "description": "Fields to be updated."
1357 }
1358 },
1359 "path": "v1alpha1/{+name}",
1360 "httpMethod": "PATCH",
1361 "id": "prod_tt_sasportal.nodes.nodes.patch",
1362 "parameterOrder": [
1363 "name"
1364 ]
1365 }
1366 },
1367 "resources": {
1368 "nodes": {
1369 "methods": {
1370 "list": {
1371 "description": "Lists nodes.",
1372 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/nodes",
1373 "parameterOrder": [
1374 "parent"
1375 ],
1376 "path": "v1alpha1/{+parent}/nodes",
1377 "id": "prod_tt_sasportal.nodes.nodes.nodes.list",
1378 "scopes": [
1379 "https://www.googleapis.com/auth/userinfo.email"
1380 ],
1381 "parameters": {
1382 "pageSize": {
1383 "type": "integer",
1384 "description": "The maximum number of nodes to return in the response.",
1385 "format": "int32",
1386 "location": "query"
1387 },
1388 "parent": {
1389 "description": "Required. The parent resource name, for example, \"nodes/1\".",
1390 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1391 "required": true,
1392 "location": "path",
1393 "type": "string"
1394 },
1395 "pageToken": {
1396 "description": "A pagination token returned from a previous call to ListNodes method that indicates where this listing should continue from.",
1397 "type": "string",
1398 "location": "query"
1399 }
1400 },
1401 "httpMethod": "GET",
1402 "response": {
1403 "$ref": "SasPortalListNodesResponse"
1404 }
1405 },
1406 "create": {
1407 "scopes": [
1408 "https://www.googleapis.com/auth/userinfo.email"
1409 ],
1410 "path": "v1alpha1/{+parent}/nodes",
1411 "description": "Creates a new node.",
1412 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/nodes",
1413 "parameters": {
1414 "parent": {
1415 "description": "Required. The parent resource name where the node is to be created.",
1416 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1417 "required": true,
1418 "location": "path",
1419 "type": "string"
1420 }
1421 },
1422 "parameterOrder": [
1423 "parent"
1424 ],
1425 "response": {
1426 "$ref": "SasPortalNode"
1427 },
1428 "httpMethod": "POST",
1429 "id": "prod_tt_sasportal.nodes.nodes.nodes.create",
1430 "request": {
1431 "$ref": "SasPortalNode"
1432 }
1433 }
1434 }
1435 },
1436 "devices": {
1437 "methods": {
1438 "create": {
1439 "request": {
1440 "$ref": "SasPortalDevice"
1441 },
1442 "parameterOrder": [
1443 "parent"
1444 ],
1445 "parameters": {
1446 "parent": {
1447 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1448 "description": "Required. The name of the parent resource.",
1449 "required": true,
1450 "location": "path",
1451 "type": "string"
1452 }
1453 },
1454 "httpMethod": "POST",
1455 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices",
1456 "path": "v1alpha1/{+parent}/devices",
1457 "response": {
1458 "$ref": "SasPortalDevice"
1459 },
1460 "description": "Creates a device under a node or customer.",
1461 "scopes": [
1462 "https://www.googleapis.com/auth/userinfo.email"
1463 ],
1464 "id": "prod_tt_sasportal.nodes.nodes.devices.create"
1465 },
1466 "createSigned": {
1467 "scopes": [
1468 "https://www.googleapis.com/auth/userinfo.email"
1469 ],
1470 "parameters": {
1471 "parent": {
1472 "description": "Required. The name of the parent resource.",
1473 "type": "string",
1474 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1475 "required": true,
1476 "location": "path"
1477 }
1478 },
1479 "path": "v1alpha1/{+parent}/devices:createSigned",
1480 "httpMethod": "POST",
1481 "description": "Creates a signed device under a node or customer.",
1482 "request": {
1483 "$ref": "SasPortalCreateSignedDeviceRequest"
1484 },
1485 "response": {
1486 "$ref": "SasPortalDevice"
1487 },
1488 "id": "prod_tt_sasportal.nodes.nodes.devices.createSigned",
1489 "parameterOrder": [
1490 "parent"
1491 ],
1492 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices:createSigned"
1493 },
1494 "bulk": {
1495 "response": {
1496 "$ref": "SasPortalBulkCreateDeviceResponse"
1497 },
1498 "id": "prod_tt_sasportal.nodes.nodes.devices.bulk",
1499 "scopes": [
1500 "https://www.googleapis.com/auth/userinfo.email"
1501 ],
1502 "httpMethod": "POST",
1503 "description": "Creates a device under a node or customer. Returned devices are unordered.",
1504 "request": {
1505 "$ref": "SasPortalBulkCreateDeviceRequest"
1506 },
1507 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices:bulk",
1508 "path": "v1alpha1/{+parent}/devices:bulk",
1509 "parameters": {
1510 "parent": {
1511 "location": "path",
1512 "type": "string",
1513 "description": "Required. The name of the parent resource.",
1514 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1515 "required": true
1516 }
1517 },
1518 "parameterOrder": [
1519 "parent"
1520 ]
1521 },
1522 "list": {
1523 "scopes": [
1524 "https://www.googleapis.com/auth/userinfo.email"
1525 ],
1526 "response": {
1527 "$ref": "SasPortalListDevicesResponse"
1528 },
1529 "httpMethod": "GET",
1530 "description": "Lists devices under a node or customer.",
1531 "parameters": {
1532 "filter": {
1533 "location": "query",
1534 "description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial_number of the device. The filter is case insensitive.",
1535 "type": "string"
1536 },
1537 "parent": {
1538 "description": "Required. The name of the parent resource.",
1539 "type": "string",
1540 "location": "path",
1541 "pattern": "^nodes/[^/]+/nodes/[^/]+$",
1542 "required": true
1543 },
1544 "pageToken": {
1545 "location": "query",
1546 "description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.",
1547 "type": "string"
1548 },
1549 "pageSize": {
1550 "format": "int32",
1551 "type": "integer",
1552 "description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].",
1553 "location": "query"
1554 }
1555 },
1556 "id": "prod_tt_sasportal.nodes.nodes.devices.list",
1557 "flatPath": "v1alpha1/nodes/{nodesId}/nodes/{nodesId1}/devices",
1558 "path": "v1alpha1/{+parent}/devices",
1559 "parameterOrder": [
1560 "parent"
1561 ]
1562 }
1563 }
1564 }
1565 }
1566 },
1567 "deployments": {
1568 "methods": {
1569 "move": {
1570 "path": "v1alpha1/{+name}:move",
1571 "description": "Moves a deployment under another node or customer.",
1572 "scopes": [
1573 "https://www.googleapis.com/auth/userinfo.email"
1574 ],
1575 "httpMethod": "POST",
1576 "id": "prod_tt_sasportal.nodes.deployments.move",
1577 "request": {
1578 "$ref": "SasPortalMoveDeploymentRequest"
1579 },
1580 "parameterOrder": [
1581 "name"
1582 ],
1583 "parameters": {
1584 "name": {
1585 "location": "path",
1586 "type": "string",
1587 "required": true,
1588 "description": "Required. The name of the deployment to move.",
1589 "pattern": "^nodes/[^/]+/deployments/[^/]+$"
1590 }
1591 },
1592 "response": {
1593 "$ref": "SasPortalOperation"
1594 },
1595 "flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}:move"
1596 }
1597 },
1598 "resources": {
1599 "devices": {
1600 "methods": {
1601 "list": {
1602 "description": "Lists devices under a node or customer.",
1603 "httpMethod": "GET",
1604 "scopes": [
1605 "https://www.googleapis.com/auth/userinfo.email"
1606 ],
1607 "parameters": {
1608 "pageToken": {
1609 "location": "query",
1610 "type": "string",
1611 "description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from."
1612 },
1613 "pageSize": {
1614 "format": "int32",
1615 "description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].",
1616 "type": "integer",
1617 "location": "query"
1618 },
1619 "parent": {
1620 "description": "Required. The name of the parent resource.",
1621 "required": true,
1622 "location": "path",
1623 "pattern": "^nodes/[^/]+/deployments/[^/]+$",
1624 "type": "string"
1625 },
1626 "filter": {
1627 "description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial_number of the device. The filter is case insensitive.",
1628 "type": "string",
1629 "location": "query"
1630 }
1631 },
1632 "parameterOrder": [
1633 "parent"
1634 ],
1635 "path": "v1alpha1/{+parent}/devices",
1636 "response": {
1637 "$ref": "SasPortalListDevicesResponse"
1638 },
1639 "id": "prod_tt_sasportal.nodes.deployments.devices.list",
1640 "flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}/devices"
1641 },
1642 "create": {
1643 "scopes": [
1644 "https://www.googleapis.com/auth/userinfo.email"
1645 ],
1646 "path": "v1alpha1/{+parent}/devices",
1647 "request": {
1648 "$ref": "SasPortalDevice"
1649 },
1650 "description": "Creates a device under a node or customer.",
1651 "id": "prod_tt_sasportal.nodes.deployments.devices.create",
1652 "parameterOrder": [
1653 "parent"
1654 ],
1655 "parameters": {
1656 "parent": {
1657 "type": "string",
1658 "location": "path",
1659 "required": true,
1660 "description": "Required. The name of the parent resource.",
1661 "pattern": "^nodes/[^/]+/deployments/[^/]+$"
1662 }
1663 },
1664 "flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}/devices",
1665 "response": {
1666 "$ref": "SasPortalDevice"
1667 },
1668 "httpMethod": "POST"
1669 },
1670 "createSigned": {
1671 "httpMethod": "POST",
1672 "request": {
1673 "$ref": "SasPortalCreateSignedDeviceRequest"
1674 },
1675 "description": "Creates a signed device under a node or customer.",
1676 "id": "prod_tt_sasportal.nodes.deployments.devices.createSigned",
1677 "parameters": {
1678 "parent": {
1679 "type": "string",
1680 "location": "path",
1681 "pattern": "^nodes/[^/]+/deployments/[^/]+$",
1682 "description": "Required. The name of the parent resource.",
1683 "required": true
1684 }
1685 },
1686 "flatPath": "v1alpha1/nodes/{nodesId}/deployments/{deploymentsId}/devices:createSigned",
1687 "parameterOrder": [
1688 "parent"
1689 ],
1690 "path": "v1alpha1/{+parent}/devices:createSigned",
1691 "response": {
1692 "$ref": "SasPortalDevice"
1693 },
1694 "scopes": [
1695 "https://www.googleapis.com/auth/userinfo.email"
1696 ]
1697 }
1698 }
1699 }
1700 }
1701 }
1702 },
1703 "methods": {
1704 "get": {
1705 "path": "v1alpha1/{+name}",
1706 "httpMethod": "GET",
1707 "id": "prod_tt_sasportal.nodes.get",
1708 "description": "Returns a requested node.",
1709 "flatPath": "v1alpha1/nodes/{nodesId}",
1710 "scopes": [
1711 "https://www.googleapis.com/auth/userinfo.email"
1712 ],
1713 "parameterOrder": [
1714 "name"
1715 ],
1716 "response": {
1717 "$ref": "SasPortalNode"
1718 },
1719 "parameters": {
1720 "name": {
1721 "description": "Required. The name of the node.",
1722 "pattern": "^nodes/[^/]+$",
1723 "required": true,
1724 "location": "path",
1725 "type": "string"
1726 }
1727 }
1728 }
1729 }
1730 },
1731 "policies": {
1732 "methods": {
1733 "get": {
1734 "httpMethod": "POST",
1735 "id": "prod_tt_sasportal.policies.get",
1736 "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.",
1737 "request": {
1738 "$ref": "SasPortalGetPolicyRequest"
1739 },
1740 "scopes": [
1741 "https://www.googleapis.com/auth/userinfo.email"
1742 ],
1743 "flatPath": "v1alpha1/policies:get",
1744 "response": {
1745 "$ref": "SasPortalPolicy"
1746 },
1747 "path": "v1alpha1/policies:get",
1748 "parameters": {},
1749 "parameterOrder": []
1750 },
1751 "test": {
1752 "scopes": [
1753 "https://www.googleapis.com/auth/userinfo.email"
1754 ],
1755 "parameterOrder": [],
1756 "request": {
1757 "$ref": "SasPortalTestPermissionsRequest"
1758 },
1759 "httpMethod": "POST",
1760 "parameters": {},
1761 "description": "Returns permissions that a caller has on the specified resource.",
1762 "response": {
1763 "$ref": "SasPortalTestPermissionsResponse"
1764 },
1765 "id": "prod_tt_sasportal.policies.test",
1766 "flatPath": "v1alpha1/policies:test",
1767 "path": "v1alpha1/policies:test"
1768 },
1769 "set": {
1770 "parameters": {},
1771 "parameterOrder": [],
1772 "httpMethod": "POST",
1773 "flatPath": "v1alpha1/policies:set",
1774 "id": "prod_tt_sasportal.policies.set",
1775 "request": {
1776 "$ref": "SasPortalSetPolicyRequest"
1777 },
1778 "path": "v1alpha1/policies:set",
1779 "response": {
1780 "$ref": "SasPortalPolicy"
1781 },
1782 "scopes": [
1783 "https://www.googleapis.com/auth/userinfo.email"
1784 ],
1785 "description": "Sets the access control policy on the specified resource. Replaces any existing policy."
1786 }
1787 }
1788 },
1789 "customers": {
1790 "methods": {
1791 "patch": {
1792 "response": {
1793 "$ref": "SasPortalCustomer"
1794 },
1795 "description": "Updates an existing customer.",
1796 "id": "prod_tt_sasportal.customers.patch",
1797 "httpMethod": "PATCH",
1798 "scopes": [
1799 "https://www.googleapis.com/auth/userinfo.email"
1800 ],
1801 "parameters": {
1802 "updateMask": {
1803 "type": "string",
1804 "format": "google-fieldmask",
1805 "description": "Fields to be updated.",
1806 "location": "query"
1807 },
1808 "name": {
1809 "location": "path",
1810 "type": "string",
1811 "description": "Output only. Resource name of the customer.",
1812 "pattern": "^customers/[^/]+$",
1813 "required": true
1814 }
1815 },
1816 "parameterOrder": [
1817 "name"
1818 ],
1819 "request": {
1820 "$ref": "SasPortalCustomer"
1821 },
1822 "flatPath": "v1alpha1/customers/{customersId}",
1823 "path": "v1alpha1/{+name}"
1824 },
1825 "get": {
1826 "parameterOrder": [
1827 "name"
1828 ],
1829 "flatPath": "v1alpha1/customers/{customersId}",
1830 "scopes": [
1831 "https://www.googleapis.com/auth/userinfo.email"
1832 ],
1833 "httpMethod": "GET",
1834 "description": "Returns a requested customer.",
1835 "response": {
1836 "$ref": "SasPortalCustomer"
1837 },
1838 "parameters": {
1839 "name": {
1840 "location": "path",
1841 "type": "string",
1842 "required": true,
1843 "description": "Required. The name of the customer.",
1844 "pattern": "^customers/[^/]+$"
1845 }
1846 },
1847 "path": "v1alpha1/{+name}",
1848 "id": "prod_tt_sasportal.customers.get"
1849 },
1850 "list": {
1851 "response": {
1852 "$ref": "SasPortalListCustomersResponse"
1853 },
1854 "parameterOrder": [],
1855 "id": "prod_tt_sasportal.customers.list",
1856 "scopes": [
1857 "https://www.googleapis.com/auth/userinfo.email"
1858 ],
1859 "path": "v1alpha1/customers",
1860 "httpMethod": "GET",
1861 "parameters": {
1862 "pageSize": {
1863 "description": "The maximum number of customers to return in the response.",
1864 "location": "query",
1865 "format": "int32",
1866 "type": "integer"
1867 },
1868 "pageToken": {
1869 "description": "A pagination token returned from a previous call to ListCustomers method that indicates where this listing should continue from.",
1870 "type": "string",
1871 "location": "query"
1872 }
1873 },
1874 "description": "Returns a list of requested customers.",
1875 "flatPath": "v1alpha1/customers"
1876 }
1877 },
1878 "resources": {
1879 "devices": {
1880 "methods": {
1881 "delete": {
1882 "flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}",
1883 "description": "Deletes a device.",
1884 "id": "prod_tt_sasportal.customers.devices.delete",
1885 "httpMethod": "DELETE",
1886 "parameters": {
1887 "name": {
1888 "type": "string",
1889 "pattern": "^customers/[^/]+/devices/[^/]+$",
1890 "required": true,
1891 "description": "Required. The name of the device.",
1892 "location": "path"
1893 }
1894 },
1895 "path": "v1alpha1/{+name}",
1896 "scopes": [
1897 "https://www.googleapis.com/auth/userinfo.email"
1898 ],
1899 "response": {
1900 "$ref": "SasPortalEmpty"
1901 },
1902 "parameterOrder": [
1903 "name"
1904 ]
1905 },
1906 "updateSigned": {
1907 "path": "v1alpha1/{+name}:updateSigned",
1908 "parameterOrder": [
1909 "name"
1910 ],
1911 "request": {
1912 "$ref": "SasPortalUpdateSignedDeviceRequest"
1913 },
1914 "httpMethod": "PATCH",
1915 "description": "Updates a signed device.",
1916 "id": "prod_tt_sasportal.customers.devices.updateSigned",
1917 "flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}:updateSigned",
1918 "response": {
1919 "$ref": "SasPortalDevice"
1920 },
1921 "parameters": {
1922 "name": {
1923 "location": "path",
1924 "required": true,
1925 "pattern": "^customers/[^/]+/devices/[^/]+$",
1926 "description": "Required. The name of the device to update.",
1927 "type": "string"
1928 }
1929 },
1930 "scopes": [
1931 "https://www.googleapis.com/auth/userinfo.email"
1932 ]
1933 },
1934 "move": {
1935 "id": "prod_tt_sasportal.customers.devices.move",
1936 "scopes": [
1937 "https://www.googleapis.com/auth/userinfo.email"
1938 ],
1939 "description": "Moves a device under another node or customer.",
1940 "path": "v1alpha1/{+name}:move",
1941 "response": {
1942 "$ref": "SasPortalOperation"
1943 },
1944 "parameterOrder": [
1945 "name"
1946 ],
1947 "flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}:move",
1948 "request": {
1949 "$ref": "SasPortalMoveDeviceRequest"
1950 },
1951 "parameters": {
1952 "name": {
1953 "type": "string",
1954 "location": "path",
1955 "description": "Required. The name of the device to move.",
1956 "required": true,
1957 "pattern": "^customers/[^/]+/devices/[^/]+$"
1958 }
1959 },
1960 "httpMethod": "POST"
1961 },
1962 "list": {
1963 "scopes": [
1964 "https://www.googleapis.com/auth/userinfo.email"
1965 ],
1966 "description": "Lists devices under a node or customer.",
1967 "response": {
1968 "$ref": "SasPortalListDevicesResponse"
1969 },
1970 "path": "v1alpha1/{+parent}/devices",
1971 "parameterOrder": [
1972 "parent"
1973 ],
1974 "flatPath": "v1alpha1/customers/{customersId}/devices",
1975 "httpMethod": "GET",
1976 "parameters": {
1977 "pageSize": {
1978 "description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000].",
1979 "type": "integer",
1980 "location": "query",
1981 "format": "int32"
1982 },
1983 "filter": {
1984 "location": "query",
1985 "type": "string",
1986 "description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial_number of the device. The filter is case insensitive."
1987 },
1988 "parent": {
1989 "description": "Required. The name of the parent resource.",
1990 "pattern": "^customers/[^/]+$",
1991 "type": "string",
1992 "required": true,
1993 "location": "path"
1994 },
1995 "pageToken": {
1996 "description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.",
1997 "location": "query",
1998 "type": "string"
1999 }
2000 },
2001 "id": "prod_tt_sasportal.customers.devices.list"
2002 },
2003 "bulk": {
2004 "response": {
2005 "$ref": "SasPortalBulkCreateDeviceResponse"
2006 },
2007 "flatPath": "v1alpha1/customers/{customersId}/devices:bulk",
2008 "request": {
2009 "$ref": "SasPortalBulkCreateDeviceRequest"
2010 },
2011 "path": "v1alpha1/{+parent}/devices:bulk",
2012 "httpMethod": "POST",
2013 "description": "Creates a device under a node or customer. Returned devices are unordered.",
2014 "id": "prod_tt_sasportal.customers.devices.bulk",
2015 "parameters": {
2016 "parent": {
2017 "description": "Required. The name of the parent resource.",
2018 "pattern": "^customers/[^/]+$",
2019 "required": true,
2020 "type": "string",
2021 "location": "path"
2022 }
2023 },
2024 "scopes": [
2025 "https://www.googleapis.com/auth/userinfo.email"
2026 ],
2027 "parameterOrder": [
2028 "parent"
2029 ]
2030 },
2031 "createSigned": {
2032 "parameters": {
2033 "parent": {
2034 "type": "string",
2035 "location": "path",
2036 "pattern": "^customers/[^/]+$",
2037 "description": "Required. The name of the parent resource.",
2038 "required": true
2039 }
2040 },
2041 "parameterOrder": [
2042 "parent"
2043 ],
2044 "description": "Creates a signed device under a node or customer.",
2045 "id": "prod_tt_sasportal.customers.devices.createSigned",
2046 "httpMethod": "POST",
2047 "path": "v1alpha1/{+parent}/devices:createSigned",
2048 "request": {
2049 "$ref": "SasPortalCreateSignedDeviceRequest"
2050 },
2051 "response": {
2052 "$ref": "SasPortalDevice"
2053 },
2054 "flatPath": "v1alpha1/customers/{customersId}/devices:createSigned",
2055 "scopes": [
2056 "https://www.googleapis.com/auth/userinfo.email"
2057 ]
2058 },
2059 "create": {
2060 "parameterOrder": [
2061 "parent"
2062 ],
2063 "httpMethod": "POST",
2064 "path": "v1alpha1/{+parent}/devices",
2065 "scopes": [
2066 "https://www.googleapis.com/auth/userinfo.email"
2067 ],
2068 "flatPath": "v1alpha1/customers/{customersId}/devices",
2069 "description": "Creates a device under a node or customer.",
2070 "response": {
2071 "$ref": "SasPortalDevice"
2072 },
2073 "parameters": {
2074 "parent": {
2075 "type": "string",
2076 "required": true,
2077 "location": "path",
2078 "description": "Required. The name of the parent resource.",
2079 "pattern": "^customers/[^/]+$"
2080 }
2081 },
2082 "id": "prod_tt_sasportal.customers.devices.create",
2083 "request": {
2084 "$ref": "SasPortalDevice"
2085 }
2086 },
2087 "patch": {
2088 "description": "Updates a device.",
2089 "id": "prod_tt_sasportal.customers.devices.patch",
2090 "httpMethod": "PATCH",
2091 "path": "v1alpha1/{+name}",
2092 "request": {
2093 "$ref": "SasPortalDevice"
2094 },
2095 "scopes": [
2096 "https://www.googleapis.com/auth/userinfo.email"
2097 ],
2098 "response": {
2099 "$ref": "SasPortalDevice"
2100 },
2101 "flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}",
2102 "parameters": {
2103 "name": {
2104 "pattern": "^customers/[^/]+/devices/[^/]+$",
2105 "type": "string",
2106 "location": "path",
2107 "description": "Output only. The resource path name.",
2108 "required": true
2109 },
2110 "updateMask": {
2111 "type": "string",
2112 "format": "google-fieldmask",
2113 "description": "Fields to be updated.",
2114 "location": "query"
2115 }
2116 },
2117 "parameterOrder": [
2118 "name"
2119 ]
2120 },
2121 "get": {
2122 "scopes": [
2123 "https://www.googleapis.com/auth/userinfo.email"
2124 ],
2125 "flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}",
2126 "id": "prod_tt_sasportal.customers.devices.get",
2127 "parameters": {
2128 "name": {
2129 "location": "path",
2130 "required": true,
2131 "description": "Required. The name of the device.",
2132 "pattern": "^customers/[^/]+/devices/[^/]+$",
2133 "type": "string"
2134 }
2135 },
2136 "parameterOrder": [
2137 "name"
2138 ],
2139 "httpMethod": "GET",
2140 "path": "v1alpha1/{+name}",
2141 "description": "Gets details about a device.",
2142 "response": {
2143 "$ref": "SasPortalDevice"
2144 }
2145 },
2146 "signDevice": {
2147 "httpMethod": "POST",
2148 "parameters": {
2149 "name": {
2150 "required": true,
2151 "location": "path",
2152 "description": "Output only. The resource path name.",
2153 "pattern": "^customers/[^/]+/devices/[^/]+$",
2154 "type": "string"
2155 }
2156 },
2157 "description": "Signs a device.",
2158 "scopes": [
2159 "https://www.googleapis.com/auth/userinfo.email"
2160 ],
2161 "request": {
2162 "$ref": "SasPortalSignDeviceRequest"
2163 },
2164 "flatPath": "v1alpha1/customers/{customersId}/devices/{devicesId}:signDevice",
2165 "path": "v1alpha1/{+name}:signDevice",
2166 "parameterOrder": [
2167 "name"
2168 ],
2169 "id": "prod_tt_sasportal.customers.devices.signDevice",
2170 "response": {
2171 "$ref": "SasPortalEmpty"
2172 }
2173 }
2174 }
2175 },
2176 "deployments": {
2177 "methods": {
2178 "move": {
2179 "parameters": {
2180 "name": {
2181 "description": "Required. The name of the deployment to move.",
2182 "pattern": "^customers/[^/]+/deployments/[^/]+$",
2183 "required": true,
2184 "type": "string",
2185 "location": "path"
2186 }
2187 },
2188 "response": {
2189 "$ref": "SasPortalOperation"
2190 },
2191 "description": "Moves a deployment under another node or customer.",
2192 "httpMethod": "POST",
2193 "path": "v1alpha1/{+name}:move",
2194 "flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}:move",
2195 "parameterOrder": [
2196 "name"
2197 ],
2198 "id": "prod_tt_sasportal.customers.deployments.move",
2199 "scopes": [
2200 "https://www.googleapis.com/auth/userinfo.email"
2201 ],
2202 "request": {
2203 "$ref": "SasPortalMoveDeploymentRequest"
2204 }
2205 }
2206 },
2207 "resources": {
2208 "devices": {
2209 "methods": {
2210 "create": {
2211 "scopes": [
2212 "https://www.googleapis.com/auth/userinfo.email"
2213 ],
2214 "httpMethod": "POST",
2215 "request": {
2216 "$ref": "SasPortalDevice"
2217 },
2218 "response": {
2219 "$ref": "SasPortalDevice"
2220 },
2221 "description": "Creates a device under a node or customer.",
2222 "parameters": {
2223 "parent": {
2224 "type": "string",
2225 "description": "Required. The name of the parent resource.",
2226 "location": "path",
2227 "required": true,
2228 "pattern": "^customers/[^/]+/deployments/[^/]+$"
2229 }
2230 },
2231 "id": "prod_tt_sasportal.customers.deployments.devices.create",
2232 "parameterOrder": [
2233 "parent"
2234 ],
2235 "flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}/devices",
2236 "path": "v1alpha1/{+parent}/devices"
2237 },
2238 "list": {
2239 "id": "prod_tt_sasportal.customers.deployments.devices.list",
2240 "description": "Lists devices under a node or customer.",
2241 "response": {
2242 "$ref": "SasPortalListDevicesResponse"
2243 },
2244 "flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}/devices",
2245 "parameterOrder": [
2246 "parent"
2247 ],
2248 "scopes": [
2249 "https://www.googleapis.com/auth/userinfo.email"
2250 ],
2251 "parameters": {
2252 "pageToken": {
2253 "description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.",
2254 "location": "query",
2255 "type": "string"
2256 },
2257 "filter": {
2258 "description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial_number of the device. The filter is case insensitive.",
2259 "location": "query",
2260 "type": "string"
2261 },
2262 "pageSize": {
2263 "type": "integer",
2264 "format": "int32",
2265 "location": "query",
2266 "description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000]."
2267 },
2268 "parent": {
2269 "type": "string",
2270 "description": "Required. The name of the parent resource.",
2271 "required": true,
2272 "pattern": "^customers/[^/]+/deployments/[^/]+$",
2273 "location": "path"
2274 }
2275 },
2276 "httpMethod": "GET",
2277 "path": "v1alpha1/{+parent}/devices"
2278 },
2279 "createSigned": {
2280 "request": {
2281 "$ref": "SasPortalCreateSignedDeviceRequest"
2282 },
2283 "parameterOrder": [
2284 "parent"
2285 ],
2286 "response": {
2287 "$ref": "SasPortalDevice"
2288 },
2289 "httpMethod": "POST",
2290 "parameters": {
2291 "parent": {
2292 "location": "path",
2293 "description": "Required. The name of the parent resource.",
2294 "pattern": "^customers/[^/]+/deployments/[^/]+$",
2295 "required": true,
2296 "type": "string"
2297 }
2298 },
2299 "id": "prod_tt_sasportal.customers.deployments.devices.createSigned",
2300 "path": "v1alpha1/{+parent}/devices:createSigned",
2301 "description": "Creates a signed device under a node or customer.",
2302 "flatPath": "v1alpha1/customers/{customersId}/deployments/{deploymentsId}/devices:createSigned",
2303 "scopes": [
2304 "https://www.googleapis.com/auth/userinfo.email"
2305 ]
2306 }
2307 }
2308 }
2309 }
2310 },
2311 "nodes": {
2312 "methods": {
2313 "patch": {
2314 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}",
2315 "response": {
2316 "$ref": "SasPortalNode"
2317 },
2318 "request": {
2319 "$ref": "SasPortalNode"
2320 },
2321 "description": "Updates an existing node.",
2322 "parameters": {
2323 "name": {
2324 "description": "Output only. Resource name.",
2325 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2326 "location": "path",
2327 "type": "string",
2328 "required": true
2329 },
2330 "updateMask": {
2331 "location": "query",
2332 "description": "Fields to be updated.",
2333 "format": "google-fieldmask",
2334 "type": "string"
2335 }
2336 },
2337 "path": "v1alpha1/{+name}",
2338 "httpMethod": "PATCH",
2339 "scopes": [
2340 "https://www.googleapis.com/auth/userinfo.email"
2341 ],
2342 "parameterOrder": [
2343 "name"
2344 ],
2345 "id": "prod_tt_sasportal.customers.nodes.patch"
2346 },
2347 "delete": {
2348 "id": "prod_tt_sasportal.customers.nodes.delete",
2349 "httpMethod": "DELETE",
2350 "parameters": {
2351 "name": {
2352 "location": "path",
2353 "description": "Required. The name of the node.",
2354 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2355 "required": true,
2356 "type": "string"
2357 }
2358 },
2359 "path": "v1alpha1/{+name}",
2360 "description": "Deletes a node.",
2361 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}",
2362 "parameterOrder": [
2363 "name"
2364 ],
2365 "response": {
2366 "$ref": "SasPortalEmpty"
2367 },
2368 "scopes": [
2369 "https://www.googleapis.com/auth/userinfo.email"
2370 ]
2371 },
2372 "list": {
2373 "response": {
2374 "$ref": "SasPortalListNodesResponse"
2375 },
2376 "description": "Lists nodes.",
2377 "flatPath": "v1alpha1/customers/{customersId}/nodes",
2378 "scopes": [
2379 "https://www.googleapis.com/auth/userinfo.email"
2380 ],
2381 "id": "prod_tt_sasportal.customers.nodes.list",
2382 "path": "v1alpha1/{+parent}/nodes",
2383 "httpMethod": "GET",
2384 "parameterOrder": [
2385 "parent"
2386 ],
2387 "parameters": {
2388 "pageSize": {
2389 "description": "The maximum number of nodes to return in the response.",
2390 "format": "int32",
2391 "location": "query",
2392 "type": "integer"
2393 },
2394 "pageToken": {
2395 "type": "string",
2396 "location": "query",
2397 "description": "A pagination token returned from a previous call to ListNodes method that indicates where this listing should continue from."
2398 },
2399 "parent": {
2400 "type": "string",
2401 "pattern": "^customers/[^/]+$",
2402 "description": "Required. The parent resource name, for example, \"nodes/1\".",
2403 "required": true,
2404 "location": "path"
2405 }
2406 }
2407 },
2408 "create": {
2409 "parameters": {
2410 "parent": {
2411 "location": "path",
2412 "type": "string",
2413 "description": "Required. The parent resource name where the node is to be created.",
2414 "pattern": "^customers/[^/]+$",
2415 "required": true
2416 }
2417 },
2418 "flatPath": "v1alpha1/customers/{customersId}/nodes",
2419 "path": "v1alpha1/{+parent}/nodes",
2420 "scopes": [
2421 "https://www.googleapis.com/auth/userinfo.email"
2422 ],
2423 "description": "Creates a new node.",
2424 "response": {
2425 "$ref": "SasPortalNode"
2426 },
2427 "httpMethod": "POST",
2428 "id": "prod_tt_sasportal.customers.nodes.create",
2429 "parameterOrder": [
2430 "parent"
2431 ],
2432 "request": {
2433 "$ref": "SasPortalNode"
2434 }
2435 },
2436 "get": {
2437 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}",
2438 "scopes": [
2439 "https://www.googleapis.com/auth/userinfo.email"
2440 ],
2441 "httpMethod": "GET",
2442 "parameterOrder": [
2443 "name"
2444 ],
2445 "description": "Returns a requested node.",
2446 "path": "v1alpha1/{+name}",
2447 "id": "prod_tt_sasportal.customers.nodes.get",
2448 "response": {
2449 "$ref": "SasPortalNode"
2450 },
2451 "parameters": {
2452 "name": {
2453 "location": "path",
2454 "type": "string",
2455 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2456 "description": "Required. The name of the node.",
2457 "required": true
2458 }
2459 }
2460 },
2461 "move": {
2462 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}:move",
2463 "response": {
2464 "$ref": "SasPortalOperation"
2465 },
2466 "path": "v1alpha1/{+name}:move",
2467 "parameterOrder": [
2468 "name"
2469 ],
2470 "httpMethod": "POST",
2471 "request": {
2472 "$ref": "SasPortalMoveNodeRequest"
2473 },
2474 "id": "prod_tt_sasportal.customers.nodes.move",
2475 "parameters": {
2476 "name": {
2477 "description": "Required. The name of the node to move.",
2478 "required": true,
2479 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2480 "location": "path",
2481 "type": "string"
2482 }
2483 },
2484 "scopes": [
2485 "https://www.googleapis.com/auth/userinfo.email"
2486 ],
2487 "description": "Moves a node under another node or customer."
2488 }
2489 },
2490 "resources": {
2491 "nodes": {
2492 "methods": {
2493 "list": {
2494 "parameters": {
2495 "pageSize": {
2496 "type": "integer",
2497 "location": "query",
2498 "format": "int32",
2499 "description": "The maximum number of nodes to return in the response."
2500 },
2501 "parent": {
2502 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2503 "location": "path",
2504 "type": "string",
2505 "description": "Required. The parent resource name, for example, \"nodes/1\".",
2506 "required": true
2507 },
2508 "pageToken": {
2509 "location": "query",
2510 "description": "A pagination token returned from a previous call to ListNodes method that indicates where this listing should continue from.",
2511 "type": "string"
2512 }
2513 },
2514 "id": "prod_tt_sasportal.customers.nodes.nodes.list",
2515 "scopes": [
2516 "https://www.googleapis.com/auth/userinfo.email"
2517 ],
2518 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/nodes",
2519 "parameterOrder": [
2520 "parent"
2521 ],
2522 "httpMethod": "GET",
2523 "path": "v1alpha1/{+parent}/nodes",
2524 "response": {
2525 "$ref": "SasPortalListNodesResponse"
2526 },
2527 "description": "Lists nodes."
2528 },
2529 "create": {
2530 "httpMethod": "POST",
2531 "response": {
2532 "$ref": "SasPortalNode"
2533 },
2534 "description": "Creates a new node.",
2535 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/nodes",
2536 "parameters": {
2537 "parent": {
2538 "location": "path",
2539 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2540 "type": "string",
2541 "required": true,
2542 "description": "Required. The parent resource name where the node is to be created."
2543 }
2544 },
2545 "request": {
2546 "$ref": "SasPortalNode"
2547 },
2548 "scopes": [
2549 "https://www.googleapis.com/auth/userinfo.email"
2550 ],
2551 "parameterOrder": [
2552 "parent"
2553 ],
2554 "path": "v1alpha1/{+parent}/nodes",
2555 "id": "prod_tt_sasportal.customers.nodes.nodes.create"
2556 }
2557 }
2558 },
2559 "devices": {
2560 "methods": {
2561 "list": {
2562 "parameters": {
2563 "filter": {
2564 "type": "string",
2565 "description": "The filter expression. The filter should have one of the following formats: \"sn=123454\" or \"display_name=MyDevice\". sn corresponds to serial_number of the device. The filter is case insensitive.",
2566 "location": "query"
2567 },
2568 "parent": {
2569 "type": "string",
2570 "description": "Required. The name of the parent resource.",
2571 "required": true,
2572 "location": "path",
2573 "pattern": "^customers/[^/]+/nodes/[^/]+$"
2574 },
2575 "pageSize": {
2576 "location": "query",
2577 "format": "int32",
2578 "type": "integer",
2579 "description": "The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000]."
2580 },
2581 "pageToken": {
2582 "location": "query",
2583 "description": "A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.",
2584 "type": "string"
2585 }
2586 },
2587 "path": "v1alpha1/{+parent}/devices",
2588 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/devices",
2589 "parameterOrder": [
2590 "parent"
2591 ],
2592 "description": "Lists devices under a node or customer.",
2593 "httpMethod": "GET",
2594 "scopes": [
2595 "https://www.googleapis.com/auth/userinfo.email"
2596 ],
2597 "response": {
2598 "$ref": "SasPortalListDevicesResponse"
2599 },
2600 "id": "prod_tt_sasportal.customers.nodes.devices.list"
2601 },
2602 "createSigned": {
2603 "description": "Creates a signed device under a node or customer.",
2604 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/devices:createSigned",
2605 "scopes": [
2606 "https://www.googleapis.com/auth/userinfo.email"
2607 ],
2608 "response": {
2609 "$ref": "SasPortalDevice"
2610 },
2611 "parameterOrder": [
2612 "parent"
2613 ],
2614 "httpMethod": "POST",
2615 "request": {
2616 "$ref": "SasPortalCreateSignedDeviceRequest"
2617 },
2618 "parameters": {
2619 "parent": {
2620 "pattern": "^customers/[^/]+/nodes/[^/]+$",
2621 "location": "path",
2622 "type": "string",
2623 "required": true,
2624 "description": "Required. The name of the parent resource."
2625 }
2626 },
2627 "id": "prod_tt_sasportal.customers.nodes.devices.createSigned",
2628 "path": "v1alpha1/{+parent}/devices:createSigned"
2629 },
2630 "create": {
2631 "flatPath": "v1alpha1/customers/{customersId}/nodes/{nodesId}/devices",
2632 "parameterOrder": [
2633 "parent"
2634 ],
2635 "id": "prod_tt_sasportal.customers.nodes.devices.create",
2636 "request": {
2637 "$ref": "SasPortalDevice"
2638 },
2639 "response": {
2640 "$ref": "SasPortalDevice"
2641 },
2642 "path": "v1alpha1/{+parent}/devices",
2643 "scopes": [
2644 "https://www.googleapis.com/auth/userinfo.email"
2645 ],
2646 "description": "Creates a device under a node or customer.",
2647 "httpMethod": "POST",
2648 "parameters": {
2649 "parent": {
2650 "description": "Required. The name of the parent resource.",
2651 "type": "string",
2652 "required": true,
2653 "location": "path",
2654 "pattern": "^customers/[^/]+/nodes/[^/]+$"
2655 }
2656 }
2657 }
2658 }
2659 }
2660 }
2661 }
2662 }
2663 },
2664 "deployments": {
2665 "resources": {
2666 "devices": {
2667 "methods": {
2668 "delete": {
2669 "parameterOrder": [
2670 "name"
2671 ],
2672 "httpMethod": "DELETE",
2673 "path": "v1alpha1/{+name}",
2674 "description": "Deletes a device.",
2675 "flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}",
2676 "parameters": {
2677 "name": {
2678 "location": "path",
2679 "type": "string",
2680 "description": "Required. The name of the device.",
2681 "required": true,
2682 "pattern": "^deployments/[^/]+/devices/[^/]+$"
2683 }
2684 },
2685 "scopes": [
2686 "https://www.googleapis.com/auth/userinfo.email"
2687 ],
2688 "id": "prod_tt_sasportal.deployments.devices.delete",
2689 "response": {
2690 "$ref": "SasPortalEmpty"
2691 }
2692 },
2693 "move": {
2694 "parameters": {
2695 "name": {
2696 "location": "path",
2697 "required": true,
2698 "description": "Required. The name of the device to move.",
2699 "pattern": "^deployments/[^/]+/devices/[^/]+$",
2700 "type": "string"
2701 }
2702 },
2703 "description": "Moves a device under another node or customer.",
2704 "parameterOrder": [
2705 "name"
2706 ],
2707 "response": {
2708 "$ref": "SasPortalOperation"
2709 },
2710 "id": "prod_tt_sasportal.deployments.devices.move",
2711 "request": {
2712 "$ref": "SasPortalMoveDeviceRequest"
2713 },
2714 "flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}:move",
2715 "scopes": [
2716 "https://www.googleapis.com/auth/userinfo.email"
2717 ],
2718 "httpMethod": "POST",
2719 "path": "v1alpha1/{+name}:move"
2720 },
2721 "updateSigned": {
2722 "response": {
2723 "$ref": "SasPortalDevice"
2724 },
2725 "httpMethod": "PATCH",
2726 "description": "Updates a signed device.",
2727 "parameters": {
2728 "name": {
2729 "description": "Required. The name of the device to update.",
2730 "pattern": "^deployments/[^/]+/devices/[^/]+$",
2731 "location": "path",
2732 "type": "string",
2733 "required": true
2734 }
2735 },
2736 "flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}:updateSigned",
2737 "request": {
2738 "$ref": "SasPortalUpdateSignedDeviceRequest"
2739 },
2740 "id": "prod_tt_sasportal.deployments.devices.updateSigned",
2741 "scopes": [
2742 "https://www.googleapis.com/auth/userinfo.email"
2743 ],
2744 "parameterOrder": [
2745 "name"
2746 ],
2747 "path": "v1alpha1/{+name}:updateSigned"
2748 },
2749 "signDevice": {
2750 "id": "prod_tt_sasportal.deployments.devices.signDevice",
2751 "response": {
2752 "$ref": "SasPortalEmpty"
2753 },
2754 "httpMethod": "POST",
2755 "scopes": [
2756 "https://www.googleapis.com/auth/userinfo.email"
2757 ],
2758 "path": "v1alpha1/{+name}:signDevice",
2759 "parameterOrder": [
2760 "name"
2761 ],
2762 "request": {
2763 "$ref": "SasPortalSignDeviceRequest"
2764 },
2765 "flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}:signDevice",
2766 "description": "Signs a device.",
2767 "parameters": {
2768 "name": {
2769 "required": true,
2770 "pattern": "^deployments/[^/]+/devices/[^/]+$",
2771 "location": "path",
2772 "type": "string",
2773 "description": "Output only. The resource path name."
2774 }
2775 }
2776 },
2777 "patch": {
2778 "id": "prod_tt_sasportal.deployments.devices.patch",
2779 "response": {
2780 "$ref": "SasPortalDevice"
2781 },
2782 "parameterOrder": [
2783 "name"
2784 ],
2785 "path": "v1alpha1/{+name}",
2786 "parameters": {
2787 "updateMask": {
2788 "type": "string",
2789 "format": "google-fieldmask",
2790 "description": "Fields to be updated.",
2791 "location": "query"
2792 },
2793 "name": {
2794 "type": "string",
2795 "pattern": "^deployments/[^/]+/devices/[^/]+$",
2796 "description": "Output only. The resource path name.",
2797 "required": true,
2798 "location": "path"
2799 }
2800 },
2801 "scopes": [
2802 "https://www.googleapis.com/auth/userinfo.email"
2803 ],
2804 "flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}",
2805 "request": {
2806 "$ref": "SasPortalDevice"
2807 },
2808 "description": "Updates a device.",
2809 "httpMethod": "PATCH"
2810 },
2811 "get": {
2812 "description": "Gets details about a device.",
2813 "response": {
2814 "$ref": "SasPortalDevice"
2815 },
2816 "path": "v1alpha1/{+name}",
2817 "flatPath": "v1alpha1/deployments/{deploymentsId}/devices/{devicesId}",
2818 "httpMethod": "GET",
2819 "scopes": [
2820 "https://www.googleapis.com/auth/userinfo.email"
2821 ],
2822 "id": "prod_tt_sasportal.deployments.devices.get",
2823 "parameters": {
2824 "name": {
2825 "required": true,
2826 "type": "string",
2827 "description": "Required. The name of the device.",
2828 "location": "path",
2829 "pattern": "^deployments/[^/]+/devices/[^/]+$"
2830 }
2831 },
2832 "parameterOrder": [
2833 "name"
2834 ]
2835 }
2836 }
2837 }
2838 }
2839 },
2840 "installer": {
2841 "methods": {
2842 "generateSecret": {
2843 "request": {
2844 "$ref": "SasPortalGenerateSecretRequest"
2845 },
2846 "parameterOrder": [],
2847 "parameters": {},
2848 "scopes": [
2849 "https://www.googleapis.com/auth/userinfo.email"
2850 ],
2851 "id": "prod_tt_sasportal.installer.generateSecret",
2852 "response": {
2853 "$ref": "SasPortalGenerateSecretResponse"
2854 },
2855 "flatPath": "v1alpha1/installer:generateSecret",
2856 "path": "v1alpha1/installer:generateSecret",
2857 "description": "Generates a secret to be used with the ValidateInstaller method",
2858 "httpMethod": "POST"
2859 },
2860 "validate": {
2861 "scopes": [
2862 "https://www.googleapis.com/auth/userinfo.email"
2863 ],
2864 "parameterOrder": [],
2865 "parameters": {},
2866 "path": "v1alpha1/installer:validate",
2867 "description": "Validates the identity of a Certified Professional Installer (CPI).",
2868 "response": {
2869 "$ref": "SasPortalValidateInstallerResponse"
2870 },
2871 "flatPath": "v1alpha1/installer:validate",
2872 "request": {
2873 "$ref": "SasPortalValidateInstallerRequest"
2874 },
2875 "httpMethod": "POST",
2876 "id": "prod_tt_sasportal.installer.validate"
2877 }
2878 }
2879 }
2880 },
2881 "fullyEncodeReservedExpansion": true,
2882 "rootUrl": "https://prod-tt-sasportal.googleapis.com/",
2883 "icons": {
2884 "x32": "http://www.google.com/images/icons/product/search-32.gif",
2885 "x16": "http://www.google.com/images/icons/product/search-16.gif"
2886 },
2887 "basePath": "",
2888 "servicePath": "",
2889 "title": "SAS Portal API (Testing)",
2890 "ownerDomain": "google.com",
2891 "name": "prod_tt_sasportal",
2892 "ownerName": "Google",
2893 "auth": {
2894 "oauth2": {
2895 "scopes": {
2896 "https://www.googleapis.com/auth/userinfo.email": {
2897 "description": "View your email address"
2898 }
2899 }
2900 }
2901 },
2902 "kind": "discovery#restDescription",
2903 "canonicalName": "SAS Portal Testing",
2904 "revision": "20201013",
2905 "documentationLink": "https://developers.google.com/spectrum-access-system/",
2906 "discoveryVersion": "v1"
2907}