<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="sasportal_v1alpha1.html">SAS Portal API</a> . <a href="sasportal_v1alpha1.customers.html">customers</a> . <a href="sasportal_v1alpha1.customers.deployments.html">deployments</a> . <a href="sasportal_v1alpha1.customers.deployments.devices.html">devices</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a device under a node or customer.</p>
<p class="toc_element">
  <code><a href="#createSigned">createSigned(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a signed device under a node or customer.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists devices under a node or customer.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a device under a node or customer.

Args:
  parent: string, Required. The name of the parent resource. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;activeConfig&quot;: { # Information about the device configuration. # Output only. Current configuration of the device as registered to the SAS.
    &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
      &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
      &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
    },
    &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
    &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
    &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
      &quot;antennaAzimuth&quot;: 42, # 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.
      &quot;antennaBeamwidth&quot;: 42, # 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.
      &quot;antennaDowntilt&quot;: 42, # 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.
      &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
      &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
      &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
      &quot;eirpCapability&quot;: 42, # 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.
      &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
      &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
      &quot;horizontalAccuracy&quot;: 3.14, # 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.
      &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
      &quot;latitude&quot;: 3.14, # 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.
      &quot;longitude&quot;: 3.14, # 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.
      &quot;verticalAccuracy&quot;: 3.14, # 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.
    },
    &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
    &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
      &quot;A String&quot;,
    ],
    &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
      &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
      &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
      &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
      &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
      &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
    },
    &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
    &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
  },
  &quot;currentChannels&quot;: [ # Output only. Current channels with scores.
    { # The channel with score.
      &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range of the channel.
        &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
        &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
      },
      &quot;score&quot;: 3.14, # The channel score, normalized to be in [0,100].
    },
  ],
  &quot;deviceMetadata&quot;: { # Device data overridable by both SAS Portal and registration requests. # Device parameters that can be overridden by both SAS Portal and SAS registration requests.
    &quot;antennaModel&quot;: &quot;A String&quot;, # If populated, the Antenna Model Pattern to use. Format is: RecordCreatorId:PatternId
    &quot;commonChannelGroup&quot;: &quot;A String&quot;, # CCG. A group of CBSDs in the same ICG requesting a common primary channel assignment. See CBRSA-TS-2001 V3.0.0 for more details.
    &quot;interferenceCoordinationGroup&quot;: &quot;A String&quot;, # ICG. A group of CBSDs that manage their own interference with the group. See CBRSA-TS-2001 V3.0.0 for more details.
  },
  &quot;displayName&quot;: &quot;A String&quot;, # Device display name.
  &quot;fccId&quot;: &quot;A String&quot;, # The FCC identifier of the device.
  &quot;grantRangeAllowlists&quot;: [ # Only ranges within the allowlists are available for new grants.
    { # Frequency range from `low_frequency` to `high_frequency`.
      &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
      &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
    },
  ],
  &quot;grants&quot;: [ # Output only. Grants held by the device.
    { # 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.
      &quot;channelType&quot;: &quot;A String&quot;, # Type of channel used.
      &quot;expireTime&quot;: &quot;A String&quot;, # The expiration time of the grant.
      &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The transmission frequency range.
        &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
        &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
      },
      &quot;grantId&quot;: &quot;A String&quot;, # Grant Id.
      &quot;maxEirp&quot;: 3.14, # 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).
      &quot;moveList&quot;: [ # The DPA move lists on which this grant appears.
        { # An entry in a DPA&#x27;s move list.
          &quot;dpaId&quot;: &quot;A String&quot;, # The ID of the DPA.
          &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range that the move list affects.
            &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
            &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
          },
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # State of the grant.
      &quot;suspensionReason&quot;: [ # If the grant is suspended, the reason(s) for suspension.
        &quot;A String&quot;,
      ],
    },
  ],
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource path name.
  &quot;preloadedConfig&quot;: { # Information about the device configuration. # Configuration of the device, as specified via SAS Portal API.
    &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
      &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
      &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
    },
    &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
    &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
    &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
      &quot;antennaAzimuth&quot;: 42, # 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.
      &quot;antennaBeamwidth&quot;: 42, # 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.
      &quot;antennaDowntilt&quot;: 42, # 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.
      &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
      &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
      &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
      &quot;eirpCapability&quot;: 42, # 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.
      &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
      &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
      &quot;horizontalAccuracy&quot;: 3.14, # 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.
      &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
      &quot;latitude&quot;: 3.14, # 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.
      &quot;longitude&quot;: 3.14, # 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.
      &quot;verticalAccuracy&quot;: 3.14, # 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.
    },
    &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
    &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
      &quot;A String&quot;,
    ],
    &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
      &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
      &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
      &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
      &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
      &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
    },
    &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
    &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
  },
  &quot;serialNumber&quot;: &quot;A String&quot;, # A serial number assigned to the device by the device manufacturer.
  &quot;state&quot;: &quot;A String&quot;, # Output only. Device state.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;activeConfig&quot;: { # Information about the device configuration. # Output only. Current configuration of the device as registered to the SAS.
    &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
      &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
      &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
    },
    &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
    &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
    &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
      &quot;antennaAzimuth&quot;: 42, # 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.
      &quot;antennaBeamwidth&quot;: 42, # 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.
      &quot;antennaDowntilt&quot;: 42, # 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.
      &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
      &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
      &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
      &quot;eirpCapability&quot;: 42, # 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.
      &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
      &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
      &quot;horizontalAccuracy&quot;: 3.14, # 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.
      &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
      &quot;latitude&quot;: 3.14, # 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.
      &quot;longitude&quot;: 3.14, # 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.
      &quot;verticalAccuracy&quot;: 3.14, # 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.
    },
    &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
    &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
      &quot;A String&quot;,
    ],
    &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
      &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
      &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
      &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
      &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
      &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
    },
    &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
    &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
  },
  &quot;currentChannels&quot;: [ # Output only. Current channels with scores.
    { # The channel with score.
      &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range of the channel.
        &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
        &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
      },
      &quot;score&quot;: 3.14, # The channel score, normalized to be in [0,100].
    },
  ],
  &quot;deviceMetadata&quot;: { # Device data overridable by both SAS Portal and registration requests. # Device parameters that can be overridden by both SAS Portal and SAS registration requests.
    &quot;antennaModel&quot;: &quot;A String&quot;, # If populated, the Antenna Model Pattern to use. Format is: RecordCreatorId:PatternId
    &quot;commonChannelGroup&quot;: &quot;A String&quot;, # CCG. A group of CBSDs in the same ICG requesting a common primary channel assignment. See CBRSA-TS-2001 V3.0.0 for more details.
    &quot;interferenceCoordinationGroup&quot;: &quot;A String&quot;, # ICG. A group of CBSDs that manage their own interference with the group. See CBRSA-TS-2001 V3.0.0 for more details.
  },
  &quot;displayName&quot;: &quot;A String&quot;, # Device display name.
  &quot;fccId&quot;: &quot;A String&quot;, # The FCC identifier of the device.
  &quot;grantRangeAllowlists&quot;: [ # Only ranges within the allowlists are available for new grants.
    { # Frequency range from `low_frequency` to `high_frequency`.
      &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
      &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
    },
  ],
  &quot;grants&quot;: [ # Output only. Grants held by the device.
    { # 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.
      &quot;channelType&quot;: &quot;A String&quot;, # Type of channel used.
      &quot;expireTime&quot;: &quot;A String&quot;, # The expiration time of the grant.
      &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The transmission frequency range.
        &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
        &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
      },
      &quot;grantId&quot;: &quot;A String&quot;, # Grant Id.
      &quot;maxEirp&quot;: 3.14, # 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).
      &quot;moveList&quot;: [ # The DPA move lists on which this grant appears.
        { # An entry in a DPA&#x27;s move list.
          &quot;dpaId&quot;: &quot;A String&quot;, # The ID of the DPA.
          &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range that the move list affects.
            &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
            &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
          },
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # State of the grant.
      &quot;suspensionReason&quot;: [ # If the grant is suspended, the reason(s) for suspension.
        &quot;A String&quot;,
      ],
    },
  ],
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource path name.
  &quot;preloadedConfig&quot;: { # Information about the device configuration. # Configuration of the device, as specified via SAS Portal API.
    &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
      &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
      &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
    },
    &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
    &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
    &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
      &quot;antennaAzimuth&quot;: 42, # 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.
      &quot;antennaBeamwidth&quot;: 42, # 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.
      &quot;antennaDowntilt&quot;: 42, # 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.
      &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
      &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
      &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
      &quot;eirpCapability&quot;: 42, # 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.
      &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
      &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
      &quot;horizontalAccuracy&quot;: 3.14, # 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.
      &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
      &quot;latitude&quot;: 3.14, # 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.
      &quot;longitude&quot;: 3.14, # 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.
      &quot;verticalAccuracy&quot;: 3.14, # 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.
    },
    &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
    &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
      &quot;A String&quot;,
    ],
    &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
      &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
      &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
      &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
      &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
      &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
    },
    &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
    &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
  },
  &quot;serialNumber&quot;: &quot;A String&quot;, # A serial number assigned to the device by the device manufacturer.
  &quot;state&quot;: &quot;A String&quot;, # Output only. Device state.
}</pre>
</div>

<div class="method">
    <code class="details" id="createSigned">createSigned(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a signed device under a node or customer.

Args:
  parent: string, Required. The name of the parent resource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for CreateSignedDevice.
  &quot;encodedDevice&quot;: &quot;A String&quot;, # 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.
  &quot;installerId&quot;: &quot;A String&quot;, # Required. Unique installer id (CPI ID) from the Certified Professional Installers database.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;activeConfig&quot;: { # Information about the device configuration. # Output only. Current configuration of the device as registered to the SAS.
    &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
      &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
      &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
    },
    &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
    &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
    &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
      &quot;antennaAzimuth&quot;: 42, # 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.
      &quot;antennaBeamwidth&quot;: 42, # 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.
      &quot;antennaDowntilt&quot;: 42, # 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.
      &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
      &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
      &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
      &quot;eirpCapability&quot;: 42, # 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.
      &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
      &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
      &quot;horizontalAccuracy&quot;: 3.14, # 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.
      &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
      &quot;latitude&quot;: 3.14, # 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.
      &quot;longitude&quot;: 3.14, # 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.
      &quot;verticalAccuracy&quot;: 3.14, # 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.
    },
    &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
    &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
      &quot;A String&quot;,
    ],
    &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
      &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
      &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
      &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
      &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
      &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
    },
    &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
    &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
  },
  &quot;currentChannels&quot;: [ # Output only. Current channels with scores.
    { # The channel with score.
      &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range of the channel.
        &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
        &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
      },
      &quot;score&quot;: 3.14, # The channel score, normalized to be in [0,100].
    },
  ],
  &quot;deviceMetadata&quot;: { # Device data overridable by both SAS Portal and registration requests. # Device parameters that can be overridden by both SAS Portal and SAS registration requests.
    &quot;antennaModel&quot;: &quot;A String&quot;, # If populated, the Antenna Model Pattern to use. Format is: RecordCreatorId:PatternId
    &quot;commonChannelGroup&quot;: &quot;A String&quot;, # CCG. A group of CBSDs in the same ICG requesting a common primary channel assignment. See CBRSA-TS-2001 V3.0.0 for more details.
    &quot;interferenceCoordinationGroup&quot;: &quot;A String&quot;, # ICG. A group of CBSDs that manage their own interference with the group. See CBRSA-TS-2001 V3.0.0 for more details.
  },
  &quot;displayName&quot;: &quot;A String&quot;, # Device display name.
  &quot;fccId&quot;: &quot;A String&quot;, # The FCC identifier of the device.
  &quot;grantRangeAllowlists&quot;: [ # Only ranges within the allowlists are available for new grants.
    { # Frequency range from `low_frequency` to `high_frequency`.
      &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
      &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
    },
  ],
  &quot;grants&quot;: [ # Output only. Grants held by the device.
    { # 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.
      &quot;channelType&quot;: &quot;A String&quot;, # Type of channel used.
      &quot;expireTime&quot;: &quot;A String&quot;, # The expiration time of the grant.
      &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The transmission frequency range.
        &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
        &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
      },
      &quot;grantId&quot;: &quot;A String&quot;, # Grant Id.
      &quot;maxEirp&quot;: 3.14, # 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).
      &quot;moveList&quot;: [ # The DPA move lists on which this grant appears.
        { # An entry in a DPA&#x27;s move list.
          &quot;dpaId&quot;: &quot;A String&quot;, # The ID of the DPA.
          &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range that the move list affects.
            &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
            &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
          },
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # State of the grant.
      &quot;suspensionReason&quot;: [ # If the grant is suspended, the reason(s) for suspension.
        &quot;A String&quot;,
      ],
    },
  ],
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource path name.
  &quot;preloadedConfig&quot;: { # Information about the device configuration. # Configuration of the device, as specified via SAS Portal API.
    &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
      &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
      &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
    },
    &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
    &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
    &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
      &quot;antennaAzimuth&quot;: 42, # 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.
      &quot;antennaBeamwidth&quot;: 42, # 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.
      &quot;antennaDowntilt&quot;: 42, # 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.
      &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
      &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
      &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
      &quot;eirpCapability&quot;: 42, # 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.
      &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
      &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
      &quot;horizontalAccuracy&quot;: 3.14, # 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.
      &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
      &quot;latitude&quot;: 3.14, # 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.
      &quot;longitude&quot;: 3.14, # 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.
      &quot;verticalAccuracy&quot;: 3.14, # 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.
    },
    &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
    &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
      &quot;A String&quot;,
    ],
    &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
      &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
      &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
      &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
      &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
      &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
    },
    &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
    &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
  },
  &quot;serialNumber&quot;: &quot;A String&quot;, # A serial number assigned to the device by the device manufacturer.
  &quot;state&quot;: &quot;A String&quot;, # Output only. Device state.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists devices under a node or customer.

Args:
  parent: string, Required. The name of the parent resource. (required)
  filter: string, The filter expression. The filter should have one of the following formats: &quot;sn=123454&quot; or &quot;display_name=MyDevice&quot;. sn corresponds to serial number of the device. The filter is case insensitive.
  pageSize: integer, 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].
  pageToken: string, A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for ListDevices.
  &quot;devices&quot;: [ # The devices that match the request.
    {
      &quot;activeConfig&quot;: { # Information about the device configuration. # Output only. Current configuration of the device as registered to the SAS.
        &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
          &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
          &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
        },
        &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
        &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
        &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
          &quot;antennaAzimuth&quot;: 42, # 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.
          &quot;antennaBeamwidth&quot;: 42, # 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.
          &quot;antennaDowntilt&quot;: 42, # 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.
          &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
          &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
          &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
          &quot;eirpCapability&quot;: 42, # 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.
          &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
          &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
          &quot;horizontalAccuracy&quot;: 3.14, # 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.
          &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
          &quot;latitude&quot;: 3.14, # 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.
          &quot;longitude&quot;: 3.14, # 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.
          &quot;verticalAccuracy&quot;: 3.14, # 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.
        },
        &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
        &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
          &quot;A String&quot;,
        ],
        &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
          &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
          &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
          &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
          &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
          &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
        },
        &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
        &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
      },
      &quot;currentChannels&quot;: [ # Output only. Current channels with scores.
        { # The channel with score.
          &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range of the channel.
            &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
            &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
          },
          &quot;score&quot;: 3.14, # The channel score, normalized to be in [0,100].
        },
      ],
      &quot;deviceMetadata&quot;: { # Device data overridable by both SAS Portal and registration requests. # Device parameters that can be overridden by both SAS Portal and SAS registration requests.
        &quot;antennaModel&quot;: &quot;A String&quot;, # If populated, the Antenna Model Pattern to use. Format is: RecordCreatorId:PatternId
        &quot;commonChannelGroup&quot;: &quot;A String&quot;, # CCG. A group of CBSDs in the same ICG requesting a common primary channel assignment. See CBRSA-TS-2001 V3.0.0 for more details.
        &quot;interferenceCoordinationGroup&quot;: &quot;A String&quot;, # ICG. A group of CBSDs that manage their own interference with the group. See CBRSA-TS-2001 V3.0.0 for more details.
      },
      &quot;displayName&quot;: &quot;A String&quot;, # Device display name.
      &quot;fccId&quot;: &quot;A String&quot;, # The FCC identifier of the device.
      &quot;grantRangeAllowlists&quot;: [ # Only ranges within the allowlists are available for new grants.
        { # Frequency range from `low_frequency` to `high_frequency`.
          &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
          &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
        },
      ],
      &quot;grants&quot;: [ # Output only. Grants held by the device.
        { # 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.
          &quot;channelType&quot;: &quot;A String&quot;, # Type of channel used.
          &quot;expireTime&quot;: &quot;A String&quot;, # The expiration time of the grant.
          &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The transmission frequency range.
            &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
            &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
          },
          &quot;grantId&quot;: &quot;A String&quot;, # Grant Id.
          &quot;maxEirp&quot;: 3.14, # 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).
          &quot;moveList&quot;: [ # The DPA move lists on which this grant appears.
            { # An entry in a DPA&#x27;s move list.
              &quot;dpaId&quot;: &quot;A String&quot;, # The ID of the DPA.
              &quot;frequencyRange&quot;: { # Frequency range from `low_frequency` to `high_frequency`. # The frequency range that the move list affects.
                &quot;highFrequencyMhz&quot;: 3.14, # The highest frequency of the frequency range in MHz.
                &quot;lowFrequencyMhz&quot;: 3.14, # The lowest frequency of the frequency range in MHz.
              },
            },
          ],
          &quot;state&quot;: &quot;A String&quot;, # State of the grant.
          &quot;suspensionReason&quot;: [ # If the grant is suspended, the reason(s) for suspension.
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource path name.
      &quot;preloadedConfig&quot;: { # Information about the device configuration. # Configuration of the device, as specified via SAS Portal API.
        &quot;airInterface&quot;: { # Information about the device&#x27;s air interface. # Information about this device&#x27;s air interface.
          &quot;radioTechnology&quot;: &quot;A String&quot;, # Conditional. This field specifies the radio access technology that is used for the CBSD.
          &quot;supportedSpec&quot;: &quot;A String&quot;, # Optional. This field is related to the `radioTechnology` and provides the air interface specification that the CBSD is compliant with at the time of registration.
        },
        &quot;callSign&quot;: &quot;A String&quot;, # The call sign of the device operator.
        &quot;category&quot;: &quot;A String&quot;, # FCC category of the device.
        &quot;installationParams&quot;: { # Information about the device installation parameters. # Installation parameters for the device.
          &quot;antennaAzimuth&quot;: 42, # 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.
          &quot;antennaBeamwidth&quot;: 42, # 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.
          &quot;antennaDowntilt&quot;: 42, # 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.
          &quot;antennaGain&quot;: 42, # Peak antenna gain in dBi. This parameter is an integer with a value between -127 and +128 (dBi) inclusive.
          &quot;antennaModel&quot;: &quot;A String&quot;, # If an external antenna is used, the antenna model is optionally provided in this field. The string has a maximum length of 128 octets.
          &quot;cpeCbsdIndication&quot;: True or False, # If present, this parameter specifies whether the CBSD is a CPE-CBSD or not.
          &quot;eirpCapability&quot;: 42, # 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.
          &quot;height&quot;: 3.14, # Device antenna height in meters. When the `heightType` parameter value is &quot;AGL&quot;, the antenna height should be given relative to ground level. When the `heightType` parameter value is &quot;AMSL&quot;, it is given with respect to WGS84 datum.
          &quot;heightType&quot;: &quot;A String&quot;, # Specifies how the height is measured.
          &quot;horizontalAccuracy&quot;: 3.14, # 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.
          &quot;indoorDeployment&quot;: True or False, # Whether the device antenna is indoor or not. `true`: indoor. `false`: outdoor.
          &quot;latitude&quot;: 3.14, # 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.
          &quot;longitude&quot;: 3.14, # 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.
          &quot;verticalAccuracy&quot;: 3.14, # 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.
        },
        &quot;isSigned&quot;: True or False, # Output only. Whether the configuration has been signed by a CPI.
        &quot;measurementCapabilities&quot;: [ # Measurement reporting capabilities of the device.
          &quot;A String&quot;,
        ],
        &quot;model&quot;: { # Information about the model of the device. # Information about this device model.
          &quot;firmwareVersion&quot;: &quot;A String&quot;, # The firmware version of the device.
          &quot;hardwareVersion&quot;: &quot;A String&quot;, # The hardware version of the device.
          &quot;name&quot;: &quot;A String&quot;, # The name of the device model.
          &quot;softwareVersion&quot;: &quot;A String&quot;, # The software version of the device.
          &quot;vendor&quot;: &quot;A String&quot;, # The name of the device vendor.
        },
        &quot;state&quot;: &quot;A String&quot;, # State of the configuration.
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last time the device configuration was edited.
        &quot;userId&quot;: &quot;A String&quot;, # The identifier of a device user.
      },
      &quot;serialNumber&quot;: &quot;A String&quot;, # A serial number assigned to the device by the device manufacturer.
      &quot;state&quot;: &quot;A String&quot;, # Output only. Device state.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A pagination token returned from a previous call to ListDevices that indicates from where listing should continue. If the field is missing or empty, it means there is no more devices.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>