| { |
| "auth": { |
| "oauth2": { |
| "scopes": { |
| "https://www.googleapis.com/auth/userinfo.email": { |
| "description": "View your email address" |
| } |
| } |
| } |
| }, |
| "basePath": "", |
| "baseUrl": "https://sasportal.googleapis.com/", |
| "batchPath": "batch", |
| "description": "", |
| "discoveryVersion": "v1", |
| "documentationLink": "https://developers.google.com/spectrum-access-system/", |
| "icons": { |
| "x16": "http://www.google.com/images/icons/product/search-16.gif", |
| "x32": "http://www.google.com/images/icons/product/search-32.gif" |
| }, |
| "id": "sasportal:v1alpha1", |
| "kind": "discovery#restDescription", |
| "name": "sasportal", |
| "ownerDomain": "google.com", |
| "ownerName": "Google", |
| "parameters": { |
| "quotaUser": { |
| "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.", |
| "location": "query", |
| "type": "string" |
| }, |
| "oauth_token": { |
| "description": "OAuth 2.0 token for the current user.", |
| "location": "query", |
| "type": "string" |
| }, |
| "prettyPrint": { |
| "default": "true", |
| "description": "Returns response with indentations and line breaks.", |
| "location": "query", |
| "type": "boolean" |
| }, |
| "callback": { |
| "description": "JSONP", |
| "location": "query", |
| "type": "string" |
| }, |
| "upload_protocol": { |
| "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", |
| "location": "query", |
| "type": "string" |
| }, |
| "uploadType": { |
| "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", |
| "location": "query", |
| "type": "string" |
| }, |
| "access_token": { |
| "description": "OAuth access token.", |
| "location": "query", |
| "type": "string" |
| }, |
| "key": { |
| "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.", |
| "location": "query", |
| "type": "string" |
| }, |
| "alt": { |
| "default": "json", |
| "description": "Data format for response.", |
| "enum": [ |
| "json", |
| "media", |
| "proto" |
| ], |
| "enumDescriptions": [ |
| "Responses with Content-Type of application/json", |
| "Media download with context-dependent Content-Type", |
| "Responses with Content-Type of application/x-protobuf" |
| ], |
| "location": "query", |
| "type": "string" |
| }, |
| "fields": { |
| "description": "Selector specifying which fields to include in a partial response.", |
| "location": "query", |
| "type": "string" |
| }, |
| "$.xgafv": { |
| "description": "V1 error format.", |
| "enum": [ |
| "1", |
| "2" |
| ], |
| "enumDescriptions": [ |
| "v1 error format", |
| "v2 error format" |
| ], |
| "location": "query", |
| "type": "string" |
| } |
| }, |
| "protocol": "rest", |
| "resources": { |
| "installer": { |
| "methods": { |
| "validate": { |
| "description": "Validates the identity of a Certified Professional Installer (CPI).", |
| "httpMethod": "POST", |
| "id": "sasportal.installer.validate", |
| "parameterOrder": [], |
| "parameters": {}, |
| "path": "v1alpha1/installer:validate", |
| "request": { |
| "$ref": "SasPortalValidateInstallerRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalValidateInstallerResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "generateSecret": { |
| "description": "Generates a secret to be used with the ValidateInstaller method", |
| "httpMethod": "POST", |
| "id": "sasportal.installer.generateSecret", |
| "parameterOrder": [], |
| "parameters": {}, |
| "path": "v1alpha1/installer:generateSecret", |
| "request": { |
| "$ref": "SasPortalGenerateSecretRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalGenerateSecretResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| }, |
| "policies": { |
| "methods": { |
| "get": { |
| "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", |
| "httpMethod": "POST", |
| "id": "sasportal.policies.get", |
| "parameterOrder": [], |
| "parameters": {}, |
| "path": "v1alpha1/policies:get", |
| "request": { |
| "$ref": "SasPortalGetPolicyRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalPolicy" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "test": { |
| "description": "Returns permissions that a caller has on the specified resource.", |
| "httpMethod": "POST", |
| "id": "sasportal.policies.test", |
| "parameterOrder": [], |
| "parameters": {}, |
| "path": "v1alpha1/policies:test", |
| "request": { |
| "$ref": "SasPortalTestPermissionsRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalTestPermissionsResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "set": { |
| "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.", |
| "httpMethod": "POST", |
| "id": "sasportal.policies.set", |
| "parameterOrder": [], |
| "parameters": {}, |
| "path": "v1alpha1/policies:set", |
| "request": { |
| "$ref": "SasPortalSetPolicyRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalPolicy" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| }, |
| "customers": { |
| "methods": { |
| "patch": { |
| "description": "Updates an existing customer.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.customers.patch", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "updateMask": { |
| "description": "Fields to be updated.", |
| "format": "google-fieldmask", |
| "location": "query", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. Resource name of the customer.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "request": { |
| "$ref": "SasPortalCustomer" |
| }, |
| "response": { |
| "$ref": "SasPortalCustomer" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "list": { |
| "description": "Returns a list of requested customers.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.list", |
| "parameterOrder": [], |
| "parameters": { |
| "pageSize": { |
| "description": "The maximum number of customers\nto return in the response.", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| }, |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListCustomers method that indicates where\nthis listing should continue from.", |
| "location": "query", |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/customers", |
| "response": { |
| "$ref": "SasPortalListCustomersResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "get": { |
| "description": "Returns a requested customer.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.get", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the customer.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalCustomer" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| }, |
| "resources": { |
| "devices": { |
| "methods": { |
| "patch": { |
| "description": "Updates a device.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.customers.devices.patch", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "updateMask": { |
| "description": "Fields to be updated.", |
| "format": "google-fieldmask", |
| "location": "query", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. The resource path name.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "request": { |
| "$ref": "SasPortalDevice" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "signDevice": { |
| "description": "Signs a device.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.devices.signDevice", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Output only. The resource path name.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:signDevice", |
| "request": { |
| "$ref": "SasPortalSignDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalEmpty" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "get": { |
| "description": "Gets details about a device.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.devices.get", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "list": { |
| "description": "Lists devices under a node or customer.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.devices.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListDevices\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| }, |
| "filter": { |
| "description": "The filter expression. The filter should have one of the following\nformats: \"sn=123454\" or \"display_name=MyDevice\". sn\ncorresponds to serial_number of the device. The filter is case insensitive.", |
| "location": "query", |
| "type": "string" |
| }, |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "description": "The maximum number of devices to return in the response.\nIf empty or zero, all devices will be listed.\nMust be in the range [0, 1000].", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices", |
| "response": { |
| "$ref": "SasPortalListDevicesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a device under a node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.devices.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices", |
| "request": { |
| "$ref": "SasPortalDevice" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "delete": { |
| "description": "Deletes a device.", |
| "httpMethod": "DELETE", |
| "id": "sasportal.customers.devices.delete", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalEmpty" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "createSigned": { |
| "description": "Creates a signed device under a\nnode or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.devices.createSigned", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices:createSigned", |
| "request": { |
| "$ref": "SasPortalCreateSignedDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "bulk": { |
| "description": "Creates a device under a node or customer. Returned devices are unordered.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.devices.bulk", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices:bulk", |
| "request": { |
| "$ref": "SasPortalBulkCreateDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalBulkCreateDeviceResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "updateSigned": { |
| "description": "Updates a signed device.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.customers.devices.updateSigned", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device to update.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:updateSigned", |
| "request": { |
| "$ref": "SasPortalUpdateSignedDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "move": { |
| "description": "Moves a device under another node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.devices.move", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device to move.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:move", |
| "request": { |
| "$ref": "SasPortalMoveDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalOperation" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| }, |
| "nodes": { |
| "methods": { |
| "patch": { |
| "description": "Updates an existing node.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.customers.nodes.patch", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "updateMask": { |
| "description": "Fields to be updated.", |
| "format": "google-fieldmask", |
| "location": "query", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. Resource name.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "request": { |
| "$ref": "SasPortalNode" |
| }, |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "get": { |
| "description": "Returns a requested node.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.nodes.get", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the node.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "list": { |
| "description": "Lists nodes.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.nodes.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListNodes method\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| }, |
| "parent": { |
| "description": "Required. The parent resource name, for example, \"nodes/1\".", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "description": "The maximum number of nodes to return in the response.", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "response": { |
| "$ref": "SasPortalListNodesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a new node.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.nodes.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The parent resource name where the node is to be created.", |
| "location": "path", |
| "pattern": "^customers/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "request": { |
| "$ref": "SasPortalNode" |
| }, |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "delete": { |
| "description": "Deletes a node.", |
| "httpMethod": "DELETE", |
| "id": "sasportal.customers.nodes.delete", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the node.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalEmpty" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "move": { |
| "description": "Moves a node under another node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.nodes.move", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the node to\nmove.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:move", |
| "request": { |
| "$ref": "SasPortalMoveNodeRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalOperation" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| }, |
| "resources": { |
| "nodes": { |
| "methods": { |
| "list": { |
| "description": "Lists nodes.", |
| "httpMethod": "GET", |
| "id": "sasportal.customers.nodes.nodes.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "pageSize": { |
| "description": "The maximum number of nodes to return in the response.", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| }, |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListNodes method\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| }, |
| "parent": { |
| "description": "Required. The parent resource name, for example, \"nodes/1\".", |
| "location": "path", |
| "pattern": "^customers/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "response": { |
| "$ref": "SasPortalListNodesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a new node.", |
| "httpMethod": "POST", |
| "id": "sasportal.customers.nodes.nodes.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The parent resource name where the node is to be created.", |
| "location": "path", |
| "pattern": "^customers/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "request": { |
| "$ref": "SasPortalNode" |
| }, |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| } |
| } |
| } |
| } |
| }, |
| "nodes": { |
| "resources": { |
| "nodes": { |
| "methods": { |
| "move": { |
| "description": "Moves a node under another node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.nodes.move", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the node to\nmove.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:move", |
| "request": { |
| "$ref": "SasPortalMoveNodeRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalOperation" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "patch": { |
| "description": "Updates an existing node.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.nodes.nodes.patch", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "updateMask": { |
| "description": "Fields to be updated.", |
| "format": "google-fieldmask", |
| "location": "query", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. Resource name.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "request": { |
| "$ref": "SasPortalNode" |
| }, |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "get": { |
| "description": "Returns a requested node.", |
| "httpMethod": "GET", |
| "id": "sasportal.nodes.nodes.get", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the node.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "list": { |
| "description": "Lists nodes.", |
| "httpMethod": "GET", |
| "id": "sasportal.nodes.nodes.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The parent resource name, for example, \"nodes/1\".", |
| "location": "path", |
| "pattern": "^nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "description": "The maximum number of nodes to return in the response.", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| }, |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListNodes method\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "response": { |
| "$ref": "SasPortalListNodesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a new node.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.nodes.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The parent resource name where the node is to be created.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "request": { |
| "$ref": "SasPortalNode" |
| }, |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "delete": { |
| "description": "Deletes a node.", |
| "httpMethod": "DELETE", |
| "id": "sasportal.nodes.nodes.delete", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the node.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalEmpty" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| }, |
| "resources": { |
| "devices": { |
| "methods": { |
| "list": { |
| "description": "Lists devices under a node or customer.", |
| "httpMethod": "GET", |
| "id": "sasportal.nodes.nodes.devices.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListDevices\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| }, |
| "filter": { |
| "description": "The filter expression. The filter should have one of the following\nformats: \"sn=123454\" or \"display_name=MyDevice\". sn\ncorresponds to serial_number of the device. The filter is case insensitive.", |
| "location": "query", |
| "type": "string" |
| }, |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "description": "The maximum number of devices to return in the response.\nIf empty or zero, all devices will be listed.\nMust be in the range [0, 1000].", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices", |
| "response": { |
| "$ref": "SasPortalListDevicesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "createSigned": { |
| "description": "Creates a signed device under a\nnode or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.nodes.devices.createSigned", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices:createSigned", |
| "request": { |
| "$ref": "SasPortalCreateSignedDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "bulk": { |
| "description": "Creates a device under a node or customer. Returned devices are unordered.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.nodes.devices.bulk", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices:bulk", |
| "request": { |
| "$ref": "SasPortalBulkCreateDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalBulkCreateDeviceResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a device under a node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.nodes.devices.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices", |
| "request": { |
| "$ref": "SasPortalDevice" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| }, |
| "nodes": { |
| "methods": { |
| "list": { |
| "description": "Lists nodes.", |
| "httpMethod": "GET", |
| "id": "sasportal.nodes.nodes.nodes.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListNodes method\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| }, |
| "parent": { |
| "description": "Required. The parent resource name, for example, \"nodes/1\".", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "description": "The maximum number of nodes to return in the response.", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "response": { |
| "$ref": "SasPortalListNodesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a new node.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.nodes.nodes.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The parent resource name where the node is to be created.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/nodes", |
| "request": { |
| "$ref": "SasPortalNode" |
| }, |
| "response": { |
| "$ref": "SasPortalNode" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| } |
| } |
| }, |
| "devices": { |
| "methods": { |
| "createSigned": { |
| "description": "Creates a signed device under a\nnode or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.devices.createSigned", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices:createSigned", |
| "request": { |
| "$ref": "SasPortalCreateSignedDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "bulk": { |
| "description": "Creates a device under a node or customer. Returned devices are unordered.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.devices.bulk", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices:bulk", |
| "request": { |
| "$ref": "SasPortalBulkCreateDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalBulkCreateDeviceResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "updateSigned": { |
| "description": "Updates a signed device.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.nodes.devices.updateSigned", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device to update.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:updateSigned", |
| "request": { |
| "$ref": "SasPortalUpdateSignedDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "move": { |
| "description": "Moves a device under another node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.devices.move", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device to move.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:move", |
| "request": { |
| "$ref": "SasPortalMoveDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalOperation" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "patch": { |
| "description": "Updates a device.", |
| "httpMethod": "PATCH", |
| "id": "sasportal.nodes.devices.patch", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "updateMask": { |
| "description": "Fields to be updated.", |
| "format": "google-fieldmask", |
| "location": "query", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. The resource path name.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "request": { |
| "$ref": "SasPortalDevice" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "signDevice": { |
| "description": "Signs a device.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.devices.signDevice", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Output only. The resource path name.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}:signDevice", |
| "request": { |
| "$ref": "SasPortalSignDeviceRequest" |
| }, |
| "response": { |
| "$ref": "SasPortalEmpty" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "get": { |
| "description": "Gets details about a device.", |
| "httpMethod": "GET", |
| "id": "sasportal.nodes.devices.get", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "list": { |
| "description": "Lists devices under a node or customer.", |
| "httpMethod": "GET", |
| "id": "sasportal.nodes.devices.list", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "filter": { |
| "description": "The filter expression. The filter should have one of the following\nformats: \"sn=123454\" or \"display_name=MyDevice\". sn\ncorresponds to serial_number of the device. The filter is case insensitive.", |
| "location": "query", |
| "type": "string" |
| }, |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "description": "The maximum number of devices to return in the response.\nIf empty or zero, all devices will be listed.\nMust be in the range [0, 1000].", |
| "format": "int32", |
| "location": "query", |
| "type": "integer" |
| }, |
| "pageToken": { |
| "description": "A pagination token returned from a previous call to ListDevices\nthat indicates where this listing should continue from.", |
| "location": "query", |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices", |
| "response": { |
| "$ref": "SasPortalListDevicesResponse" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "create": { |
| "description": "Creates a device under a node or customer.", |
| "httpMethod": "POST", |
| "id": "sasportal.nodes.devices.create", |
| "parameterOrder": [ |
| "parent" |
| ], |
| "parameters": { |
| "parent": { |
| "description": "Required. The name of the parent resource.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+parent}/devices", |
| "request": { |
| "$ref": "SasPortalDevice" |
| }, |
| "response": { |
| "$ref": "SasPortalDevice" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| }, |
| "delete": { |
| "description": "Deletes a device.", |
| "httpMethod": "DELETE", |
| "id": "sasportal.nodes.devices.delete", |
| "parameterOrder": [ |
| "name" |
| ], |
| "parameters": { |
| "name": { |
| "description": "Required. The name of the device.", |
| "location": "path", |
| "pattern": "^nodes/[^/]+/devices/[^/]+$", |
| "required": true, |
| "type": "string" |
| } |
| }, |
| "path": "v1alpha1/{+name}", |
| "response": { |
| "$ref": "SasPortalEmpty" |
| }, |
| "scopes": [ |
| "https://www.googleapis.com/auth/userinfo.email" |
| ] |
| } |
| } |
| } |
| } |
| } |
| }, |
| "revision": "20200504", |
| "rootUrl": "https://sasportal.googleapis.com/", |
| "schemas": { |
| "SasPortalPolicy": { |
| "description": "Defines an access control policy to the resources.", |
| "id": "SasPortalPolicy", |
| "properties": { |
| "etag": { |
| "description": "The [etag] is used for optimistic concurrency control as a way to\nhelp prevent simultaneous updates of a policy from overwriting\neach other. It is strongly suggested that systems make use of\nthe [etag] in the read-modify-write cycle to perform policy\nupdates in order to avoid race conditions: An [etag] is returned\nin the response to [GetPolicy], and systems are expected to put\nthat etag in the request to [SetPolicy] to ensure that their\nchange will be applied to the same version of the policy.\n\nIf no [etag] is provided in the call to [SetPolicy], then the\nexisting policy is overwritten blindly.", |
| "format": "byte", |
| "type": "string" |
| }, |
| "assignments": { |
| "items": { |
| "$ref": "SasPortalAssignment" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalDeviceGrant": { |
| "description": "Device grant. It is an authorization provided by the Spectrum\nAccess System to a device to transmit using specified operating\nparameters after a successful heartbeat by the device.", |
| "id": "SasPortalDeviceGrant", |
| "properties": { |
| "state": { |
| "description": "State of the grant.", |
| "enum": [ |
| "GRANT_STATE_UNSPECIFIED", |
| "GRANT_STATE_GRANTED", |
| "GRANT_STATE_TERMINATED", |
| "GRANT_STATE_SUSPENDED", |
| "GRANT_STATE_AUTHORIZED", |
| "GRANT_STATE_EXPIRED" |
| ], |
| "enumDescriptions": [ |
| "", |
| "The grant has been granted but the device is not heartbeating on it.", |
| "The grant has been terminated by the SAS.", |
| "The grant has been suspended by the SAS.", |
| "The device is currently transmitting.", |
| "The grant has expired." |
| ], |
| "type": "string" |
| }, |
| "channelType": { |
| "description": "Type of channel used.", |
| "enum": [ |
| "CHANNEL_TYPE_UNSPECIFIED", |
| "CHANNEL_TYPE_GAA", |
| "CHANNEL_TYPE_PAL" |
| ], |
| "enumDescriptions": [ |
| "", |
| "", |
| "" |
| ], |
| "type": "string" |
| }, |
| "maxEirp": { |
| "description": "Maximum Equivalent Isotropically Radiated Power (EIRP) permitted\nby the grant. The maximum EIRP is in units of dBm/MHz. The\nvalue of maxEirp represents the average (RMS) EIRP that would be\nmeasured by the procedure defined in FCC part 96.41(e)(3).", |
| "format": "double", |
| "type": "number" |
| }, |
| "moveList": { |
| "description": "The DPA move lists on which this grant appears.", |
| "items": { |
| "$ref": "SasPortalDpaMoveList" |
| }, |
| "type": "array" |
| }, |
| "expireTime": { |
| "description": "The expiration time of the grant.", |
| "format": "google-datetime", |
| "type": "string" |
| }, |
| "suspensionReason": { |
| "description": "If the grant is suspended, the reason(s) for suspension.", |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| }, |
| "frequencyRange": { |
| "$ref": "SasPortalFrequencyRange", |
| "description": "The transmission frequency range." |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalMoveDeviceRequest": { |
| "description": "Request for MoveDevice method.", |
| "id": "SasPortalMoveDeviceRequest", |
| "properties": { |
| "destination": { |
| "description": "Required. The name of the new parent resource (Node or Customer) to\nreparent the device under.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalNode": { |
| "description": "The Node.", |
| "id": "SasPortalNode", |
| "properties": { |
| "displayName": { |
| "description": "The node's display name.", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. Resource name.", |
| "type": "string" |
| }, |
| "sasUserIds": { |
| "description": "User ids used by the devices belonging to this node.", |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalAssignment": { |
| "description": "Associates `members` with a `role`.", |
| "id": "SasPortalAssignment", |
| "properties": { |
| "role": { |
| "description": "Required. Role that is assigned to `members`.", |
| "type": "string" |
| }, |
| "members": { |
| "description": "The identities the role is assigned to. It can have the following\nvalues:\n\n* `{user_email}`: An email address that represents a specific\n Google account. For example: `alice@gmail.com`.\n\n* `{group_email}`: An email address that represents a Google\n group. For example, `viewers@gmail.com`.", |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalBulkCreateDeviceRequest": { |
| "description": "Request for BulkCreateDevice method.", |
| "id": "SasPortalBulkCreateDeviceRequest", |
| "properties": { |
| "csv": { |
| "description": "Required. A csv with each row representing a [device]. Each row must\nconform to the regulations described on CreateDeviceRequest's device field.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalBulkCreateDeviceResponse": { |
| "description": "Response for BulkCreateDevice method.", |
| "id": "SasPortalBulkCreateDeviceResponse", |
| "properties": { |
| "devices": { |
| "description": "Required. The devices that were imported.", |
| "items": { |
| "$ref": "SasPortalDevice" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalListNodesResponse": { |
| "description": "Response for ListNodes method.", |
| "id": "SasPortalListNodesResponse", |
| "properties": { |
| "nextPageToken": { |
| "description": "A pagination token returned from a previous call to\nListNodes method\nthat indicates from where listing should continue. If the field is missing\nor empty, it means there is no more nodes.", |
| "type": "string" |
| }, |
| "nodes": { |
| "description": "The nodes that match the request.", |
| "items": { |
| "$ref": "SasPortalNode" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalDeviceConfig": { |
| "description": "Information about the device configuration.", |
| "id": "SasPortalDeviceConfig", |
| "properties": { |
| "measurementCapabilities": { |
| "description": "Measurement reporting capabilities of the device.", |
| "enumDescriptions": [ |
| "", |
| "", |
| "" |
| ], |
| "items": { |
| "enum": [ |
| "MEASUREMENT_CAPABILITY_UNSPECIFIED", |
| "MEASUREMENT_CAPABILITY_RECEIVED_POWER_WITH_GRANT", |
| "MEASUREMENT_CAPABILITY_RECEIVED_POWER_WITHOUT_GRANT" |
| ], |
| "type": "string" |
| }, |
| "type": "array" |
| }, |
| "updateTime": { |
| "description": "Output-only. The last time the device configuration was edited.", |
| "format": "google-datetime", |
| "type": "string" |
| }, |
| "state": { |
| "description": "State of the configuration.", |
| "enum": [ |
| "DEVICE_CONFIG_STATE_UNSPECIFIED", |
| "DRAFT", |
| "FINAL" |
| ], |
| "enumDescriptions": [ |
| "", |
| "", |
| "" |
| ], |
| "type": "string" |
| }, |
| "isSigned": { |
| "description": "Output-only. Whether the configuration has been signed by a CPI.", |
| "type": "boolean" |
| }, |
| "category": { |
| "description": "FCC category of the device.", |
| "enum": [ |
| "DEVICE_CATEGORY_UNSPECIFIED", |
| "DEVICE_CATEGORY_A", |
| "DEVICE_CATEGORY_B" |
| ], |
| "enumDescriptions": [ |
| "Unspecified device category.", |
| "Category A.", |
| "Category B." |
| ], |
| "type": "string" |
| }, |
| "airInterface": { |
| "$ref": "SasPortalDeviceAirInterface", |
| "description": "Information about this device's air interface." |
| }, |
| "installationParams": { |
| "$ref": "SasPortalInstallationParams", |
| "description": "Installation parameters for the device." |
| }, |
| "userId": { |
| "description": "The identifier of a device user.", |
| "type": "string" |
| }, |
| "model": { |
| "$ref": "SasPortalDeviceModel", |
| "description": "Information about this device model." |
| }, |
| "callSign": { |
| "description": "The call sign of the device operator.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalStatus": { |
| "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).", |
| "id": "SasPortalStatus", |
| "properties": { |
| "code": { |
| "description": "The status code, which should be an enum value of google.rpc.Code.", |
| "format": "int32", |
| "type": "integer" |
| }, |
| "details": { |
| "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", |
| "items": { |
| "additionalProperties": { |
| "description": "Properties of the object. Contains field @type with type URL.", |
| "type": "any" |
| }, |
| "type": "object" |
| }, |
| "type": "array" |
| }, |
| "message": { |
| "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalListCustomersResponse": { |
| "description": "Response for `ListCustomers`.", |
| "id": "SasPortalListCustomersResponse", |
| "properties": { |
| "nextPageToken": { |
| "description": "A pagination token returned from a previous call to ListCustomers method that indicates from\nwhere listing should continue. If the field is missing or empty, it means\nthere are no more customers.", |
| "type": "string" |
| }, |
| "customers": { |
| "description": "The list of customers that\nmatch the request.", |
| "items": { |
| "$ref": "SasPortalCustomer" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalMoveNodeRequest": { |
| "description": "Request for MoveNode method.", |
| "id": "SasPortalMoveNodeRequest", |
| "properties": { |
| "destination": { |
| "description": "Required. The name of the new parent resource node or Customer) to reparent the node under.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalGenerateSecretRequest": { |
| "description": "Request for GenerateSecret method]\n[spectrum.sas.portal.v1alpha1.DeviceManager.GenerateSecret].", |
| "id": "SasPortalGenerateSecretRequest", |
| "properties": {}, |
| "type": "object" |
| }, |
| "SasPortalDpaMoveList": { |
| "description": "An entry in a DPA's move list.", |
| "id": "SasPortalDpaMoveList", |
| "properties": { |
| "dpaId": { |
| "description": "The ID of the DPA.", |
| "type": "string" |
| }, |
| "frequencyRange": { |
| "$ref": "SasPortalFrequencyRange", |
| "description": "The frequency range that the move list affects." |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalCreateSignedDeviceRequest": { |
| "description": "Request for CreateSignedDevice method.", |
| "id": "SasPortalCreateSignedDeviceRequest", |
| "properties": { |
| "installerId": { |
| "description": "Required. Unique installer id (cpiId) from the Certified Professional\nInstallers database.", |
| "type": "string" |
| }, |
| "encodedDevice": { |
| "description": "Required. JSON Web Token signed using a CPI private key. Payload\nmust be the JSON encoding of the [Device]. The user_id field must be set.", |
| "format": "byte", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalListDevicesResponse": { |
| "description": "Response for ListDevices method.", |
| "id": "SasPortalListDevicesResponse", |
| "properties": { |
| "devices": { |
| "description": "The devices that match the request.", |
| "items": { |
| "$ref": "SasPortalDevice" |
| }, |
| "type": "array" |
| }, |
| "nextPageToken": { |
| "description": "A pagination token returned from a previous call to ListDevices method\nthat indicates from where listing should continue. If the field\nis missing or empty, it means there is no more devices.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalValidateInstallerResponse": { |
| "description": "Response for ValidateInstaller method]\n[spectrum.sas.portal.v1alpha1.DeviceManager.ValidateInstaller].", |
| "id": "SasPortalValidateInstallerResponse", |
| "properties": {}, |
| "type": "object" |
| }, |
| "SasPortalDeviceModel": { |
| "description": "Information about the model of the device.", |
| "id": "SasPortalDeviceModel", |
| "properties": { |
| "firmwareVersion": { |
| "description": "The firmware version of the device.", |
| "type": "string" |
| }, |
| "vendor": { |
| "description": "The name of the device vendor.", |
| "type": "string" |
| }, |
| "name": { |
| "description": "The name of the device model.", |
| "type": "string" |
| }, |
| "softwareVersion": { |
| "description": "The software version of the device.", |
| "type": "string" |
| }, |
| "hardwareVersion": { |
| "description": "The hardware version of the device.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalGenerateSecretResponse": { |
| "description": "Response for GenerateSecret method.", |
| "id": "SasPortalGenerateSecretResponse", |
| "properties": { |
| "secret": { |
| "description": "The secret generated by the string and used by\n[ValidateInstaller] method.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalOperation": { |
| "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.", |
| "id": "SasPortalOperation", |
| "properties": { |
| "error": { |
| "$ref": "SasPortalStatus", |
| "description": "The error result of the operation in case of failure or cancellation." |
| }, |
| "metadata": { |
| "additionalProperties": { |
| "description": "Properties of the object. Contains field @type with type URL.", |
| "type": "any" |
| }, |
| "description": "Service-specific metadata associated with the operation. It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata. Any method that returns a\nlong-running operation should document the metadata type, if any.", |
| "type": "object" |
| }, |
| "name": { |
| "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`.", |
| "type": "string" |
| }, |
| "done": { |
| "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.", |
| "type": "boolean" |
| }, |
| "response": { |
| "additionalProperties": { |
| "description": "Properties of the object. Contains field @type with type URL.", |
| "type": "any" |
| }, |
| "description": "The normal response of the operation in case of success. If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`. If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name. For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.", |
| "type": "object" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalEmpty": { |
| "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", |
| "id": "SasPortalEmpty", |
| "properties": {}, |
| "type": "object" |
| }, |
| "SasPortalFrequencyRange": { |
| "description": "Frequency range from `low_frequency` to `high_frequency`.", |
| "id": "SasPortalFrequencyRange", |
| "properties": { |
| "lowFrequencyMhz": { |
| "description": "The lowest frequency of the frequency range in MHz.", |
| "format": "double", |
| "type": "number" |
| }, |
| "highFrequencyMhz": { |
| "description": "The highest frequency of the frequency range in MHz.", |
| "format": "double", |
| "type": "number" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalCustomer": { |
| "description": "Entity representing a SAS customer.", |
| "id": "SasPortalCustomer", |
| "properties": { |
| "sasUserIds": { |
| "description": "User IDs used by the devices belonging to this customer.", |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| }, |
| "displayName": { |
| "description": "Required. Name of the organization that the customer entity represents.", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. Resource name of the customer.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalValidateInstallerRequest": { |
| "description": "Request for ValidateInstaller method.", |
| "id": "SasPortalValidateInstallerRequest", |
| "properties": { |
| "installerId": { |
| "description": "Required. Unique installer id (cpiId) from the Certified\nProfessional Installers database.", |
| "type": "string" |
| }, |
| "encodedSecret": { |
| "description": "Required. JSON Web Token signed using a CPI private key. Payload\nmust include a \"secret\" claim whose value is the secret.", |
| "type": "string" |
| }, |
| "secret": { |
| "description": "Required. Secret returned by the GenerateSecret method.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalInstallationParams": { |
| "description": "Information about the device installation parameters.", |
| "id": "SasPortalInstallationParams", |
| "properties": { |
| "heightType": { |
| "description": "Specifies how the height is measured.", |
| "enum": [ |
| "HEIGHT_TYPE_UNSPECIFIED", |
| "HEIGHT_TYPE_AGL", |
| "HEIGHT_TYPE_AMSL" |
| ], |
| "enumDescriptions": [ |
| "Unspecified height type.", |
| "AGL height is measured relative to the ground level.", |
| "AMSL height is measured relative to the mean sea level." |
| ], |
| "type": "string" |
| }, |
| "latitude": { |
| "description": "Latitude of the device antenna location in degrees relative to\nthe WGS 84 datum. The allowed range is from -90.000000 to\n+90.000000. Positive values represent latitudes north of the\nequator; negative values south of the equator.", |
| "format": "double", |
| "type": "number" |
| }, |
| "antennaBeamwidth": { |
| "description": "3-dB antenna beamwidth of the antenna in the horizontal-plane in\ndegrees. This parameter is an unsigned integer having a value\nbetween 0 and 360 (degrees) inclusive; it is optional for\nCategory A devices and conditional for Category B devices.", |
| "format": "int32", |
| "type": "integer" |
| }, |
| "eirpCapability": { |
| "description": "This parameter is the maximum device EIRP in units of dBm/10MHz\nand is an integer with a value between -127 and +47 (dBm/10 MHz)\ninclusive. If not included, SAS interprets it as maximum\nallowable EIRP in units of dBm/10MHz for device category.", |
| "format": "int32", |
| "type": "integer" |
| }, |
| "indoorDeployment": { |
| "description": "Whether the device antenna is indoor or not. True: indoor. False:\noutdoor.", |
| "type": "boolean" |
| }, |
| "antennaAzimuth": { |
| "description": "Boresight direction of the horizontal plane of the antenna in\ndegrees with respect to true north. The value of this parameter\nis an integer with a value between 0 and 359 inclusive. A value\nof 0 degrees means true north; a value of 90 degrees means\neast. This parameter is optional for Category A devices and\nconditional for Category B devices.", |
| "format": "int32", |
| "type": "integer" |
| }, |
| "verticalAccuracy": { |
| "description": "A positive number in meters to indicate accuracy of the device\nantenna vertical location. This optional parameter should only be\npresent if its value is less than the FCC requirement of 3\nmeters.", |
| "format": "double", |
| "type": "number" |
| }, |
| "cpeCbsdIndication": { |
| "description": "If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.", |
| "type": "boolean" |
| }, |
| "horizontalAccuracy": { |
| "description": "A positive number in meters to indicate accuracy of the device\nantenna horizontal location. This optional parameter should only\nbe present if its value is less than the FCC requirement of 50\nmeters.", |
| "format": "double", |
| "type": "number" |
| }, |
| "height": { |
| "description": "Device antenna height in meters. When the heightType parameter\nvalue is \"AGL\", the antenna height should be given relative to\nground level. When the heightType parameter value is \"AMSL\", it\nis given with respect to WGS84 datum.", |
| "format": "double", |
| "type": "number" |
| }, |
| "antennaDowntilt": { |
| "description": "Antenna downtilt in degrees and is an integer with a value\nbetween -90 and +90 inclusive; a negative value means the antenna\nis tilted up (above horizontal). This parameter is optional for\nCategory A devices and conditional for Category B devices.", |
| "format": "int32", |
| "type": "integer" |
| }, |
| "antennaModel": { |
| "description": "If an external antenna is used, the antenna model is optionally\nprovided in this field. The string has a maximum length of 128\noctets.", |
| "type": "string" |
| }, |
| "longitude": { |
| "description": "Longitude of the device antenna location. in degrees relative to\nthe WGS 84 datum. The allowed range is from -180.000000 to\n+180.000000. Positive values represent longitudes east of the\nprime meridian; negative values west of the prime\nmeridian.", |
| "format": "double", |
| "type": "number" |
| }, |
| "antennaGain": { |
| "description": "Peak antenna gain in dBi. This parameter is an integer with a\nvalue between -127 and +128 (dBi) inclusive.", |
| "format": "int32", |
| "type": "integer" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalDeviceAirInterface": { |
| "description": "Information about the device's air interface.", |
| "id": "SasPortalDeviceAirInterface", |
| "properties": { |
| "supportedSpec": { |
| "description": "This field is related to the radioTechnology field and provides the air\ninterface specification that the CBSD is compliant with at the time of\nregistration.\n\nOptional", |
| "type": "string" |
| }, |
| "radioTechnology": { |
| "description": "This field specifies the radio access technology that is used for the CBSD.\n\nConditional", |
| "enum": [ |
| "RADIO_TECHNOLOGY_UNSPECIFIED", |
| "E_UTRA", |
| "CAMBIUM_NETWORKS", |
| "FOUR_G_BBW_SAA_1", |
| "NR", |
| "DOODLE_CBRS", |
| "CW", |
| "REDLINE", |
| "TARANA_WIRELESS" |
| ], |
| "enumDescriptions": [ |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "", |
| "" |
| ], |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalDevice": { |
| "id": "SasPortalDevice", |
| "properties": { |
| "fccId": { |
| "description": "The FCC identifier of the device.", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Output only. The resource path name.", |
| "type": "string" |
| }, |
| "serialNumber": { |
| "description": "A serial number assigned to the device by the device\nmanufacturer.", |
| "type": "string" |
| }, |
| "grants": { |
| "description": "Output only. Grants held by the device.", |
| "items": { |
| "$ref": "SasPortalDeviceGrant" |
| }, |
| "type": "array" |
| }, |
| "activeConfig": { |
| "$ref": "SasPortalDeviceConfig", |
| "description": "Output only. Current configuration of the device as registered to the SAS." |
| }, |
| "preloadedConfig": { |
| "$ref": "SasPortalDeviceConfig", |
| "description": "Configuration of the device, as specified via SAS Portal API." |
| }, |
| "displayName": { |
| "description": "Device display name.", |
| "type": "string" |
| }, |
| "state": { |
| "description": "Output only. Device state.", |
| "enum": [ |
| "DEVICE_STATE_UNSPECIFIED", |
| "RESERVED", |
| "REGISTERED", |
| "DEREGISTERED" |
| ], |
| "enumDescriptions": [ |
| "Unspecified state.", |
| "Device created in the SAS Portal, however, not yet registered\nwith SAS.", |
| "Device registered with SAS.", |
| "Device de-registered with SAS." |
| ], |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalSetPolicyRequest": { |
| "description": "Request message for `SetPolicy` method.", |
| "id": "SasPortalSetPolicyRequest", |
| "properties": { |
| "policy": { |
| "$ref": "SasPortalPolicy", |
| "description": "Required. The policy to be applied to the `resource`." |
| }, |
| "resource": { |
| "description": "Required. The resource for which the policy is being specified. This policy\nreplaces any existing policy.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalTestPermissionsResponse": { |
| "description": "Response message for `TestPermissions` method.", |
| "id": "SasPortalTestPermissionsResponse", |
| "properties": { |
| "permissions": { |
| "description": "A set of permissions that the caller is allowed.", |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalSignDeviceRequest": { |
| "description": "Request for SignDevice method.", |
| "id": "SasPortalSignDeviceRequest", |
| "properties": { |
| "device": { |
| "$ref": "SasPortalDevice", |
| "description": "Required. The device to sign.\nThe device fields name, fcc_id and serial_number must be set.\nThe user_id field must be set." |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalTestPermissionsRequest": { |
| "description": "Request message for `TestPermissions` method.", |
| "id": "SasPortalTestPermissionsRequest", |
| "properties": { |
| "resource": { |
| "description": "Required. The resource for which the permissions are being requested.", |
| "type": "string" |
| }, |
| "permissions": { |
| "description": "The set of permissions to check for the `resource`.", |
| "items": { |
| "type": "string" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalUpdateSignedDeviceRequest": { |
| "description": "Request for UpdateSignedDevice method.", |
| "id": "SasPortalUpdateSignedDeviceRequest", |
| "properties": { |
| "installerId": { |
| "description": "Required. Unique installer ID (CPI ID) from the Certified Professional\nInstallers database.", |
| "type": "string" |
| }, |
| "encodedDevice": { |
| "description": "Required. The JSON Web Token signed using a CPI private key. Payload\nmust be the JSON encoding\nof the device. The user_id field must be set.", |
| "format": "byte", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| }, |
| "SasPortalGetPolicyRequest": { |
| "description": "Request message for `GetPolicy` method.", |
| "id": "SasPortalGetPolicyRequest", |
| "properties": { |
| "resource": { |
| "description": "Required. The resource for which the policy is being requested.", |
| "type": "string" |
| } |
| }, |
| "type": "object" |
| } |
| }, |
| "servicePath": "", |
| "title": "SAS Portal API", |
| "version": "v1alpha1", |
| "version_module": true |
| } |