# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module SpectrumV1explorer # Antenna characteristics provide additional information, such as the antenna # height, antenna type, etc. Whether antenna characteristics must be provided in # a request depends on the device type and regulatory domain. class AntennaCharacteristics include Google::Apis::Core::Hashable # The antenna height in meters. Whether the antenna height is required depends # on the device type and the regulatory domain. Note that the height may be # negative. # Corresponds to the JSON property `height` # @return [Float] attr_accessor :height # If the height is required, then the height type (AGL for above ground level or # AMSL for above mean sea level) is also required. The default is AGL. # Corresponds to the JSON property `heightType` # @return [String] attr_accessor :height_type # The height uncertainty in meters. Whether this is required depends on the # regulatory domain. # Corresponds to the JSON property `heightUncertainty` # @return [Float] attr_accessor :height_uncertainty def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @height = args[:height] if args.key?(:height) @height_type = args[:height_type] if args.key?(:height_type) @height_uncertainty = args[:height_uncertainty] if args.key?(:height_uncertainty) end end # This message contains the name and URI of a database. class DatabaseSpec include Google::Apis::Core::Hashable # The display name for a database. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The corresponding URI of the database. # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @uri = args[:uri] if args.key?(:uri) end end # This message is provided by the database to notify devices of an upcoming # change to the database URI. class DbUpdateSpec include Google::Apis::Core::Hashable # A required list of one or more databases. A device should update its # preconfigured list of databases to replace (only) the database that provided # the response with the specified entries. # Corresponds to the JSON property `databases` # @return [Array] attr_accessor :databases def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @databases = args[:databases] if args.key?(:databases) end end # Device capabilities provide additional information that may be used by a # device to provide additional information to the database that may help it to # determine available spectrum. If the database does not support device # capabilities it will ignore the parameter altogether. class DeviceCapabilities include Google::Apis::Core::Hashable # An optional list of frequency ranges supported by the device. Each element # must contain start and stop frequencies in which the device can operate. # Channel identifiers are optional. When specified, the database should not # return available spectrum that falls outside these ranges or channel IDs. # Corresponds to the JSON property `frequencyRanges` # @return [Array] attr_accessor :frequency_ranges def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @frequency_ranges = args[:frequency_ranges] if args.key?(:frequency_ranges) end end # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. class DeviceDescriptor include Google::Apis::Core::Hashable # Specifies the ETSI white space device category. Valid values are the strings # master and slave. This field is case-insensitive. Consult the ETSI # documentation for details about the device types. # Corresponds to the JSON property `etsiEnDeviceCategory` # @return [String] attr_accessor :etsi_en_device_category # Specifies the ETSI white space device emissions class. The values are # represented by numeric strings, such as 1, 2, etc. Consult the ETSI # documentation for details about the device types. # Corresponds to the JSON property `etsiEnDeviceEmissionsClass` # @return [String] attr_accessor :etsi_en_device_emissions_class # Specifies the ETSI white space device type. Valid values are single-letter # strings, such as A, B, etc. Consult the ETSI documentation for details about # the device types. # Corresponds to the JSON property `etsiEnDeviceType` # @return [String] attr_accessor :etsi_en_device_type # Specifies the ETSI white space device technology identifier. The string value # must not exceed 64 characters in length. Consult the ETSI documentation for # details about the device types. # Corresponds to the JSON property `etsiEnTechnologyId` # @return [String] attr_accessor :etsi_en_technology_id # Specifies the device's FCC certification identifier. The value is an # identifier string whose length should not exceed 32 characters. Note that, in # practice, a valid FCC ID may be limited to 19 characters. # Corresponds to the JSON property `fccId` # @return [String] attr_accessor :fcc_id # Specifies the TV Band White Space device type, as defined by the FCC. Valid # values are FIXED, MODE_1, MODE_2. # Corresponds to the JSON property `fccTvbdDeviceType` # @return [String] attr_accessor :fcc_tvbd_device_type # The manufacturer's ID may be required by the regulatory domain. This should # represent the name of the device manufacturer, should be consistent across all # devices from the same manufacturer, and should be distinct from that of other # manufacturers. The string value must not exceed 64 characters in length. # Corresponds to the JSON property `manufacturerId` # @return [String] attr_accessor :manufacturer_id # The device's model ID may be required by the regulatory domain. The string # value must not exceed 64 characters in length. # Corresponds to the JSON property `modelId` # @return [String] attr_accessor :model_id # The list of identifiers for rulesets supported by the device. A database may # require that the device provide this list before servicing the device requests. # If the database does not support any of the rulesets specified in the list, # the database may refuse to service the device requests. If present, the list # must contain at least one entry. # For information about the valid requests, see section 9.2 of the PAWS # specification. Currently, FccTvBandWhiteSpace-2010 is the only supported # ruleset. # Corresponds to the JSON property `rulesetIds` # @return [Array] attr_accessor :ruleset_ids # The manufacturer's device serial number; required by the applicable regulatory # domain. The length of the value must not exceed 64 characters. # Corresponds to the JSON property `serialNumber` # @return [String] attr_accessor :serial_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etsi_en_device_category = args[:etsi_en_device_category] if args.key?(:etsi_en_device_category) @etsi_en_device_emissions_class = args[:etsi_en_device_emissions_class] if args.key?(:etsi_en_device_emissions_class) @etsi_en_device_type = args[:etsi_en_device_type] if args.key?(:etsi_en_device_type) @etsi_en_technology_id = args[:etsi_en_technology_id] if args.key?(:etsi_en_technology_id) @fcc_id = args[:fcc_id] if args.key?(:fcc_id) @fcc_tvbd_device_type = args[:fcc_tvbd_device_type] if args.key?(:fcc_tvbd_device_type) @manufacturer_id = args[:manufacturer_id] if args.key?(:manufacturer_id) @model_id = args[:model_id] if args.key?(:model_id) @ruleset_ids = args[:ruleset_ids] if args.key?(:ruleset_ids) @serial_number = args[:serial_number] if args.key?(:serial_number) end end # This parameter contains device-owner information required as part of device # registration. The regulatory domains may require additional parameters. # All contact information must be expressed using the structure defined by the # vCard format specification. Only the contact fields of vCard are supported: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses # Note that the vCard specification defines maximum lengths for each field. class DeviceOwner include Google::Apis::Core::Hashable # A vCard-in-JSON message that contains only the fields needed for PAWS: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses # Corresponds to the JSON property `operator` # @return [Google::Apis::SpectrumV1explorer::Vcard] attr_accessor :operator # A vCard-in-JSON message that contains only the fields needed for PAWS: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses # Corresponds to the JSON property `owner` # @return [Google::Apis::SpectrumV1explorer::Vcard] attr_accessor :owner def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @operator = args[:operator] if args.key?(:operator) @owner = args[:owner] if args.key?(:owner) end end # The device validity element describes whether a particular device is valid to # operate in the regulatory domain. class DeviceValidity include Google::Apis::Core::Hashable # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # The validity status: true if the device is valid for operation, false # otherwise. It will always be present. # Corresponds to the JSON property `isValid` # @return [Boolean] attr_accessor :is_valid alias_method :is_valid?, :is_valid # If the device identifier is not valid, the database may include a reason. The # reason may be in any language. The length of the value should not exceed 128 # characters. # Corresponds to the JSON property `reason` # @return [String] attr_accessor :reason def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_desc = args[:device_desc] if args.key?(:device_desc) @is_valid = args[:is_valid] if args.key?(:is_valid) @reason = args[:reason] if args.key?(:reason) end end # The start and stop times of an event. This is used to indicate the time period # for which a spectrum profile is valid. # Both times are expressed using the format, YYYY-MM-DDThh:mm:ssZ, as defined in # RFC3339. The times must be expressed using UTC. class EventTime include Google::Apis::Core::Hashable # The inclusive start of the event. It will be present. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # The exclusive end of the event. It will be present. # Corresponds to the JSON property `stopTime` # @return [String] attr_accessor :stop_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @start_time = args[:start_time] if args.key?(:start_time) @stop_time = args[:stop_time] if args.key?(:stop_time) end end # A specific range of frequencies together with the associated maximum power # level and channel identifier. class FrequencyRange include Google::Apis::Core::Hashable # The database may include a channel identifier, when applicable. When it is # included, the device should treat it as informative. The length of the # identifier should not exceed 16 characters. # Corresponds to the JSON property `channelId` # @return [String] attr_accessor :channel_id # The maximum total power level (EIRP)—computed over the corresponding operating # bandwidth—that is permitted within the frequency range. Depending on the # context in which the frequency-range element appears, this value may be # required. For example, it is required in the available-spectrum response, # available-spectrum-batch response, and spectrum-use notification message, but # it should not be present (it is not applicable) when the frequency range # appears inside a device-capabilities message. # Corresponds to the JSON property `maxPowerDBm` # @return [Float] attr_accessor :max_power_d_bm # The required inclusive start of the frequency range (in Hertz). # Corresponds to the JSON property `startHz` # @return [Float] attr_accessor :start_hz # The required exclusive end of the frequency range (in Hertz). # Corresponds to the JSON property `stopHz` # @return [Float] attr_accessor :stop_hz def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channel_id = args[:channel_id] if args.key?(:channel_id) @max_power_d_bm = args[:max_power_d_bm] if args.key?(:max_power_d_bm) @start_hz = args[:start_hz] if args.key?(:start_hz) @stop_hz = args[:stop_hz] if args.key?(:stop_hz) end end # This parameter is used to specify the geolocation of the device. class GeoLocation include Google::Apis::Core::Hashable # The location confidence level, as an integer percentage, may be required, # depending on the regulatory domain. When the parameter is optional and not # provided, its value is assumed to be 95. Valid values range from 0 to 99, # since, in practice, 100-percent confidence is not achievable. The confidence # value is meaningful only when geolocation refers to a point with uncertainty. # Corresponds to the JSON property `confidence` # @return [Fixnum] attr_accessor :confidence # A "point" with uncertainty is represented using the Ellipse shape. # Corresponds to the JSON property `point` # @return [Google::Apis::SpectrumV1explorer::GeoLocationEllipse] attr_accessor :point # A region is represented using the polygonal shape. # Corresponds to the JSON property `region` # @return [Google::Apis::SpectrumV1explorer::GeoLocationPolygon] attr_accessor :region def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @confidence = args[:confidence] if args.key?(:confidence) @point = args[:point] if args.key?(:point) @region = args[:region] if args.key?(:region) end end # A "point" with uncertainty is represented using the Ellipse shape. class GeoLocationEllipse include Google::Apis::Core::Hashable # A single geolocation on the globe. # Corresponds to the JSON property `center` # @return [Google::Apis::SpectrumV1explorer::GeoLocationPoint] attr_accessor :center # A floating-point number that expresses the orientation of the ellipse, # representing the rotation, in degrees, of the semi-major axis from North # towards the East. For example, when the uncertainty is greatest along the # North-South direction, orientation is 0 degrees; conversely, if the # uncertainty is greatest along the East-West direction, orientation is 90 # degrees. When orientation is not present, the orientation is assumed to be 0. # Corresponds to the JSON property `orientation` # @return [Float] attr_accessor :orientation # A floating-point number that expresses the location uncertainty along the # major axis of the ellipse. May be required by the regulatory domain. When the # uncertainty is optional, the default value is 0. # Corresponds to the JSON property `semiMajorAxis` # @return [Float] attr_accessor :semi_major_axis # A floating-point number that expresses the location uncertainty along the # minor axis of the ellipse. May be required by the regulatory domain. When the # uncertainty is optional, the default value is 0. # Corresponds to the JSON property `semiMinorAxis` # @return [Float] attr_accessor :semi_minor_axis def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @center = args[:center] if args.key?(:center) @orientation = args[:orientation] if args.key?(:orientation) @semi_major_axis = args[:semi_major_axis] if args.key?(:semi_major_axis) @semi_minor_axis = args[:semi_minor_axis] if args.key?(:semi_minor_axis) end end # A single geolocation on the globe. class GeoLocationPoint include Google::Apis::Core::Hashable # A required floating-point number that expresses the latitude in degrees using # the WGS84 datum. For details on this encoding, see the National Imagery and # Mapping Agency's Technical Report TR8350.2. # Corresponds to the JSON property `latitude` # @return [Float] attr_accessor :latitude # A required floating-point number that expresses the longitude in degrees using # the WGS84 datum. For details on this encoding, see the National Imagery and # Mapping Agency's Technical Report TR8350.2. # Corresponds to the JSON property `longitude` # @return [Float] attr_accessor :longitude def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @latitude = args[:latitude] if args.key?(:latitude) @longitude = args[:longitude] if args.key?(:longitude) end end # A region is represented using the polygonal shape. class GeoLocationPolygon include Google::Apis::Core::Hashable # When the geolocation describes a region, the exterior field refers to a list # of latitude/longitude points that represent the vertices of a polygon. The # first and last points must be the same. Thus, a minimum of four points is # required. The following polygon restrictions from RFC5491 apply: # - A connecting line shall not cross another connecting line of the same # polygon. # - The vertices must be defined in a counterclockwise order. # - The edges of a polygon are defined by the shortest path between two points # in space (not a geodesic curve). Consequently, the length between two adjacent # vertices should be restricted to a maximum of 130 km. # - All vertices are assumed to be at the same altitude. # - Polygon shapes should be restricted to a maximum of 15 vertices (16 points # that include the repeated vertex). # Corresponds to the JSON property `exterior` # @return [Array] attr_accessor :exterior def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exterior = args[:exterior] if args.key?(:exterior) end end # The schedule of spectrum profiles available at a particular geolocation. class GeoSpectrumSchedule include Google::Apis::Core::Hashable # This parameter is used to specify the geolocation of the device. # Corresponds to the JSON property `location` # @return [Google::Apis::SpectrumV1explorer::GeoLocation] attr_accessor :location # A list of available spectrum profiles and associated times. It will always be # present, and at least one schedule must be included (though it may be empty if # there is no available spectrum). More than one schedule may be included to # represent future changes to the available spectrum. # Corresponds to the JSON property `spectrumSchedules` # @return [Array] attr_accessor :spectrum_schedules def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @location = args[:location] if args.key?(:location) @spectrum_schedules = args[:spectrum_schedules] if args.key?(:spectrum_schedules) end end # The request message for a batch available spectrum query protocol. class PawsGetSpectrumBatchRequest include Google::Apis::Core::Hashable # Antenna characteristics provide additional information, such as the antenna # height, antenna type, etc. Whether antenna characteristics must be provided in # a request depends on the device type and regulatory domain. # Corresponds to the JSON property `antenna` # @return [Google::Apis::SpectrumV1explorer::AntennaCharacteristics] attr_accessor :antenna # Device capabilities provide additional information that may be used by a # device to provide additional information to the database that may help it to # determine available spectrum. If the database does not support device # capabilities it will ignore the parameter altogether. # Corresponds to the JSON property `capabilities` # @return [Google::Apis::SpectrumV1explorer::DeviceCapabilities] attr_accessor :capabilities # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # A geolocation list is required. This allows a device to specify its current # location plus additional anticipated locations when allowed by the regulatory # domain. At least one location must be included. Geolocation must be given as # the location of the radiation center of the device's antenna. If a location # specifies a region, rather than a point, the database may return an # UNIMPLEMENTED error if it does not support query by region. # There is no upper limit on the number of locations included in a available # spectrum batch request, but the database may restrict the number of locations # it supports by returning a response with fewer locations than specified in the # batch request. Note that geolocations must be those of the master device (a # device with geolocation capability that makes an available spectrum batch # request), whether the master device is making the request on its own behalf or # on behalf of a slave device (one without geolocation capability). # Corresponds to the JSON property `locations` # @return [Array] attr_accessor :locations # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `masterDeviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :master_device_desc # This parameter contains device-owner information required as part of device # registration. The regulatory domains may require additional parameters. # All contact information must be expressed using the structure defined by the # vCard format specification. Only the contact fields of vCard are supported: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses # Note that the vCard specification defines maximum lengths for each field. # Corresponds to the JSON property `owner` # @return [Google::Apis::SpectrumV1explorer::DeviceOwner] attr_accessor :owner # The request type parameter is an optional parameter that can be used to modify # an available spectrum batch request, but its use depends on applicable # regulatory rules. For example, It may be used to request generic slave device # parameters without having to specify the device descriptor for a specific # device. When the requestType parameter is missing, the request is for a # specific device (master or slave), and the device descriptor parameter for the # device on whose behalf the batch request is made is required. # Corresponds to the JSON property `requestType` # @return [String] attr_accessor :request_type # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @antenna = args[:antenna] if args.key?(:antenna) @capabilities = args[:capabilities] if args.key?(:capabilities) @device_desc = args[:device_desc] if args.key?(:device_desc) @locations = args[:locations] if args.key?(:locations) @master_device_desc = args[:master_device_desc] if args.key?(:master_device_desc) @owner = args[:owner] if args.key?(:owner) @request_type = args[:request_type] if args.key?(:request_type) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The response message for the batch available spectrum query contains a # schedule of available spectrum for the device at multiple locations. class PawsGetSpectrumBatchResponse include Google::Apis::Core::Hashable # This message is provided by the database to notify devices of an upcoming # change to the database URI. # Corresponds to the JSON property `databaseChange` # @return [Google::Apis::SpectrumV1explorer::DbUpdateSpec] attr_accessor :database_change # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # The available spectrum batch response must contain a geo-spectrum schedule # list, The list may be empty if spectrum is not available. The database may # return more than one geo-spectrum schedule to represent future changes to the # available spectrum. How far in advance a schedule may be provided depends upon # the applicable regulatory domain. The database may return available spectrum # for fewer geolocations than requested. The device must not make assumptions # about the order of the entries in the list, and must use the geolocation value # in each geo-spectrum schedule entry to match available spectrum to a location. # Corresponds to the JSON property `geoSpectrumSchedules` # @return [Array] attr_accessor :geo_spectrum_schedules # Identifies what kind of resource this is. Value: the fixed string "spectrum# # pawsGetSpectrumBatchResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The database may return a constraint on the allowed maximum contiguous # bandwidth (in Hertz). A regulatory domain may require the database to return # this parameter. When this parameter is present in the response, the device # must apply this constraint to its spectrum-selection logic to ensure that no # single block of spectrum has bandwidth that exceeds this value. # Corresponds to the JSON property `maxContiguousBwHz` # @return [Float] attr_accessor :max_contiguous_bw_hz # The database may return a constraint on the allowed maximum total bandwidth ( # in Hertz), which does not need to be contiguous. A regulatory domain may # require the database to return this parameter. When this parameter is present # in the available spectrum batch response, the device must apply this # constraint to its spectrum-selection logic to ensure that total bandwidth does # not exceed this value. # Corresponds to the JSON property `maxTotalBwHz` # @return [Float] attr_accessor :max_total_bw_hz # For regulatory domains that require a spectrum-usage report from devices, the # database must return true for this parameter if the geo-spectrum schedules # list is not empty; otherwise, the database should either return false or omit # this parameter. If this parameter is present and its value is true, the device # must send a spectrum use notify message to the database; otherwise, the device # should not send the notification. # Corresponds to the JSON property `needsSpectrumReport` # @return [Boolean] attr_accessor :needs_spectrum_report alias_method :needs_spectrum_report?, :needs_spectrum_report # This contains parameters for the ruleset of a regulatory domain that is # communicated using the initialization and available-spectrum processes. # Corresponds to the JSON property `rulesetInfo` # @return [Google::Apis::SpectrumV1explorer::RulesetInfo] attr_accessor :ruleset_info # The database includes a timestamp of the form, YYYY-MM-DDThh:mm:ssZ (Internet # timestamp format per RFC3339), in its available spectrum batch response. The # timestamp should be used by the device as a reference for the start and stop # times specified in the response spectrum schedules. # Corresponds to the JSON property `timestamp` # @return [String] attr_accessor :timestamp # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database_change = args[:database_change] if args.key?(:database_change) @device_desc = args[:device_desc] if args.key?(:device_desc) @geo_spectrum_schedules = args[:geo_spectrum_schedules] if args.key?(:geo_spectrum_schedules) @kind = args[:kind] if args.key?(:kind) @max_contiguous_bw_hz = args[:max_contiguous_bw_hz] if args.key?(:max_contiguous_bw_hz) @max_total_bw_hz = args[:max_total_bw_hz] if args.key?(:max_total_bw_hz) @needs_spectrum_report = args[:needs_spectrum_report] if args.key?(:needs_spectrum_report) @ruleset_info = args[:ruleset_info] if args.key?(:ruleset_info) @timestamp = args[:timestamp] if args.key?(:timestamp) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The request message for the available spectrum query protocol which must # include the device's geolocation. class PawsGetSpectrumRequest include Google::Apis::Core::Hashable # Antenna characteristics provide additional information, such as the antenna # height, antenna type, etc. Whether antenna characteristics must be provided in # a request depends on the device type and regulatory domain. # Corresponds to the JSON property `antenna` # @return [Google::Apis::SpectrumV1explorer::AntennaCharacteristics] attr_accessor :antenna # Device capabilities provide additional information that may be used by a # device to provide additional information to the database that may help it to # determine available spectrum. If the database does not support device # capabilities it will ignore the parameter altogether. # Corresponds to the JSON property `capabilities` # @return [Google::Apis::SpectrumV1explorer::DeviceCapabilities] attr_accessor :capabilities # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # This parameter is used to specify the geolocation of the device. # Corresponds to the JSON property `location` # @return [Google::Apis::SpectrumV1explorer::GeoLocation] attr_accessor :location # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `masterDeviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :master_device_desc # This parameter contains device-owner information required as part of device # registration. The regulatory domains may require additional parameters. # All contact information must be expressed using the structure defined by the # vCard format specification. Only the contact fields of vCard are supported: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses # Note that the vCard specification defines maximum lengths for each field. # Corresponds to the JSON property `owner` # @return [Google::Apis::SpectrumV1explorer::DeviceOwner] attr_accessor :owner # The request type parameter is an optional parameter that can be used to modify # an available spectrum request, but its use depends on applicable regulatory # rules. It may be used, for example, to request generic slave device parameters # without having to specify the device descriptor for a specific device. When # the requestType parameter is missing, the request is for a specific device ( # master or slave), and the deviceDesc parameter for the device on whose behalf # the request is made is required. # Corresponds to the JSON property `requestType` # @return [String] attr_accessor :request_type # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @antenna = args[:antenna] if args.key?(:antenna) @capabilities = args[:capabilities] if args.key?(:capabilities) @device_desc = args[:device_desc] if args.key?(:device_desc) @location = args[:location] if args.key?(:location) @master_device_desc = args[:master_device_desc] if args.key?(:master_device_desc) @owner = args[:owner] if args.key?(:owner) @request_type = args[:request_type] if args.key?(:request_type) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The response message for the available spectrum query which contains a # schedule of available spectrum for the device. class PawsGetSpectrumResponse include Google::Apis::Core::Hashable # This message is provided by the database to notify devices of an upcoming # change to the database URI. # Corresponds to the JSON property `databaseChange` # @return [Google::Apis::SpectrumV1explorer::DbUpdateSpec] attr_accessor :database_change # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # Identifies what kind of resource this is. Value: the fixed string "spectrum# # pawsGetSpectrumResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The database may return a constraint on the allowed maximum contiguous # bandwidth (in Hertz). A regulatory domain may require the database to return # this parameter. When this parameter is present in the response, the device # must apply this constraint to its spectrum-selection logic to ensure that no # single block of spectrum has bandwidth that exceeds this value. # Corresponds to the JSON property `maxContiguousBwHz` # @return [Float] attr_accessor :max_contiguous_bw_hz # The database may return a constraint on the allowed maximum total bandwidth ( # in Hertz), which need not be contiguous. A regulatory domain may require the # database to return this parameter. When this parameter is present in the # available spectrum response, the device must apply this constraint to its # spectrum-selection logic to ensure that total bandwidth does not exceed this # value. # Corresponds to the JSON property `maxTotalBwHz` # @return [Float] attr_accessor :max_total_bw_hz # For regulatory domains that require a spectrum-usage report from devices, the # database must return true for this parameter if the spectrum schedule list is # not empty; otherwise, the database will either return false or omit this # parameter. If this parameter is present and its value is true, the device must # send a spectrum use notify message to the database; otherwise, the device must # not send the notification. # Corresponds to the JSON property `needsSpectrumReport` # @return [Boolean] attr_accessor :needs_spectrum_report alias_method :needs_spectrum_report?, :needs_spectrum_report # This contains parameters for the ruleset of a regulatory domain that is # communicated using the initialization and available-spectrum processes. # Corresponds to the JSON property `rulesetInfo` # @return [Google::Apis::SpectrumV1explorer::RulesetInfo] attr_accessor :ruleset_info # The available spectrum response must contain a spectrum schedule list. The # list may be empty if spectrum is not available. The database may return more # than one spectrum schedule to represent future changes to the available # spectrum. How far in advance a schedule may be provided depends on the # applicable regulatory domain. # Corresponds to the JSON property `spectrumSchedules` # @return [Array] attr_accessor :spectrum_schedules # The database includes a timestamp of the form YYYY-MM-DDThh:mm:ssZ (Internet # timestamp format per RFC3339) in its available spectrum response. The # timestamp should be used by the device as a reference for the start and stop # times specified in the response spectrum schedules. # Corresponds to the JSON property `timestamp` # @return [String] attr_accessor :timestamp # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database_change = args[:database_change] if args.key?(:database_change) @device_desc = args[:device_desc] if args.key?(:device_desc) @kind = args[:kind] if args.key?(:kind) @max_contiguous_bw_hz = args[:max_contiguous_bw_hz] if args.key?(:max_contiguous_bw_hz) @max_total_bw_hz = args[:max_total_bw_hz] if args.key?(:max_total_bw_hz) @needs_spectrum_report = args[:needs_spectrum_report] if args.key?(:needs_spectrum_report) @ruleset_info = args[:ruleset_info] if args.key?(:ruleset_info) @spectrum_schedules = args[:spectrum_schedules] if args.key?(:spectrum_schedules) @timestamp = args[:timestamp] if args.key?(:timestamp) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The initialization request message allows the master device to initiate # exchange of capabilities with the database. class PawsInitRequest include Google::Apis::Core::Hashable # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # This parameter is used to specify the geolocation of the device. # Corresponds to the JSON property `location` # @return [Google::Apis::SpectrumV1explorer::GeoLocation] attr_accessor :location # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_desc = args[:device_desc] if args.key?(:device_desc) @location = args[:location] if args.key?(:location) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The initialization response message communicates database parameters to the # requesting device. class PawsInitResponse include Google::Apis::Core::Hashable # This message is provided by the database to notify devices of an upcoming # change to the database URI. # Corresponds to the JSON property `databaseChange` # @return [Google::Apis::SpectrumV1explorer::DbUpdateSpec] attr_accessor :database_change # Identifies what kind of resource this is. Value: the fixed string "spectrum# # pawsInitResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # This contains parameters for the ruleset of a regulatory domain that is # communicated using the initialization and available-spectrum processes. # Corresponds to the JSON property `rulesetInfo` # @return [Google::Apis::SpectrumV1explorer::RulesetInfo] attr_accessor :ruleset_info # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database_change = args[:database_change] if args.key?(:database_change) @kind = args[:kind] if args.key?(:kind) @ruleset_info = args[:ruleset_info] if args.key?(:ruleset_info) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The spectrum-use notification message which must contain the geolocation of # the Device and parameters required by the regulatory domain. class PawsNotifySpectrumUseRequest include Google::Apis::Core::Hashable # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # This parameter is used to specify the geolocation of the device. # Corresponds to the JSON property `location` # @return [Google::Apis::SpectrumV1explorer::GeoLocation] attr_accessor :location # A spectrum list is required in the spectrum-use notification. The list # specifies the spectrum that the device expects to use, which includes # frequency ranges and maximum power levels. The list may be empty if the device # decides not to use any of spectrum. For consistency, the psdBandwidthHz value # should match that from one of the spectrum elements in the corresponding # available spectrum response previously sent to the device by the database. # Note that maximum power levels in the spectrum element must be expressed as # power spectral density over the specified psdBandwidthHz value. The actual # bandwidth to be used (as computed from the start and stop frequencies) may be # different from the psdBandwidthHz value. As an example, when regulatory rules # express maximum power spectral density in terms of maximum power over any 100 # kHz band, then the psdBandwidthHz value should be set to 100 kHz, even though # the actual bandwidth used can be 20 kHz. # Corresponds to the JSON property `spectra` # @return [Array] attr_accessor :spectra # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_desc = args[:device_desc] if args.key?(:device_desc) @location = args[:location] if args.key?(:location) @spectra = args[:spectra] if args.key?(:spectra) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # An empty response to the notification. class PawsNotifySpectrumUseResponse include Google::Apis::Core::Hashable # Identifies what kind of resource this is. Value: the fixed string "spectrum# # pawsNotifySpectrumUseResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @kind = args[:kind] if args.key?(:kind) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The registration request message contains the required registration parameters. class PawsRegisterRequest include Google::Apis::Core::Hashable # Antenna characteristics provide additional information, such as the antenna # height, antenna type, etc. Whether antenna characteristics must be provided in # a request depends on the device type and regulatory domain. # Corresponds to the JSON property `antenna` # @return [Google::Apis::SpectrumV1explorer::AntennaCharacteristics] attr_accessor :antenna # The device descriptor contains parameters that identify the specific device, # such as its manufacturer serial number, regulatory-specific identifier (e.g., # FCC ID), and any other device characteristics required by regulatory domains. # Corresponds to the JSON property `deviceDesc` # @return [Google::Apis::SpectrumV1explorer::DeviceDescriptor] attr_accessor :device_desc # This parameter contains device-owner information required as part of device # registration. The regulatory domains may require additional parameters. # All contact information must be expressed using the structure defined by the # vCard format specification. Only the contact fields of vCard are supported: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses # Note that the vCard specification defines maximum lengths for each field. # Corresponds to the JSON property `deviceOwner` # @return [Google::Apis::SpectrumV1explorer::DeviceOwner] attr_accessor :device_owner # This parameter is used to specify the geolocation of the device. # Corresponds to the JSON property `location` # @return [Google::Apis::SpectrumV1explorer::GeoLocation] attr_accessor :location # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @antenna = args[:antenna] if args.key?(:antenna) @device_desc = args[:device_desc] if args.key?(:device_desc) @device_owner = args[:device_owner] if args.key?(:device_owner) @location = args[:location] if args.key?(:location) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The registration response message simply acknowledges receipt of the request # and is otherwise empty. class PawsRegisterResponse include Google::Apis::Core::Hashable # This message is provided by the database to notify devices of an upcoming # change to the database URI. # Corresponds to the JSON property `databaseChange` # @return [Google::Apis::SpectrumV1explorer::DbUpdateSpec] attr_accessor :database_change # Identifies what kind of resource this is. Value: the fixed string "spectrum# # pawsRegisterResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database_change = args[:database_change] if args.key?(:database_change) @kind = args[:kind] if args.key?(:kind) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The device validation request message. class PawsVerifyDeviceRequest include Google::Apis::Core::Hashable # A list of device descriptors, which specifies the slave devices to be # validated, is required. # Corresponds to the JSON property `deviceDescs` # @return [Array] attr_accessor :device_descs # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @device_descs = args[:device_descs] if args.key?(:device_descs) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # The device validation response message. class PawsVerifyDeviceResponse include Google::Apis::Core::Hashable # This message is provided by the database to notify devices of an upcoming # change to the database URI. # Corresponds to the JSON property `databaseChange` # @return [Google::Apis::SpectrumV1explorer::DbUpdateSpec] attr_accessor :database_change # A device validities list is required in the device validation response to # report whether each slave device listed in a previous device validation # request is valid. The number of entries must match the number of device # descriptors listed in the previous device validation request. # Corresponds to the JSON property `deviceValidities` # @return [Array] attr_accessor :device_validities # Identifies what kind of resource this is. Value: the fixed string "spectrum# # pawsVerifyDeviceResponse". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # The message type (e.g., INIT_REQ, AVAIL_SPECTRUM_REQ, ...). # Required field. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # The PAWS version. Must be exactly 1.0. # Required field. # Corresponds to the JSON property `version` # @return [String] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @database_change = args[:database_change] if args.key?(:database_change) @device_validities = args[:device_validities] if args.key?(:device_validities) @kind = args[:kind] if args.key?(:kind) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # This contains parameters for the ruleset of a regulatory domain that is # communicated using the initialization and available-spectrum processes. class RulesetInfo include Google::Apis::Core::Hashable # The regulatory domain to which the ruleset belongs is required. It must be a 2- # letter country code. The device should use this to determine additional device # behavior required by the associated regulatory domain. # Corresponds to the JSON property `authority` # @return [String] attr_accessor :authority # The maximum location change in meters is required in the initialization # response, but optional otherwise. When the device changes location by more # than this specified distance, it must contact the database to get the # available spectrum for the new location. If the device is using spectrum that # is no longer available, it must immediately cease use of the spectrum under # rules for database-managed spectrum. If this value is provided within the # context of an available-spectrum response, it takes precedence over the value # within the initialization response. # Corresponds to the JSON property `maxLocationChange` # @return [Float] attr_accessor :max_location_change # The maximum duration, in seconds, between requests for available spectrum. It # is required in the initialization response, but optional otherwise. The device # must contact the database to get available spectrum no less frequently than # this duration. If the new spectrum information indicates that the device is # using spectrum that is no longer available, it must immediately cease use of # those frequencies under rules for database-managed spectrum. If this value is # provided within the context of an available-spectrum response, it takes # precedence over the value within the initialization response. # Corresponds to the JSON property `maxPollingSecs` # @return [Fixnum] attr_accessor :max_polling_secs # The identifiers of the rulesets supported for the device's location. The # database should include at least one applicable ruleset in the initialization # response. The device may use the ruleset identifiers to determine parameters # to include in subsequent requests. Within the context of the available- # spectrum responses, the database should include the identifier of the ruleset # that it used to determine the available-spectrum response. If included, the # device must use the specified ruleset to interpret the response. If the device # does not support the indicated ruleset, it must not operate in the spectrum # governed by the ruleset. # Corresponds to the JSON property `rulesetIds` # @return [Array] attr_accessor :ruleset_ids def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @authority = args[:authority] if args.key?(:authority) @max_location_change = args[:max_location_change] if args.key?(:max_location_change) @max_polling_secs = args[:max_polling_secs] if args.key?(:max_polling_secs) @ruleset_ids = args[:ruleset_ids] if args.key?(:ruleset_ids) end end # Available spectrum can be logically characterized by a list of frequency # ranges and permissible power levels for each range. class SpectrumMessage include Google::Apis::Core::Hashable # The bandwidth (in Hertz) for which permissible power levels are specified. For # example, FCC regulation would require only one spectrum specification at 6MHz # bandwidth, but Ofcom regulation would require two specifications, at 0.1MHz # and 8MHz. This parameter may be empty if there is no available spectrum. It # will be present otherwise. # Corresponds to the JSON property `bandwidth` # @return [Float] attr_accessor :bandwidth # The list of frequency ranges and permissible power levels. The list may be # empty if there is no available spectrum, otherwise it will be present. # Corresponds to the JSON property `frequencyRanges` # @return [Array] attr_accessor :frequency_ranges def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bandwidth = args[:bandwidth] if args.key?(:bandwidth) @frequency_ranges = args[:frequency_ranges] if args.key?(:frequency_ranges) end end # The spectrum schedule element combines an event time with spectrum profile to # define a time period in which the profile is valid. class SpectrumSchedule include Google::Apis::Core::Hashable # The start and stop times of an event. This is used to indicate the time period # for which a spectrum profile is valid. # Both times are expressed using the format, YYYY-MM-DDThh:mm:ssZ, as defined in # RFC3339. The times must be expressed using UTC. # Corresponds to the JSON property `eventTime` # @return [Google::Apis::SpectrumV1explorer::EventTime] attr_accessor :event_time # A list of spectrum messages representing the usable profile. It will always be # present, but may be empty when there is no available spectrum. # Corresponds to the JSON property `spectra` # @return [Array] attr_accessor :spectra def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @event_time = args[:event_time] if args.key?(:event_time) @spectra = args[:spectra] if args.key?(:spectra) end end # A vCard-in-JSON message that contains only the fields needed for PAWS: # - fn: Full name of an individual # - org: Name of the organization # - adr: Address fields # - tel: Telephone numbers # - email: Email addresses class Vcard include Google::Apis::Core::Hashable # The structure used to represent a street address. # Corresponds to the JSON property `adr` # @return [Google::Apis::SpectrumV1explorer::VcardAddress] attr_accessor :adr # The structure used to represent an organization and an email address. # Corresponds to the JSON property `email` # @return [Google::Apis::SpectrumV1explorer::VcardTypedText] attr_accessor :email # The full name of the contact person. For example: John A. Smith. # Corresponds to the JSON property `fn` # @return [String] attr_accessor :fn # The structure used to represent an organization and an email address. # Corresponds to the JSON property `org` # @return [Google::Apis::SpectrumV1explorer::VcardTypedText] attr_accessor :org # The structure used to represent a telephone number. # Corresponds to the JSON property `tel` # @return [Google::Apis::SpectrumV1explorer::VcardTelephone] attr_accessor :tel def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @adr = args[:adr] if args.key?(:adr) @email = args[:email] if args.key?(:email) @fn = args[:fn] if args.key?(:fn) @org = args[:org] if args.key?(:org) @tel = args[:tel] if args.key?(:tel) end end # The structure used to represent a street address. class VcardAddress include Google::Apis::Core::Hashable # The postal code associated with the address. For example: 94423. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # The country name. For example: US. # Corresponds to the JSON property `country` # @return [String] attr_accessor :country # The city or local equivalent portion of the address. For example: San Jose. # Corresponds to the JSON property `locality` # @return [String] attr_accessor :locality # An optional post office box number. # Corresponds to the JSON property `pobox` # @return [String] attr_accessor :pobox # The state or local equivalent portion of the address. For example: CA. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # The street number and name. For example: 123 Any St. # Corresponds to the JSON property `street` # @return [String] attr_accessor :street def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @country = args[:country] if args.key?(:country) @locality = args[:locality] if args.key?(:locality) @pobox = args[:pobox] if args.key?(:pobox) @region = args[:region] if args.key?(:region) @street = args[:street] if args.key?(:street) end end # The structure used to represent a telephone number. class VcardTelephone include Google::Apis::Core::Hashable # A nested telephone URI of the form: tel:+1-123-456-7890. # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @uri = args[:uri] if args.key?(:uri) end end # The structure used to represent an organization and an email address. class VcardTypedText include Google::Apis::Core::Hashable # The text string associated with this item. For example, for an org field: ACME, # inc. For an email field: smith@example.com. # Corresponds to the JSON property `text` # @return [String] attr_accessor :text def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @text = args[:text] if args.key?(:text) end end end end end