843 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			843 lines
		
	
	
		
			36 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # 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 ProximitybeaconV1beta1
 | |
|       
 | |
|       # Defines a unique identifier of a beacon as broadcast by the device.
 | |
|       class AdvertisedId
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The actual beacon identifier, as broadcast by the beacon hardware. Must be
 | |
|         # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
 | |
|         # requests, and will be so encoded (with padding) in responses. The base64
 | |
|         # encoding should be of the binary byte-stream and not any textual (such as
 | |
|         # hex) representation thereof.
 | |
|         # Required.
 | |
|         # Corresponds to the JSON property `id`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :id
 | |
|       
 | |
|         # Specifies the identifier type.
 | |
|         # Required.
 | |
|         # Corresponds to the JSON property `type`
 | |
|         # @return [String]
 | |
|         attr_accessor :type
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @id = args[:id] if args.key?(:id)
 | |
|           @type = args[:type] if args.key?(:type)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # A subset of attachment information served via the
 | |
|       # `beaconinfo.getforobserved` method, used when your users encounter your
 | |
|       # beacons.
 | |
|       class AttachmentInfo
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # An opaque data container for client-provided data.
 | |
|         # Corresponds to the JSON property `data`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :data
 | |
|       
 | |
|         # The distance away from the beacon at which this attachment should be
 | |
|         # delivered to a mobile app.
 | |
|         # Setting this to a value greater than zero indicates that the app should
 | |
|         # behave as if the beacon is "seen" when the mobile device is less than this
 | |
|         # distance away from the beacon.
 | |
|         # Different attachments on the same beacon can have different max distances.
 | |
|         # Note that even though this value is expressed with fractional meter
 | |
|         # precision, real-world behavior is likley to be much less precise than one
 | |
|         # meter, due to the nature of current Bluetooth radio technology.
 | |
|         # Optional. When not set or zero, the attachment should be delivered at the
 | |
|         # beacon's outer limit of detection.
 | |
|         # Corresponds to the JSON property `maxDistanceMeters`
 | |
|         # @return [Float]
 | |
|         attr_accessor :max_distance_meters
 | |
|       
 | |
|         # Specifies what kind of attachment this is. Tells a client how to
 | |
|         # interpret the `data` field. Format is <var>namespace/type</var>, for
 | |
|         # example <code>scrupulous-wombat-12345/welcome-message</code>
 | |
|         # Corresponds to the JSON property `namespacedType`
 | |
|         # @return [String]
 | |
|         attr_accessor :namespaced_type
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @data = args[:data] if args.key?(:data)
 | |
|           @max_distance_meters = args[:max_distance_meters] if args.key?(:max_distance_meters)
 | |
|           @namespaced_type = args[:namespaced_type] if args.key?(:namespaced_type)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Details of a beacon device.
 | |
|       class Beacon
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Defines a unique identifier of a beacon as broadcast by the device.
 | |
|         # Corresponds to the JSON property `advertisedId`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::AdvertisedId]
 | |
|         attr_accessor :advertised_id
 | |
|       
 | |
|         # Resource name of this beacon. A beacon name has the format
 | |
|         # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
 | |
|         # the beacon and N is a code for the beacon's type. Possible values are
 | |
|         # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
 | |
|         # This field must be left empty when registering. After reading a beacon,
 | |
|         # clients can use the name for future operations.
 | |
|         # Corresponds to the JSON property `beaconName`
 | |
|         # @return [String]
 | |
|         attr_accessor :beacon_name
 | |
|       
 | |
|         # Free text used to identify and describe the beacon. Maximum length 140
 | |
|         # characters.
 | |
|         # Optional.
 | |
|         # Corresponds to the JSON property `description`
 | |
|         # @return [String]
 | |
|         attr_accessor :description
 | |
|       
 | |
|         # Write-only registration parameters for beacons using Eddystone-EID format.
 | |
|         # Two ways of securely registering an Eddystone-EID beacon with the service
 | |
|         # are supported:
 | |
|         # 1. Perform an ECDH key exchange via this API, including a previous call
 | |
|         # to `GET /v1beta1/eidparams`. In this case the fields
 | |
|         # `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
 | |
|         # populated and `beacon_identity_key` should not be populated. This
 | |
|         # method ensures that only the two parties in the ECDH key exchange can
 | |
|         # compute the identity key, which becomes a secret between them.
 | |
|         # 2. Derive or obtain the beacon's identity key via other secure means
 | |
|         # (perhaps an ECDH key exchange between the beacon and a mobile device
 | |
|         # or any other secure method), and then submit the resulting identity key
 | |
|         # to the service. In this case `beacon_identity_key` field should be
 | |
|         # populated, and neither of `beacon_ecdh_public_key` nor
 | |
|         # `service_ecdh_public_key` fields should be. The security of this method
 | |
|         # depends on how securely the parties involved (in particular the
 | |
|         # bluetooth client) handle the identity key, and obviously on how
 | |
|         # securely the identity key was generated.
 | |
|         # See [the Eddystone
 | |
|         # specification](https://github.com/google/eddystone/tree/master/eddystone-eid)
 | |
|         # at GitHub.
 | |
|         # Corresponds to the JSON property `ephemeralIdRegistration`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::EphemeralIdRegistration]
 | |
|         attr_accessor :ephemeral_id_registration
 | |
|       
 | |
|         # Expected location stability. This is set when the beacon is registered or
 | |
|         # updated, not automatically detected in any way.
 | |
|         # Optional.
 | |
|         # Corresponds to the JSON property `expectedStability`
 | |
|         # @return [String]
 | |
|         attr_accessor :expected_stability
 | |
|       
 | |
|         # Indoor level, a human-readable string as returned by Google Maps APIs,
 | |
|         # useful to indicate which floor of a building a beacon is located on.
 | |
|         # Corresponds to the JSON property `indoorLevel`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::IndoorLevel]
 | |
|         attr_accessor :indoor_level
 | |
|       
 | |
|         # An object representing a latitude/longitude pair. This is expressed as a pair
 | |
|         # of doubles representing degrees latitude and degrees longitude. Unless
 | |
|         # specified otherwise, this must conform to the
 | |
|         # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
 | |
|         # standard</a>. Values must be within normalized ranges.
 | |
|         # Corresponds to the JSON property `latLng`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::LatLng]
 | |
|         attr_accessor :lat_lng
 | |
|       
 | |
|         # The [Google Places API](/places/place-id) Place ID of the place where
 | |
|         # the beacon is deployed. This is given when the beacon is registered or
 | |
|         # updated, not automatically detected in any way.
 | |
|         # Optional.
 | |
|         # Corresponds to the JSON property `placeId`
 | |
|         # @return [String]
 | |
|         attr_accessor :place_id
 | |
|       
 | |
|         # Properties of the beacon device, for example battery type or firmware
 | |
|         # version.
 | |
|         # Optional.
 | |
|         # Corresponds to the JSON property `properties`
 | |
|         # @return [Hash<String,String>]
 | |
|         attr_accessor :properties
 | |
|       
 | |
|         # Some beacons may require a user to provide an authorization key before
 | |
|         # changing any of its configuration (e.g. broadcast frames, transmit power).
 | |
|         # This field provides a place to store and control access to that key.
 | |
|         # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
 | |
|         # from users with write access to the given beacon. That is to say: If the
 | |
|         # user is authorized to write the beacon's confidential data in the service,
 | |
|         # the service considers them authorized to configure the beacon. Note
 | |
|         # that this key grants nothing on the service, only on the beacon itself.
 | |
|         # Corresponds to the JSON property `provisioningKey`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :provisioning_key
 | |
|       
 | |
|         # Current status of the beacon.
 | |
|         # Required.
 | |
|         # Corresponds to the JSON property `status`
 | |
|         # @return [String]
 | |
|         attr_accessor :status
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @advertised_id = args[:advertised_id] if args.key?(:advertised_id)
 | |
|           @beacon_name = args[:beacon_name] if args.key?(:beacon_name)
 | |
|           @description = args[:description] if args.key?(:description)
 | |
|           @ephemeral_id_registration = args[:ephemeral_id_registration] if args.key?(:ephemeral_id_registration)
 | |
|           @expected_stability = args[:expected_stability] if args.key?(:expected_stability)
 | |
|           @indoor_level = args[:indoor_level] if args.key?(:indoor_level)
 | |
|           @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
 | |
|           @place_id = args[:place_id] if args.key?(:place_id)
 | |
|           @properties = args[:properties] if args.key?(:properties)
 | |
|           @provisioning_key = args[:provisioning_key] if args.key?(:provisioning_key)
 | |
|           @status = args[:status] if args.key?(:status)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Project-specific data associated with a beacon.
 | |
|       class BeaconAttachment
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Resource name of this attachment. Attachment names have the format:
 | |
|         # <code>beacons/<var>beacon_id</var>/attachments/<var>attachment_id</var></code>.
 | |
|         # Leave this empty on creation.
 | |
|         # Corresponds to the JSON property `attachmentName`
 | |
|         # @return [String]
 | |
|         attr_accessor :attachment_name
 | |
|       
 | |
|         # The UTC time when this attachment was created, in milliseconds since the
 | |
|         # UNIX epoch.
 | |
|         # Corresponds to the JSON property `creationTimeMs`
 | |
|         # @return [String]
 | |
|         attr_accessor :creation_time_ms
 | |
|       
 | |
|         # An opaque data container for client-provided data. Must be
 | |
|         # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
 | |
|         # requests, and will be so encoded (with padding) in responses.
 | |
|         # Required.
 | |
|         # Corresponds to the JSON property `data`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :data
 | |
|       
 | |
|         # The distance away from the beacon at which this attachment should be
 | |
|         # delivered to a mobile app.
 | |
|         # Setting this to a value greater than zero indicates that the app should
 | |
|         # behave as if the beacon is "seen" when the mobile device is less than this
 | |
|         # distance away from the beacon.
 | |
|         # Different attachments on the same beacon can have different max distances.
 | |
|         # Note that even though this value is expressed with fractional meter
 | |
|         # precision, real-world behavior is likley to be much less precise than one
 | |
|         # meter, due to the nature of current Bluetooth radio technology.
 | |
|         # Optional. When not set or zero, the attachment should be delivered at the
 | |
|         # beacon's outer limit of detection.
 | |
|         # Negative values are invalid and return an error.
 | |
|         # Corresponds to the JSON property `maxDistanceMeters`
 | |
|         # @return [Float]
 | |
|         attr_accessor :max_distance_meters
 | |
|       
 | |
|         # Specifies what kind of attachment this is. Tells a client how to
 | |
|         # interpret the `data` field. Format is <var>namespace/type</var>. Namespace
 | |
|         # provides type separation between clients. Type describes the type of
 | |
|         # `data`, for use by the client when parsing the `data` field.
 | |
|         # Required.
 | |
|         # Corresponds to the JSON property `namespacedType`
 | |
|         # @return [String]
 | |
|         attr_accessor :namespaced_type
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @attachment_name = args[:attachment_name] if args.key?(:attachment_name)
 | |
|           @creation_time_ms = args[:creation_time_ms] if args.key?(:creation_time_ms)
 | |
|           @data = args[:data] if args.key?(:data)
 | |
|           @max_distance_meters = args[:max_distance_meters] if args.key?(:max_distance_meters)
 | |
|           @namespaced_type = args[:namespaced_type] if args.key?(:namespaced_type)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # A subset of beacon information served via the `beaconinfo.getforobserved`
 | |
|       # method, which you call when users of your app encounter your beacons.
 | |
|       class BeaconInfo
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Defines a unique identifier of a beacon as broadcast by the device.
 | |
|         # Corresponds to the JSON property `advertisedId`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::AdvertisedId]
 | |
|         attr_accessor :advertised_id
 | |
|       
 | |
|         # Attachments matching the type(s) requested.
 | |
|         # May be empty if no attachment types were requested.
 | |
|         # Corresponds to the JSON property `attachments`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::AttachmentInfo>]
 | |
|         attr_accessor :attachments
 | |
|       
 | |
|         # The name under which the beacon is registered.
 | |
|         # Corresponds to the JSON property `beaconName`
 | |
|         # @return [String]
 | |
|         attr_accessor :beacon_name
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @advertised_id = args[:advertised_id] if args.key?(:advertised_id)
 | |
|           @attachments = args[:attachments] if args.key?(:attachments)
 | |
|           @beacon_name = args[:beacon_name] if args.key?(:beacon_name)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Represents a whole or partial calendar date, e.g. a birthday. The time of day
 | |
|       # and time zone are either specified elsewhere or are not significant. The date
 | |
|       # is relative to the Proleptic Gregorian Calendar. This can represent:
 | |
|       # * A full date, with non-zero year, month and day values
 | |
|       # * A month and day value, with a zero year, e.g. an anniversary
 | |
|       # * A year on its own, with zero month and day values
 | |
|       # * A year and month value, with a zero day, e.g. a credit card expiration date
 | |
|       # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
 | |
|       class Date
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Day of month. Must be from 1 to 31 and valid for the year and month, or 0
 | |
|         # if specifying a year by itself or a year and month where the day is not
 | |
|         # significant.
 | |
|         # Corresponds to the JSON property `day`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :day
 | |
|       
 | |
|         # Month of year. Must be from 1 to 12, or 0 if specifying a year without a
 | |
|         # month and day.
 | |
|         # Corresponds to the JSON property `month`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :month
 | |
|       
 | |
|         # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
 | |
|         # a year.
 | |
|         # Corresponds to the JSON property `year`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :year
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @day = args[:day] if args.key?(:day)
 | |
|           @month = args[:month] if args.key?(:month)
 | |
|           @year = args[:year] if args.key?(:year)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Response for a request to delete attachments.
 | |
|       class DeleteAttachmentsResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The number of attachments that were deleted.
 | |
|         # Corresponds to the JSON property `numDeleted`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :num_deleted
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @num_deleted = args[:num_deleted] if args.key?(:num_deleted)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Diagnostics for a single beacon.
 | |
|       class Diagnostics
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # An unordered list of Alerts that the beacon has.
 | |
|         # Corresponds to the JSON property `alerts`
 | |
|         # @return [Array<String>]
 | |
|         attr_accessor :alerts
 | |
|       
 | |
|         # Resource name of the beacon. For Eddystone-EID beacons, this may
 | |
|         # be the beacon's current EID, or the beacon's "stable" Eddystone-UID.
 | |
|         # Corresponds to the JSON property `beaconName`
 | |
|         # @return [String]
 | |
|         attr_accessor :beacon_name
 | |
|       
 | |
|         # Represents a whole or partial calendar date, e.g. a birthday. The time of day
 | |
|         # and time zone are either specified elsewhere or are not significant. The date
 | |
|         # is relative to the Proleptic Gregorian Calendar. This can represent:
 | |
|         # * A full date, with non-zero year, month and day values
 | |
|         # * A month and day value, with a zero year, e.g. an anniversary
 | |
|         # * A year on its own, with zero month and day values
 | |
|         # * A year and month value, with a zero day, e.g. a credit card expiration date
 | |
|         # Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
 | |
|         # Corresponds to the JSON property `estimatedLowBatteryDate`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::Date]
 | |
|         attr_accessor :estimated_low_battery_date
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @alerts = args[:alerts] if args.key?(:alerts)
 | |
|           @beacon_name = args[:beacon_name] if args.key?(:beacon_name)
 | |
|           @estimated_low_battery_date = args[:estimated_low_battery_date] if args.key?(:estimated_low_battery_date)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # A generic empty message that you can re-use to avoid defining duplicated
 | |
|       # empty messages in your APIs. A typical example is to use it as the request
 | |
|       # or the response type of an API method. For instance:
 | |
|       # service Foo `
 | |
|       # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
 | |
|       # `
 | |
|       # The JSON representation for `Empty` is empty JSON object ````.
 | |
|       class Empty
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Write-only registration parameters for beacons using Eddystone-EID format.
 | |
|       # Two ways of securely registering an Eddystone-EID beacon with the service
 | |
|       # are supported:
 | |
|       # 1. Perform an ECDH key exchange via this API, including a previous call
 | |
|       # to `GET /v1beta1/eidparams`. In this case the fields
 | |
|       # `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
 | |
|       # populated and `beacon_identity_key` should not be populated. This
 | |
|       # method ensures that only the two parties in the ECDH key exchange can
 | |
|       # compute the identity key, which becomes a secret between them.
 | |
|       # 2. Derive or obtain the beacon's identity key via other secure means
 | |
|       # (perhaps an ECDH key exchange between the beacon and a mobile device
 | |
|       # or any other secure method), and then submit the resulting identity key
 | |
|       # to the service. In this case `beacon_identity_key` field should be
 | |
|       # populated, and neither of `beacon_ecdh_public_key` nor
 | |
|       # `service_ecdh_public_key` fields should be. The security of this method
 | |
|       # depends on how securely the parties involved (in particular the
 | |
|       # bluetooth client) handle the identity key, and obviously on how
 | |
|       # securely the identity key was generated.
 | |
|       # See [the Eddystone
 | |
|       # specification](https://github.com/google/eddystone/tree/master/eddystone-eid)
 | |
|       # at GitHub.
 | |
|       class EphemeralIdRegistration
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The beacon's public key used for the Elliptic curve Diffie-Hellman
 | |
|         # key exchange. When this field is populated, `service_ecdh_public_key`
 | |
|         # must also be populated, and `beacon_identity_key` must not be.
 | |
|         # Corresponds to the JSON property `beaconEcdhPublicKey`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :beacon_ecdh_public_key
 | |
|       
 | |
|         # The private key of the beacon. If this field is populated,
 | |
|         # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
 | |
|         # populated.
 | |
|         # Corresponds to the JSON property `beaconIdentityKey`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :beacon_identity_key
 | |
|       
 | |
|         # The initial clock value of the beacon. The beacon's clock must have
 | |
|         # begun counting at this value immediately prior to transmitting this
 | |
|         # value to the resolving service. Significant delay in transmitting this
 | |
|         # value to the service risks registration or resolution failures. If a
 | |
|         # value is not provided, the default is zero.
 | |
|         # Corresponds to the JSON property `initialClockValue`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :initial_clock_value
 | |
|       
 | |
|         # An initial ephemeral ID calculated using the clock value submitted as
 | |
|         # `initial_clock_value`, and the secret key generated by the
 | |
|         # Diffie-Hellman key exchange using `service_ecdh_public_key` and
 | |
|         # `service_ecdh_public_key`. This initial EID value will be used by the
 | |
|         # service to confirm that the key exchange process was successful.
 | |
|         # Corresponds to the JSON property `initialEid`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :initial_eid
 | |
|       
 | |
|         # Indicates the nominal period between each rotation of the beacon's
 | |
|         # ephemeral ID. "Nominal" because the beacon should randomize the
 | |
|         # actual interval. See [the spec at
 | |
|         # github](https://github.com/google/eddystone/tree/master/eddystone-eid)
 | |
|         # for details. This value corresponds to a power-of-two scaler on the
 | |
|         # beacon's clock: when the scaler value is K, the beacon will begin
 | |
|         # broadcasting a new ephemeral ID on average every 2^K seconds.
 | |
|         # Corresponds to the JSON property `rotationPeriodExponent`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :rotation_period_exponent
 | |
|       
 | |
|         # The service's public key used for the Elliptic curve Diffie-Hellman
 | |
|         # key exchange. When this field is populated, `beacon_ecdh_public_key`
 | |
|         # must also be populated, and `beacon_identity_key` must not be.
 | |
|         # Corresponds to the JSON property `serviceEcdhPublicKey`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :service_ecdh_public_key
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @beacon_ecdh_public_key = args[:beacon_ecdh_public_key] if args.key?(:beacon_ecdh_public_key)
 | |
|           @beacon_identity_key = args[:beacon_identity_key] if args.key?(:beacon_identity_key)
 | |
|           @initial_clock_value = args[:initial_clock_value] if args.key?(:initial_clock_value)
 | |
|           @initial_eid = args[:initial_eid] if args.key?(:initial_eid)
 | |
|           @rotation_period_exponent = args[:rotation_period_exponent] if args.key?(:rotation_period_exponent)
 | |
|           @service_ecdh_public_key = args[:service_ecdh_public_key] if args.key?(:service_ecdh_public_key)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Information a client needs to provision and register beacons that
 | |
|       # broadcast Eddystone-EID format beacon IDs, using Elliptic curve
 | |
|       # Diffie-Hellman key exchange. See
 | |
|       # [the Eddystone specification](https://github.com/google/eddystone/tree/master/
 | |
|       # eddystone-eid) at GitHub.
 | |
|       class EphemeralIdRegistrationParams
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Indicates the maximum rotation period supported by the service.
 | |
|         # See EddystoneEidRegistration.rotation_period_exponent
 | |
|         # Corresponds to the JSON property `maxRotationPeriodExponent`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :max_rotation_period_exponent
 | |
|       
 | |
|         # Indicates the minimum rotation period supported by the service.
 | |
|         # See EddystoneEidRegistration.rotation_period_exponent
 | |
|         # Corresponds to the JSON property `minRotationPeriodExponent`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :min_rotation_period_exponent
 | |
|       
 | |
|         # The beacon service's public key for use by a beacon to derive its
 | |
|         # Identity Key using Elliptic Curve Diffie-Hellman key exchange.
 | |
|         # Corresponds to the JSON property `serviceEcdhPublicKey`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :service_ecdh_public_key
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @max_rotation_period_exponent = args[:max_rotation_period_exponent] if args.key?(:max_rotation_period_exponent)
 | |
|           @min_rotation_period_exponent = args[:min_rotation_period_exponent] if args.key?(:min_rotation_period_exponent)
 | |
|           @service_ecdh_public_key = args[:service_ecdh_public_key] if args.key?(:service_ecdh_public_key)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Request for beacon and attachment information about beacons that
 | |
|       # a mobile client has encountered "in the wild".
 | |
|       class GetInfoForObservedBeaconsRequest
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Specifies what kind of attachments to include in the response.
 | |
|         # When given, the response will include only attachments of the given types.
 | |
|         # When empty, no attachments will be returned. Must be in the format
 | |
|         # <var>namespace/type</var>. Accepts `*` to specify all types in
 | |
|         # all namespaces owned by the client.
 | |
|         # Optional.
 | |
|         # Corresponds to the JSON property `namespacedTypes`
 | |
|         # @return [Array<String>]
 | |
|         attr_accessor :namespaced_types
 | |
|       
 | |
|         # The beacons that the client has encountered.
 | |
|         # At least one must be given.
 | |
|         # Corresponds to the JSON property `observations`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::Observation>]
 | |
|         attr_accessor :observations
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @namespaced_types = args[:namespaced_types] if args.key?(:namespaced_types)
 | |
|           @observations = args[:observations] if args.key?(:observations)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Information about the requested beacons, optionally including attachment
 | |
|       # data.
 | |
|       class GetInfoForObservedBeaconsResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Public information about beacons.
 | |
|         # May be empty if the request matched no beacons.
 | |
|         # Corresponds to the JSON property `beacons`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::BeaconInfo>]
 | |
|         attr_accessor :beacons
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @beacons = args[:beacons] if args.key?(:beacons)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Indoor level, a human-readable string as returned by Google Maps APIs,
 | |
|       # useful to indicate which floor of a building a beacon is located on.
 | |
|       class IndoorLevel
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The name of this level.
 | |
|         # Corresponds to the JSON property `name`
 | |
|         # @return [String]
 | |
|         attr_accessor :name
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @name = args[:name] if args.key?(:name)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # An object representing a latitude/longitude pair. This is expressed as a pair
 | |
|       # of doubles representing degrees latitude and degrees longitude. Unless
 | |
|       # specified otherwise, this must conform to the
 | |
|       # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
 | |
|       # standard</a>. Values must be within normalized ranges.
 | |
|       class LatLng
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The latitude in degrees. It must be in the range [-90.0, +90.0].
 | |
|         # Corresponds to the JSON property `latitude`
 | |
|         # @return [Float]
 | |
|         attr_accessor :latitude
 | |
|       
 | |
|         # The longitude in degrees. It must be in the range [-180.0, +180.0].
 | |
|         # 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
 | |
|       
 | |
|       # Response to `ListBeaconAttachments` that contains the requested attachments.
 | |
|       class ListBeaconAttachmentsResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The attachments that corresponded to the request params.
 | |
|         # Corresponds to the JSON property `attachments`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::BeaconAttachment>]
 | |
|         attr_accessor :attachments
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @attachments = args[:attachments] if args.key?(:attachments)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Response that contains list beacon results and pagination help.
 | |
|       class ListBeaconsResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The beacons that matched the search criteria.
 | |
|         # Corresponds to the JSON property `beacons`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::Beacon>]
 | |
|         attr_accessor :beacons
 | |
|       
 | |
|         # An opaque pagination token that the client may provide in their next
 | |
|         # request to retrieve the next page of results.
 | |
|         # Corresponds to the JSON property `nextPageToken`
 | |
|         # @return [String]
 | |
|         attr_accessor :next_page_token
 | |
|       
 | |
|         # Estimate of the total number of beacons matched by the query. Higher
 | |
|         # values may be less accurate.
 | |
|         # Corresponds to the JSON property `totalCount`
 | |
|         # @return [Fixnum]
 | |
|         attr_accessor :total_count
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @beacons = args[:beacons] if args.key?(:beacons)
 | |
|           @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | |
|           @total_count = args[:total_count] if args.key?(:total_count)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Response that contains the requested diagnostics.
 | |
|       class ListDiagnosticsResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The diagnostics matching the given request.
 | |
|         # Corresponds to the JSON property `diagnostics`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::Diagnostics>]
 | |
|         attr_accessor :diagnostics
 | |
|       
 | |
|         # Token that can be used for pagination. Returned only if the
 | |
|         # request matches more beacons than can be returned in this response.
 | |
|         # Corresponds to the JSON property `nextPageToken`
 | |
|         # @return [String]
 | |
|         attr_accessor :next_page_token
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
 | |
|           @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Response to ListNamespacesRequest that contains all the project's namespaces.
 | |
|       class ListNamespacesResponse
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # The attachments that corresponded to the request params.
 | |
|         # Corresponds to the JSON property `namespaces`
 | |
|         # @return [Array<Google::Apis::ProximitybeaconV1beta1::Namespace>]
 | |
|         attr_accessor :namespaces
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @namespaces = args[:namespaces] if args.key?(:namespaces)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # An attachment namespace defines read and write access for all the attachments
 | |
|       # created under it. Each namespace is globally unique, and owned by one
 | |
|       # project which is the only project that can create attachments under it.
 | |
|       class Namespace
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Resource name of this namespace. Namespaces names have the format:
 | |
|         # <code>namespaces/<var>namespace</var></code>.
 | |
|         # Corresponds to the JSON property `namespaceName`
 | |
|         # @return [String]
 | |
|         attr_accessor :namespace_name
 | |
|       
 | |
|         # Specifies what clients may receive attachments under this namespace
 | |
|         # via `beaconinfo.getforobserved`.
 | |
|         # Corresponds to the JSON property `servingVisibility`
 | |
|         # @return [String]
 | |
|         attr_accessor :serving_visibility
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @namespace_name = args[:namespace_name] if args.key?(:namespace_name)
 | |
|           @serving_visibility = args[:serving_visibility] if args.key?(:serving_visibility)
 | |
|         end
 | |
|       end
 | |
|       
 | |
|       # Represents one beacon observed once.
 | |
|       class Observation
 | |
|         include Google::Apis::Core::Hashable
 | |
|       
 | |
|         # Defines a unique identifier of a beacon as broadcast by the device.
 | |
|         # Corresponds to the JSON property `advertisedId`
 | |
|         # @return [Google::Apis::ProximitybeaconV1beta1::AdvertisedId]
 | |
|         attr_accessor :advertised_id
 | |
|       
 | |
|         # The array of telemetry bytes received from the beacon. The server is
 | |
|         # responsible for parsing it. This field may frequently be empty, as
 | |
|         # with a beacon that transmits telemetry only occasionally.
 | |
|         # Corresponds to the JSON property `telemetry`
 | |
|         # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | |
|         # @return [String]
 | |
|         attr_accessor :telemetry
 | |
|       
 | |
|         # Time when the beacon was observed.
 | |
|         # Corresponds to the JSON property `timestampMs`
 | |
|         # @return [String]
 | |
|         attr_accessor :timestamp_ms
 | |
|       
 | |
|         def initialize(**args)
 | |
|            update!(**args)
 | |
|         end
 | |
|       
 | |
|         # Update properties of this object
 | |
|         def update!(**args)
 | |
|           @advertised_id = args[:advertised_id] if args.key?(:advertised_id)
 | |
|           @telemetry = args[:telemetry] if args.key?(:telemetry)
 | |
|           @timestamp_ms = args[:timestamp_ms] if args.key?(:timestamp_ms)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |